Astro SEO steg for steg: statisk eller server-rendering, head-tagger, sitemap, hreflang, bilder, JSON-LD og omdirigeringer, kontrollert mot de offisielle dokumentasjonene.

På denne siden
Kort sagt
Astro er et av de mest søkevennlige nettrammeverkene fordi det forhåndsrenderer sider til ren HTML og ikke sender noe klientside-JavaScript med mindre du ber om det. Det gir Google og KI-crawlere komplett innhold allerede i første forespørsel. Astro skriver likevel ikke SEO-en din for deg: titler, metabeskrivelser, kanoniske URL-er, hreflang, strukturerte data og omdirigeringer må du legge til selv, for det meste i én felles head-komponent og den offisielle sitemap-integrasjonen.
Vil du vite mer? Spør
Rask quiz
Passer SEO for deg, og hvordan bør du starte?
Sorank passer til svarene dine
Prøv det i 3 dager på ditt eget nettsted, og se hvor du står på Google, ChatGPT og de andre AI-assistentene.
Start en gratis prøveperiode på 3 dager3 dager gratis, deretter kan du stoppe når du vil. Resultatgaranti i 90 dager, ellers pengene tilbake.
Astro SEO handler om å gjøre den rene HTML-en om til sider som rangerer. Googles egen guide til grunnleggende JavaScript-SEO forklarer at Google behandler JavaScript-nettsteder i tre faser (crawling, rendering og indeksering), og sier at «server-side- eller forhåndsrendering fortsatt er en veldig god idé», fordi ikke alle roboter kan kjøre JavaScript. Astro starter fra den posisjonen som standard. Denne guiden dekker resten, innstilling for innstilling, med hver oppførsel kontrollert mot den offisielle Astro-dokumentasjonen. For sammenhengens skyld kjører nettstedet sorank.com, som du leser nå, på Astro.
Ja, teknisk sett. Astro renderer komponenter til HTML under bygging og fjerner JavaScriptet som rammeverk som React eller Vue normalt sender til nettleseren. Resultatet unngår de klassiske problemene som beskrives i vår guide til JavaScript-SEO: tomme HTML-skall, innhold som først vises etter rendering, lenker som ikke er ekte anchor-elementer. Det unngår også rutefellene i en single-page application, siden hver Astro-rute er en ekte URL med sin egen HTML-fil.
Det Astro ikke gjør, er minst like viktig. Det finnes ingen innebygd SEO-plugin, ingen automatisk metabeskrivelse, ingen automatisk kanonisk tagg og ingen strukturerte data. Tabellen under skiller det du får gratis fra det du må bygge selv.
| SEO-element | Hva Astro gir deg | Hva du legger til |
|---|---|---|
| Crawlbar HTML | Forhåndsrenderet HTML som standard | Ingenting, med mindre du renderer innhold bare på klienten |
| Tittel og metabeskrivelse | En head du styrer i hvert layout | En felles SEO-komponent som mates av hver side |
| Canonical-tagg | Astro.site og Astro.url for å bygge absolutte URL-er | Selve lenketaggen, med konsekvent avsluttende skråstrek |
| XML-sitemap | Den offisielle @astrojs/sitemap-integrasjonen | Installer den, sett site-innstillingen, filtrer ut private sider |
| hreflang | i18n-ruting og et i18n-alternativ for sitemapet | Alternative lenker i head på hver side |
| Bilder | Komponentene Image og Picture som optimaliserer filer | Beskrivende alt-tekst, fornuftige størrelser |
| Strukturerte data | Ingenting spesifikt | JSON-LD-skript per sidetype |
| Omdirigeringer | Et redirects-alternativ i konfigurasjonen | Ekte 301-omdirigeringer på vertsnivå for statiske bygg |
Astro-dokumentasjonen om rendering på forespørsel er tydelig: som standard blir sider, ruter og API-endepunkter forhåndsrenderert som statiske sider under bygging. For SEO er statisk output den tryggeste standarden: hver URL er en ferdig HTML-fil servert fra et CDN, rask og identisk for alle besøkende og alle roboter.
Rendering på forespørsel (server) krever en adapter for vertstjenesten din (Node, Netlify, Vercel eller Cloudflare, for eksempel). Deretter kan du velge bort forhåndsrendering for en enkelt rute med export const prerender = false, eller slå hele prosjektet over til output: 'server' og velge statiske sider tilbake. Begge modusene gir full HTML, så Google ser det samme. Forskjellene ligger andre steder:
Den praktiske regelen: hold markedsføringssider, blogginnlegg og dokumentasjon statiske, og render bare de rutene på forespørsel som trenger direkte data. Astros dokumentasjon gir samme anbefaling og råder deg til å beholde standard statisk modus helt til de fleste sidene dine trenger rendering på forespørsel.
Lag én SEO-komponent (ofte kalt BaseHead eller Seo) og ta den med i head på hvert layout. Den tar imot en tittel, en beskrivelse, et valgfritt bilde og et valgfritt noindex-flagg, og skriver ut:
Sett site-alternativet i astro.config.mjs først: den kanoniske taggen, sitemapet og de sosiale taggene avhenger alle av det. Velg deretter en trailingSlash-policy ('always' eller 'never') og hold deg til den, slik at /blog/post og /blog/post/ aldri konkurrerer som to versjoner av samme side. Søkestrenger bør fjernes fra den kanoniske URL-en, slik at sporingsparametere ikke lager duplikater.
Tips
Hvis artiklene dine ligger i content collections, gjør du tittel og beskrivelse til obligatoriske felt i skjemaet for samlingen. Bygget feiler da når en forfatter glemmer en metabeskrivelse, i stedet for å sende et tomt utdrag til Google.
Bruk den offisielle integrasjonen som er dokumentert på siden for @astrojs/sitemap. Kjør npx astro add sitemap, så installeres den og legges til i konfigurasjonen. Den krever site-alternativet, og under bygging skriver den en fil sitemap-index.xml som peker til nummererte filer (sitemap-0.xml, deretter flere på store nettsteder). Hver fil holder opptil 45000 oppføringer som standard, satt med alternativet entryLimit. Hvis formatet er nytt for deg, forklarer vårt leksikonoppslag om XML-sitemap hva Google gjør med det.
Tre innstillinger betyr noe for SEO:
Se opp
Dokumentasjonen sier at integrasjonen ikke kan lage sitemap-oppføringer for dynamiske ruter i SSR-modus. Hvis produkt- eller artikkelsidene dine renderes på forespørsel, mangler de i sitemapet med mindre du forhåndsrenderer dem eller legger dem til selv.
For robots.txt er en statisk fil i public-mappen nok på de fleste nettsteder. Hvis innholdet er forskjellig mellom staging og produksjon, lager du den fra et endepunkt (src/pages/robots.txt.ts) i stedet. I begge tilfeller legger du til en Sitemap-linje som peker til sitemap-index.xml, og tester resultatet med en kontroll av robots.txt før lansering. Den samme endepunktteknikken lager en llms.txt-fil; vår guide om hvordan du installerer en llms.txt-fil dekker innholdet.
Astros innebygde i18n-ruting tar seg av URL-delen. I konfigurasjonen erklærer du en defaultLocale og en liste over språk, og du velger om standardspråket også skal få et prefiks (prefixDefaultLocale). Hjelpefunksjoner som getRelativeLocaleUrl bygger lokaliserte lenker, og Astro.currentLocale forteller hver side hvilket språk den er på.
Rutingguiden dekker ikke hreflang-taggene i head, så planlegg å skrive dem selv i SEO-komponenten: for hver side én alternativ lenke per språkversjon, pluss en x-default, alle som absolutte URL-er, og hver versjon må lenke til alle de andre (gjensidige lenker). Å generere dem fra samme språkliste som rutingen unngår den vanligste feilen, et alternativ som peker til en side som ikke finnes. For å kontrollere logikken på noen få URL-er gir vår generator for hreflang hele settet med tagger for en side. Aktiver deretter i18n-alternativet for sitemapet som et andre signal.
Hastighet er der Astro vinner mest, og det vises i Core Web Vitals. guiden for bilder i Astro beskriver komponenten Image fra astro:assets: den optimaliserer lokale bilder, konverterer formatet, sørger for lazy loading og asynkron dekoding, og utleder bildedimensjoner for å unngå Cumulative Layout Shift. Alt-attributtet er obligatorisk på den, noe som håndhever en grunnregel i bilde-SEO. Komponenten Picture går lenger og serverer AVIF eller WebP med en reserveløsning.
To vaner fullfører bildet. Behold bilder som må optimaliseres i src (filer i public serveres uendret, uten behandling). Og ikke bruk lazy loading på hovedbildet øverst på siden: gi det eager loading, slik at det ikke forsinker Largest Contentful Paint.
øyarkitekturen holder JavaScript under kontroll. En komponent er statisk HTML til du legger til et direktiv for klienten: client:load hydrerer den umiddelbart, client:idle når nettleseren er ledig, client:visible først når den kommer inn i synsfeltet. Å reservere client:load til det som må reagere med en gang (en meny, en handlekurv), er den enkleste måten å beskytte Interaction to Next Paint. Serveröyer (server:defer) lar en personlig blokk lastes etter den mellomlagrede siden, uten å bremse hovedinnholdet.
Merk
En øy skjuler bare interaktiviteten, ikke teksten, så lenge komponenten rendres på serveren først. Innhold som hentes i nettleseren etter at siden er lastet, er et annet tilfelle: crawlere som ikke kjører JavaScript, og det inkluderer mange KI-crawlere, vil ikke se det.
Astro har ingen funksjon for skjema, og det gir deg full kontroll. Bygg et JavaScript-objekt for hver sidetype (Article, Product, Organization, BreadcrumbList, FAQPage) og skriv det ut i en script-tagg av typen application/ld+json, med direktivet set:html og JSON.stringify, slik at JSON-en ikke escapes. Mat den fra samme frontmatter eller samme samlingsdata som den synlige siden, slik at markeringen alltid stemmer med det brukerne ser. Det er et krav i Googles retningslinjer for skjemamarkering.
For å lage utkastet til JSON for en ny sidetype gir vår gratis generator for skjema en gyldig startblokk som du så gjør om til en mal. Valider et utvalg bygde sider med Googles Rich Results Test etter hver endring i malen.
Migreringer fra WordPress eller Next.js er det mest risikable øyeblikket for et Astro-nettsted. Behold hver URL som har trafikk eller backlinks, og koble de andre én for én til nærmeste tilsvarende med permanente omdirigeringer, slik det forklares i vår guide til SEO-omdirigeringer.
Astros konfigurasjon godtar et redirects-objekt som kobler gamle stier til nye. Med en server-adapter blir disse ekte HTTP-omdirigeringer. Ved et rent statisk bygg skriver Astro i stedet en HTML-side med en meta refresh, som Google følger, men behandler som et svakere signal enn en 301 på serveren. For et statisk nettsted deklarerer du omdirigeringene i vertstjenestens eget format (en _redirects-fil på Netlify eller Cloudflare Pages, en vercel.json-fil på Vercel), slik at crawlere får en ekte 301.
Å bli sitert av ChatGPT, Perplexity eller Gemini starter med å være lesbar. Mange KI-crawlere henter rå HTML og kjører ikke JavaScript, så et nettsted som leverer hele teksten i første respons, slik Astro gjør som standard, fjerner en hindring som klientrenderte nettsteder fortsatt har. Rene overskrifter, avsnitt som svarer først, strukturerte data og en llms.txt-fil gjør deretter hver side lettere å sitere.
Etter lansering måler du i stedet for å gjette. dashbordet for GEO og SEO i Sorank samler Search Console-dataene dine og besøkene dine fra KI-assistenter, slik at du kan se om det nye nettstedet holder posisjonene sine.

