Guide til React SEO: hvorfor gjengivelse på klienten svekker indekseringen, når du bør velge SSR eller forhåndsgjengivelse, hvordan du setter metataggene i React 19 og holder siden lesbar for AI.

På denne siden
Kort fortalt
React kan rangeres på Google, men en standard SPA sender en nesten tom HTML-fil og er avhengig av JavaScript for å vise innhold. Det forsinker indekseringen og skjuler siden for de fleste AI-crawlere. Den pålitelige løsningen er å levere HTML fra serveren: forhåndsgjengi statiske sider når bygget kjøres, eller bruk et rammeverk med serverside-gjengivelse (Next.js, React Router). Sett deretter en unik tittel, beskrivelse og canonical per URL, bruk ekte lenker og statuskoder, og kontroller hva robotene faktisk får.
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.
React SEO er arbeidet med å gjøre en React-applikasjon gjennomsøkbar, indekserbar og forståelig for søkemotorer og AI-assistenter. React i seg selv er nøytralt: problemene kommer av at alt gjengis i nettleseren. Google bekrefter i grunnleggende om JavaScript-SEO at de behandler JavaScript-apper i tre faser (gjennomsøking, gjengivelse og indeksering), og at «serverside- eller forhåndsgjengivelse fortsatt er en god idé, fordi det gjør nettstedet raskere for brukere og crawlere, og ikke alle roboter kan kjøre JavaScript.»
En React-app laget som en SPA leverer en HTML-fil som består av lite mer enn en tom rot-div og en script-tagg. Nettleseren laster ned JavaScript, kjører det og bygger siden. En crawler som bare leser HTML-en, ser ingenting å indeksere: ingen overskrifter, ingen tekst, ingen lenker.
Googlebot kjører JavaScript, men i et eget steg: siden gjennomsøkes, settes i kø for gjengivelse, gjengis i en headless Chromium, og først da brukes de gjengitte lenkene og innholdet. Hvert ekstra steg er en mulighet for feil (en skriptfeil, et blokkert API-kall, en tidsavbrytelse) og gir forsinkelse før nye sider dukker opp i søk. Vår guide til JavaScript-SEO beskriver denne prosessen i detalj, og artikkelen vår om indeksering i Google viser hvordan du får sider indeksert raskere.
Andre roboter er mindre tålmodige. Vercels analyse fra desember 2024, Fremveksten av AI-crawlere, fant at «ingen av de store AI-crawlerne for øyeblikket gjengir JavaScript», og nevner GPTBot, ChatGPT-User, OAI-SearchBot, ClaudeBot og PerplexityBot. En klientgjengitt React-side er usynlig for ChatGPT, Claude og Perplexity, selv når Google indekserer den.
React-teamet anbefaler nå å starte nye apper med et rammeverk. Da de avviklet Create React App 14. februar 2025, skrev de i kunngjøringen at «serverside-gjengivelse kan forbedre SEO», og at den også forbedrer ytelsen ved at brukerne må laste ned mindre JavaScript før de ser innholdet. Alternativene, fra svakest til sterkest for søk:
| Metode | Hva robotene får | SEO-vurdering | Typiske verktøy |
|---|---|---|---|
| Gjengivelse på klienten (SPA) | Tom HTML, innhold etter JavaScript | Svak: forsinket indeksering, usynlig for AI-crawlere | Vite + React, gamle Create React App-prosjekter |
| Dynamisk gjengivelse | Forhåndsgjengitt HTML bare til roboter | En omvei, som Google ikke anbefaler | Tjenester for forhåndsgjengivelse, proxy med headless nettleser |
| Statisk forhåndsgjengivelse under bygging | Full HTML for hver kjent URL | Svært godt for innhold som sjelden endrer seg | Forhåndsgjengivelse i React Router, statiske sidegeneratorer, Next.js statisk eksport |
| Serverside-gjengivelse | Full HTML ved hver forespørsel, deretter hydrering | Best for store eller ofte oppdaterte nettsteder | Next.js, React Router (rammeverksmodus, tidligere Remix) |
Om dynamisk gjengivelse er Googles dokumentasjon tydelig: det «var en omvei og ikke en langsiktig løsning», og Google anbefaler serverside-gjengivelse, statisk gjengivelse eller hydrering i stedet. Hvis du velger rammeverk, dekker vår guide til Next.js-SEO gjengivelsesmodusene, Metadata-API-et og sitemaps i detalj.
Hvis en migrering ikke er mulig, kan Google fortsatt indeksere en SPA, med omtanke. Vår guide til SEO for enkeltsideapplikasjoner lister vilkårene; resten av denne artikkelen gjelder begge tilfeller.
Fra React 19 (stabil siden 5. desember 2024) kan komponenter gjengi title-, meta- og link-tagger direkte, og React løfter dem opp i dokumentets head. Utgivelsesnotatene for React 19 sier at denne innebygde støtten fungerer «med apper som bare kjører på klienten, streaming-SSR og Server Components». Før React 19 gjorde biblioteker som react-helmet eller react-helmet-async samme jobb, og de er fortsatt nyttige for å overstyre standardverdier per rute.
function ProductPage({ product }) {
return (
<>
<title>{`${product.name} | Shop`}</title>
<meta name="description" content={product.summary} />
<link rel="canonical" href={`https://example.com/p/${product.slug}`} />
<h1>{product.name}</h1>
</>
)
}Tre regler gjelder uansett metode:
Vær oppmerksom
I en app som bare kjører på klienten finnes taggene React gjengir først etter at JavaScript har kjørt. Google kan lese dem etter gjengivelse; AI-crawlere og de fleste forhåndsvisningsroboter for sosiale medier kan ikke det. Serverside-gjengivelse eller forhåndsgjengivelse legger dem i HTML-svaret for alle.
Google sier at de «bare kan finne lenkene dine hvis de er HTML-elementer med et href-attributt», og fraråder bruk av URL-fragmenter for å laste annet innhold. De fleste SEO-feil i React kommer av detaljer i rutingen:
| Feil | Virkning | Løsning |
|---|---|---|
| Navigasjon med onClick på div eller button | Google finner ingen lenke å følge | Bruk routerens Link-komponent, som gjengir en a med href |
| Hash-ruter (/#/products) | Alle sider deler én URL for Google | Bruk historikkbaserte ruter (/products) med BrowserRouter eller et rammeverk |
| En «ikke funnet»-visning servert med statuskode 200 | Myk 404 i Search Console | Returner en ekte 404 fra serveren, eller legg til noindex med JavaScript i en ren SPA |
| Bare klientsideomdirigeringer | Trege eller tapte omdirigeringer | Bruk 301- eller 308-omdirigeringer fra serveren for flyttede sider |
| Innhold lastet ved klikk eller scrolling | Teksten gjengis aldri for crawleren | Gjengi hovedinnholdet ved innlasting; del opp lister med ekte URL-er |
| JavaScript eller API blokkert i robots.txt | Google gjengir en tom side | Tillat skriptene og API-endepunktene siden trenger |
For å se hva Google gjengir, bruk verktøyet URL-inspeksjon i Search Console og se HTML-en til den testede siden, eller kjør en indekserbarhetssjekk på nøkkelmalene.
React har ingen innebygd sitemap. Generer sitemap.xml under bygging fra rutene og dataene dine (eller fra rammeverkets sitemap-funksjon), list bare kanoniske URL-er som returnerer 200, og oppgi filen i robots.txt. En generator for XML-sitemap fungerer for små statiske nettsteder.
Strukturerte data følger samme regel som metadata: gjengi JSON-LD-skriptet sammen med siden, fra de samme dataene, helst på serveren. Google kan lese JSON-LD som JavaScript legger inn etter gjengivelse, men markering som mangler i den første HTML-en, mangler for crawlere som ikke gjengir. Bruk Article for innlegg, Product for netthandel, Organization for hele nettstedet og BreadcrumbList for dype sider.
Tips
Kjør curl på en side-URL og søk i resultatet etter H1 og en setning fra brødteksten. Mangler de, kan Google indeksere siden etter gjengivelse, men AI-crawlere ser ingenting.
Store JavaScript-pakker skader Core Web Vitals: nettleseren må laste ned, analysere og hydrere koden før siden blir responsiv, noe som trekker ned Largest Contentful Paint og Interaction to Next Paint, særlig på mobil. Kunngjøringen fra React-teamet om Create React App sier at serverside-gjengivelse sender mindre JavaScript og et fullt HTML-dokument, noe som gir raskere First Contentful Paint og kan senke INP. Praktiske grep: del opp koden per rute med React.lazy, legg ved bilder med eksplisitte dimensjoner, last komponenter under brettkanten sent, og revider tredjepartsskript.
GEO (generativ søkemotoroptimalisering) starter med tilgang. Siden AI-crawlere henter rå HTML, må en React-side levere teksten, overskriftene og JSON-LD-en sin uten JavaScript for å bli lest, oppsummert og sitert. En AI-revisjon av nettstedets gjennomsøkbarhet viser hva disse robotene får fra sidene dine. Det andre vilkåret er innhold som er verdt å sitere: sider som svarer på ett spørsmål per avsnitt, med kilder, tall og tydelige definisjoner.
Det er innholdssiden Sorank, vårt produkt, automatiserer. Sorank er en SEO- og GEO-programvare som kjører på autopilot: generatoren for blogartikler skriver og publiserer 20, 60 eller 120 artikler i måneden med kilder, interne lenker og bilder, og den kobles til egendefinerte løsninger som et React- eller Next.js-nettsted via en webhook. SEO-chatten svarer på spørsmål om nettstedets søkeresultater i en samtale.

Den korte versjonen: lever HTML fra serveren, gi hver URL sin egen tittel, beskrivelse og canonical, og bruk ekte lenker. React rangeres da like godt som andre nettsteder, og AI-assistenter kan lese det. For å holde nettstedet forsynt med artikler skrevet for Google og AI, se prisene til Sorank, fra $49 per måned med en gratis prøveperiode på 3 dager.
Nei. React er et bibliotek for brukergrensesnitt, og SEO-en avhenger av hvordan sidene gjengis. En SPA som gjengis på klienten sender tom HTML og er avhengig av Googles gjengivelsessteg, noe som forsinker indekseringen og skjuler innholdet for AI-crawlere. Den samme React-koden, servert med serverside-gjengivelse eller statisk forhåndsgjengivelse, rangeres som et klassisk nettsted.
Ja. Googlebot gjengir JavaScript med en nyere versjon av Chromium, så den kan indeksere innhold som en React-app bygger i nettleseren. Gjengivelsen skjer etter gjennomsøkingen og kan bli forsinket eller mislykkes hvis skript gir feil eller API-er er blokkert. Kontroller den gjengitte HTML-en med verktøyet URL-inspeksjon i Search Console for å se hva Google ser.
Ikke i grunnleggende tilfeller. React 19 gjengir title-, meta- og link-tagger fra alle komponenter og løfter dem opp i dokumentets head. Biblioteker som react-helmet-async er fortsatt nyttige når du må overstyre standardverdier for hele nettstedet per rute, eller støtte eldre React-versjoner.
DE PRØVDE SORANK FØR DEG
