Astro SEO steg för steg: statisk eller server-renderad sida, head-taggar, sitemap, hreflang, bilder, JSON-LD och omdirigeringar, kontrollerat mot den officiella dokumentationen.

På den här sidan
Kort sagt
Astro är ett av de mest sökmotorvänliga webbramverken eftersom det förrenderar sidor till vanlig HTML och inte skickar något JavaScript till webbläsaren om du inte begär det. Det ger Google och AI-sökrobotar fullständigt innehåll redan vid första anropet. Astro skriver dock inte din SEO åt dig: titlar, metabeskrivningar, kanoniska URL:er, hreflang, strukturerad data och omdirigeringar lägger du till själv, oftast i en gemensam head-komponent plus den officiella sitemap-integrationen.
Vill du veta mer? Fråga
Snabbquiz
Är SEO rätt för dig, och hur ska du börja?
Sorank matchar dina svar
Testa det i 3 dagar på din egen webbplats och se var du står på Google, ChatGPT och de andra AI-tjänsterna.
Starta 3 dagars gratis provperiod3 dagar gratis, sedan kan du avsluta när du vill. 90 dagars garanti med pengarna tillbaka om du inte ser resultat.
Astro SEO handlar om att göra den rena HTML:en till sidor som rankas. Googles egen guide om grunderna i JavaScript-SEO förklarar att Google bearbetar JavaScript-sajter i tre faser (crawlning, rendering, indexering) och konstaterar att ”server-side-rendering eller förrendering fortfarande är en mycket bra idé”, eftersom inte alla robotar kan köra JavaScript. Astro utgår från den positionen som standard. Den här guiden går igenom resten, inställning för inställning, och varje beteende är kontrollerat mot den officiella Astro-dokumentationen. Som bakgrund: sajten sorank.com som du läser nu körs på Astro.
Ja, tekniskt sett. Astro renderar komponenter till HTML vid bygget och tar bort det JavaScript som ramverk som React eller Vue normalt skickar till webbläsaren. Resultatet undviker de klassiska problemen som beskrivs i vår guide om JavaScript-SEO: tomma HTML-skal, innehåll som bara syns efter rendering, länkar som inte är riktiga ankartaggar. Det undviker också routingfällorna i en single-page-applikation, eftersom varje Astro-route är en riktig URL med sin egen HTML-fil.
Det Astro inte gör är lika viktigt. Det finns inget inbyggt SEO-tillägg, ingen automatisk metabeskrivning, ingen automatisk kanonisk tagg och ingen strukturerad data. Tabellen nedan skiljer det du får gratis från det du måste bygga själv.
| SEO-element | Vad Astro ger dig | Vad du lägger till |
|---|---|---|
| Crawlbar HTML | Förrenderad HTML som standard | Inget, om du inte renderar innehåll enbart på klienten |
| Titel och metabeskrivning | En head som du styr i varje layout | En gemensam SEO-komponent som matas av varje sida |
| Kanonisk tagg | Astro.site och Astro.url för att bygga absoluta URL:er | Själva länktaggen, med ett konsekvent avslutande snedstreck |
| XML-sitemap | Den officiella integrationen @astrojs/sitemap | Installera den, ange site-alternativet, filtrera bort privata sidor |
| hreflang | i18n-routing och ett i18n-alternativ i sitemapen | Alternativa länkar i head på varje sida |
| Bilder | Komponenterna Image och Picture som optimerar filer | Beskrivande alt-text och vettiga storlekar |
| Strukturerad data | Inget specifikt | JSON-LD-skript per sidtyp |
| Omdirigeringar | Ett redirects-alternativ i konfigurationen | Riktiga 301:or på värdnivå för statiska byggen |
Astros dokumentation om rendering på begäran är tydlig: som standard förrenderas sidor, routes och API-endpoints som statiska sidor vid bygget. För SEO är statisk utdata det säkraste standardvalet: varje URL är en färdig HTML-fil som levereras från ett CDN, snabb och identisk för varje besökare och varje robot.
Rendering på begäran (server-renderad) kräver en adapter för din värd (till exempel Node, Netlify, Vercel eller Cloudflare). Sedan tar du bort en enskild route från förrendering med export const prerender = false, eller byter hela projektet med output: 'server' och väljer tillbaka statiska sidor. Båda lägena ger full HTML, så Google ser samma sak. Skillnaderna ligger på andra ställen:
Den praktiska regeln: behåll marknadsföringssidor, blogginlägg och dokumentation statiska, och rendera bara på begäran de routes som behöver livedata. Astros dokumentation ger samma rekommendation och råder dig att behålla det statiska standardläget tills de flesta av dina sidor behöver rendering på begäran.
Skapa en SEO-komponent (ofta kallad BaseHead eller Seo) och inkludera den i head på varje layout. Den tar emot en titel, en beskrivning, en valfri bild och en valfri noindex-flagga, och skriver ut:
Ange först site-alternativet i astro.config.mjs: den kanoniska taggen, sitemapen och de sociala taggarna är alla beroende av det. Välj sedan en trailingSlash-policy ('always' eller 'never') och håll dig till den, så att /blog/post och /blog/post/ aldrig konkurrerar som två versioner av samma sida. Frågesträngar bör tas bort från den kanoniska URL:en, så att spårningsparametrar inte skapar dubbletter.
Tips
Om dina artiklar ligger i content collections gör du titel och beskrivning till obligatoriska fält i collection-schemat. Bygget misslyckas då när en författare glömmer en metabeskrivning, i stället för att skicka ett tomt utdrag till Google.
Använd den officiella integrationen som beskrivs på sidan för @astrojs/sitemap. Kör npx astro add sitemap för att installera den och lägga till den i konfigurationen. Den kräver site-alternativet och skriver vid bygget en fil sitemap-index.xml som pekar på numrerade filer (sitemap-0.xml, och fler på stora sajter). Varje fil innehåller upp till 45000 poster som standard, ett värde som styrs av alternativet entryLimit. Om formatet är nytt för dig förklarar vårt uppslagsord om XML-sitemap vad Google gör med den.
Tre inställningar spelar roll för SEO:
Se upp
Dokumentationen anger att integrationen inte kan skapa sitemap-poster för dynamiska routes i SSR-läge. Om dina produkt- eller artikelsidor renderas på begäran saknas de i sitemapen, om du inte förrenderar dem eller lägger till dem själv.
För robots.txt räcker en statisk fil i public-mappen på de flesta sajter. Om innehållet skiljer sig mellan testmiljö och produktion genererar du den i stället från en endpoint (src/pages/robots.txt.ts). I båda fallen lägger du till en Sitemap-rad som pekar på sitemap-index.xml, och testar resultatet med en kontroll av robots.txt före lansering. Samma endpoint-teknik används för att skapa en llms.txt-fil. Vår guide om hur du installerar en llms.txt-fil beskriver innehållet.
Astros inbyggda i18n-routing sköter URL-delen. I konfigurationen deklarerar du en defaultLocale och en lista med locales, och väljer om standardspråket också ska få ett prefix (prefixDefaultLocale). Hjälpfunktioner som getRelativeLocaleUrl bygger lokaliserade länkar, och Astro.currentLocale talar om för varje sida vilket språk den är på.
Routingguiden täcker inte hreflang-taggar i head, så planera att skriva dem själv i SEO-komponenten: för varje sida en alternativ länk per språkversion, plus en x-default, alla som absoluta URL:er, och varje version måste lista alla de andra (returlänkar). Om du genererar dem från samma språklista som din routing undviker du det vanligaste felet, ett alternativ som pekar på en sida som inte finns. För att kontrollera logiken på några URL:er ger vår hreflang-generator hela uppsättningen taggar för en sida. Aktivera sedan i18n-alternativet i sitemapen som en andra signal.
Hastighet är där Astro vinner mest, och det syns i Core Web Vitals. Astros guide om bilder beskriver komponenten Image från astro:assets: den optimerar lokala bilder, konverterar deras format, skriver ut lazy loading och asynkron avkodning, och härleder bildmåtten för att undvika Cumulative Layout Shift. Attributet alt är obligatoriskt på den, vilket tvingar fram en grundregel i bild-SEO. Komponenten Picture går längre och levererar AVIF eller WebP med en reservlösning.
Två vanor fullbordar bilden. Behåll bilder som behöver optimeras i src (filer i public levereras som de är, utan bearbetning). Och lazy-ladda inte huvudbilden överst på sidan: ge den eager loading så att den inte fördröjer Largest Contentful Paint.
Arkitekturen med islands håller JavaScriptet under kontroll. En komponent är statisk HTML tills du lägger till ett direktiv för klienten: client:load hydrerar den direkt, client:idle när webbläsaren är ledig, client:visible först när den syns i fönstret. Att reservera client:load för det som måste reagera direkt (en meny, en varukorg) är det enklaste sättet att skydda Interaction to Next Paint. Server-islands (server:defer) låter ett personligt block laddas efter den cachade sidan, utan att bromsa det huvudsakliga innehållet.
Obs
En island döljer bara sin interaktivitet, inte sin text, så länge komponenten renderas på servern först. Innehåll som hämtas i webbläsaren efter laddning är ett annat fall: sökrobotar som inte kör JavaScript, vilket inkluderar många AI-sökrobotar, ser det inte.
Astro har ingen schemafunktion, vilket ger dig full kontroll. Bygg ett JavaScript-objekt för varje sidtyp (Article, Product, Organization, BreadcrumbList, FAQPage) och skriv ut det i en script-tagg av typen application/ld+json, med direktivet set:html och JSON.stringify så att JSON:en inte escapas. Mata det från samma frontmatter eller collection-data som den synliga sidan, så att markupen alltid stämmer med vad användarna ser, vilket är ett krav i Googles riktlinjer för schema-markup.
För att ta fram JSON:en för en ny sidtyp ger vår kostnadsfria schema-generator dig ett giltigt startblock som du sedan gör om till en mall. Validera ett urval av byggda sidor med Googles Rich Results Test efter varje ändring i mallen.
Migreringar från WordPress eller Next.js är det riskabla ögonblicket för en Astro-sajt. Behåll varje URL som har trafik eller bakåtlänkar, och mappa de övriga en och en till deras närmaste motsvarighet med permanenta omdirigeringar, enligt vår guide om SEO-omdirigeringar.
Astros konfiguration accepterar ett redirects-objekt som mappar gamla sökvägar till nya. Med en server-adapter blir de riktiga HTTP-omdirigeringar. Vid ett rent statiskt bygge skriver Astro i stället en HTML-sida med en meta refresh, som Google följer men behandlar som en svagare signal än en server-side 301. För en statisk sajt deklarerar du därför omdirigeringarna i värdens egna format (en fil _redirects på Netlify eller Cloudflare Pages, en fil vercel.json på Vercel), så att sökrobotar får en riktig 301.
Att bli citerad av ChatGPT, Perplexity eller Gemini börjar med att vara läsbar. Många AI-sökrobotar hämtar den råa HTML:en och kör inte JavaScript, så en sajt som skickar sin fulla text i första svaret, vilket Astro gör som standard, tar bort ett hinder som klientrenderade sajter fortfarande har. Tydliga rubriker, stycken som svarar direkt, strukturerad data och en llms.txt-fil gör sedan varje sida lättare att citera.
Efter lansering mäter du i stället för att gissa. Soranks GEO- och SEO-översikt samlar dina Search Console-data och dina besök från AI-assistenter, så att du ser om den nya sajten håller sina positioner.