Teknisk kvalitet betaler seg bare når det finnes innhold å rangere med. Sorank-generatoren for AI-blogartikler skriver og publiserer artikler optimalisert for Google og KI-assistenter, og kobles til et tilpasset nettsted, for eksempel et Astro-prosjekt, via webhook.
Astro gir deg crawlbar, rask HTML som standard; rangering avhenger likevel av head-taggene, sitemapet, hreflang, strukturerte data og omdirigeringene du legger på toppen. Sett opp den felles SEO-komponenten og sitemapet først, og gå deretter gjennom tabellen over før lansering.
Nei. Astro har ingen offisiell alt-i-ett-SEO-plugin: du skriver tittel, metabeskrivelse, kanonisk tagg og sosiale tagger i en felles head-komponent. Den offisielle integrasjonen @astrojs/sitemap dekker sitemapet. Det finnes fellesskapspakker, men en liten komponent av egen produksjon er lett å vedlikeholde og helt under din kontroll.
Begge kan produsere fullt rendret HTML, så Google kan indeksere begge godt. Astro sender langt mindre JavaScript som standard, noe som vanligvis gjør innholdssider raskere og hjelper Core Web Vitals. Next.js passer bedre til svært interaktive applikasjoner; for blogger, markedsføringssider og dokumentasjon er Astro det enklere valget for SEO.
Ja. En side som renderes på forespørsel, returnerer fortsatt komplett HTML til Googlebot, akkurat som en forhåndsrendret side. Det du bør følge med på, er serverens svartid, som påvirker lastehastigheten, og sitemap-integrasjonen, som ikke kan liste dynamiske ruter som renderes i server-modus, med mindre du legger dem til selv.
DE PRØVDE SORANK FØR DEG