Den tekniska kvaliteten lönar sig bara med innehåll att rankas på. Soranks AI-generator för bloggartiklar skriver och publicerar artiklar optimerade för Google och AI-assistenter, och kopplas till en egen sajt, till exempel ett Astro-projekt, via webhook.
Astro ger dig crawlbar och snabb HTML som standard; rankingen beror fortfarande på head-taggarna, sitemapen, hreflang, strukturerad data och omdirigeringarna som du lägger ovanpå. Ställ först in den gemensamma SEO-komponenten och sitemapen, och gå sedan igenom tabellen ovan innan lansering.
Nej. Astro har inget officiellt SEO-tillägg som gör allt: du skriver titeln, metabeskrivningen, den kanoniska taggen och de sociala taggarna i en gemensam head-komponent. Den officiella integrationen @astrojs/sitemap sköter sitemapen. Det finns communitypaket, men en liten egen komponent är lätt att underhålla och helt under din kontroll.
Båda kan producera helt renderad HTML, så Google kan indexera båda väl. Astro skickar betydligt mindre JavaScript som standard, vilket oftast gör innehållssajter snabbare och förbättrar Core Web Vitals. Next.js passar bättre för starkt interaktiva applikationer; för bloggar, marknadsföringssajter och dokumentation är Astro det enklare valet för SEO.
Ja. En sida som renderas på begäran returnerar fullständig HTML till Googlebot, precis som en förrenderad sida. Det du ska hålla koll på är serverns svarstid, som påverkar laddningshastigheten, och sitemap-integrationen, som inte kan lista dynamiska routes som renderas i serverläge om du inte lägger till dem själv.
DE TESTADE SORANK FÖRE DIG
