Guide till React SEO: varför rendering i klienten skadar indexeringen, när du ska välja SSR eller förrendering, hur du sätter metataggar i React 19 och förblir läsbar för AI.

På den här sidan
Kort sagt
React kan rankas på Google, men en standard-app med single page-arkitektur skickar en nästan tom HTML-fil och är beroende av JavaScript för att visa innehållet. Det fördröjer indexeringen och döljer sidan för de flesta AI-sökrobotar. Den pålitliga lösningen är att leverera HTML från servern: förrendera statiska sidor vid bygget eller använd ett ramverk med rendering på servern (Next.js, React Router). Sätt sedan en unik titel, beskrivning och canonical per URL, använd riktiga länkar och statuskoder, och kontrollera vad robotarna faktiskt får.
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.
React SEO handlar om att göra en React-applikation genomsökbar, indexerbar och begriplig för sökmotorer och AI-assistenter. React i sig är neutralt: problemen kommer av att allt renderas i webbläsaren. Google bekräftar i sina grunder för JavaScript-SEO att de bearbetar JavaScript-appar i tre faser (genomsökning, rendering, indexering) och att ”server-side- eller förrendering fortfarande är en mycket bra idé, eftersom den gör din webbplats snabbare för användare och sökrobotar, och inte alla robotar kan köra JavaScript.”
En React-app skapad som single page application skickar en HTML-fil som innehåller lite mer än en tom root-div och en script-tagg. Webbläsaren laddar ner JavaScriptet, kör det och bygger sidan. En robot som bara läser HTML:en ser inget att indexera: inga rubriker, ingen text, inga länkar.
Googlebot kör visserligen JavaScript, men i ett separat steg: sidan genomsöks, köas för rendering, renderas i en headless Chromium, och först därefter används de renderade länkarna och innehållet. Varje extra steg är en chans att något går fel (ett skriptfel, ett blockerat API, en timeout) och lägger till fördröjning innan nya sidor syns i sökresultaten. Vår guide till JavaScript-SEO beskriver processen i detalj, och vår artikel om indexering i Google visar hur du får sidor indexerade snabbare.
Andra robotar är mindre tåliga. Vercels analys från december 2024, The rise of the AI crawler, fann att ”ingen av de stora AI-robotarna för närvarande renderar JavaScript”, och nämner GPTBot, ChatGPT-User, OAI-SearchBot, ClaudeBot och PerplexityBot. En React-sida som renderas i klienten är osynlig för ChatGPT, Claude och Perplexity, även när Google indexerar den.
React-teamet rekommenderar nu att nya appar startas med ett ramverk. När det avvecklade Create React App den 14 februari 2025 skrev det i sitt meddelande att ”rendering på servern kan förbättra SEO”, och att den även förbättrar prestandan genom att minska mängden JavaScript som användarna måste ladda ner innan de ser innehållet. Här är alternativen, från svagast till starkast för sökning:
| Metod | Vad robotarna får | SEO-bedömning | Typiska verktyg |
|---|---|---|---|
| Rendering i klienten (SPA) | Tom HTML, innehåll efter JavaScript | Svag: fördröjd indexering, osynlig för AI-robotar | Vite + React, gamla Create React App-projekt |
| Dynamisk rendering | Förrenderad HTML enbart för robotar | Lösning, inte rekommenderad av Google | Tjänster för förrendering, proxyservrar med headless-webbläsare |
| Statisk förrendering vid bygget | Komplett HTML för varje känd URL | Mycket bra för innehåll som sällan ändras | Förrendering i React Router, statiska sidgeneratorer, Next.js statisk export |
| Rendering på servern | Komplett HTML vid varje förfrågan, sedan hydrering | Bäst för stora eller ofta uppdaterade webbplatser | Next.js, React Router (ramverksläge, tidigare Remix) |
Om dynamisk rendering skriver Googles dokumentation tydligt att det ”var en lösning och inte en långsiktig lösning”, och Google rekommenderar i stället rendering på servern, statisk rendering eller hydrering. Om du väljer ramverk täcker vår guide till Next.js SEO renderingslägena, Metadata API och sitemaps i detalj.
Om en migrering inte är möjlig kan en single page application fortfarande indexeras av Google, med omsorg. Vår guide till SEO för single page applications listar villkoren; resten av artikeln gäller i båda fallen.
Sedan React 19 (stabil sedan 5 december 2024) kan komponenter rendera title-, meta- och link-taggar direkt, och React flyttar dem till dokumentets head. Versionsnoteringarna för React 19 anger att det inbyggda stödet fungerar ”med appar som enbart körs i klienten, streaming-SSR och Server Components”. Före React 19 gjorde bibliotek som react-helmet eller react-helmet-async samma jobb, och de är fortfarande användbara för att åsidosätta standardvärden per rutt.
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 gäller oavsett metod:
Se upp
I en app som enbart körs i klienten finns taggar som React renderar först efter att JavaScript har körts. Google kan läsa dem efter rendering; AI-robotar och de flesta robotar för förhandsvisning i sociala medier kan inte det. Rendering på servern eller förrendering lägger dem i HTML-svaret för alla.
Google säger att det ”bara kan upptäcka dina länkar om de är a-element med ett href-attribut” och avråder från att använda URL-fragment för att ladda olika innehåll. De flesta SEO-problem i React kommer från detaljer i routingen:
| Misstag | Effekt | Lösning |
|---|---|---|
| Navigering med onClick på div eller button | Google hittar ingen länk att följa | Använd routerns Link-komponent, som renderar ett a med href |
| Hashrutter (/#/products) | Alla sidor delar en och samma URL för Google | Använd historikbaserade rutter (/products) med BrowserRouter eller ett ramverk |
| En vy för ”hittades inte” som serveras med status 200 | Mjuk 404 i Search Console | Returnera en riktig 404 från servern, eller lägg till noindex med JavaScript i en ren SPA |
| Enbart omdirigeringar på klientsidan | Långsamma eller missade omdirigeringar | Använd 301- eller 308-omdirigeringar från servern för flyttade sidor |
| Innehåll som laddas vid klick eller scroll | Texten renderas aldrig för sökroboten | Rendera huvudinnehållet vid laddning, och dela upp listor med riktiga URL:er |
| JavaScript eller API blockerat i robots.txt | Google renderar en tom sida | Tillåt de skript och API-slutpunkter som sidan behöver |
För att se vad Google renderar, använd verktyget URL-inspektion i Search Console och granska HTML:en för den testade sidan, eller kör en indexerbarhetskontroll på viktiga mallar.
React har ingen inbyggd sitemap. Generera sitemap.xml vid bygget från dina rutter och data (eller med ditt ramverks funktion för sitemaps), ta bara med canonical-URL:er som returnerar 200, och ange den i robots.txt. En generator för XML-webbplatskartor fungerar för små statiska webbplatser.
Strukturerad data följer samma regel som metadata: rendera JSON-LD-skriptet tillsammans med sidan, från samma data, helst på servern. Google kan läsa JSON-LD som JavaScript injicerar efter rendering, men märkning som saknas i den första HTML:en saknas för robotar som inte renderar. Använd Article för inlägg, Product för e-handel, Organization för hela webbplatsen och BreadcrumbList för djupa sidor.
Tips
Kör curl på en sid-URL och sök i resultatet efter dess H1 och en mening ur brödtexten. Om de saknas kan Google indexera sidan efter rendering, men AI-robotar ser ingenting.
Stora JavaScript-paket skadar Core Web Vitals: webbläsaren måste ladda ner, tolka och hydrera koden innan sidan blir responsiv, vilket tynger Largest Contentful Paint och Interaction to Next Paint, särskilt i mobilen. React-teamets meddelande om Create React App noterar att rendering på servern skickar mindre JavaScript och ett komplett HTML-dokument, vilket ger en snabbare First Contentful Paint och kan sänka INP. Praktiska åtgärder: dela upp koden per rutt med React.lazy, leverera bilder med angivna dimensioner, ladda komponenter under vikningen lazy och granska tredjepartsskript.
GEO (generative engine optimization) börjar med åtkomst. Eftersom AI-sökrobotar hämtar rå HTML måste en React-sida leverera sin text, rubriker och JSON-LD utan JavaScript för att kunna läsas, sammanfattas och citeras. En AI-granskning av genomsökbarhet för webbplatser visar vad de här robotarna får från dina sidor. Det andra villkoret är innehåll värt att citera: sidor som besvarar en fråga per avsnitt, med källor, siffror och tydliga definitioner.
Innehållsdelen är vad Sorank, vår produkt, automatiserar. Sorank är en programvara för SEO och GEO på autopilot: dess generator för bloggartiklar skriver och publicerar 20, 60 eller 120 artiklar per månad med källor, interna länkar och bilder, och den kopplar till egna uppsättningar, till exempel en React- eller Next.js-webbplats, via en webhook. Dess SEO-chatt svarar i ett samtal på frågor om din webbplats sökprestanda.

Kort version: servera HTML från servern, ge varje URL en egen titel, beskrivning och canonical, och använd riktiga länkar. React rankas då som vilken annan webbplats som helst, och AI-assistenter kan läsa den. För att hålla webbplatsen försedd med artiklar byggda för Google och AI, se Sorank:s abonnemang, från $49 per månad med 3 dagars gratis provperiod.
Nej. React är ett bibliotek för användargränssnitt, och dess SEO beror på hur sidorna renderas. En single page-app som renderas i klienten skickar tom HTML och förlitar sig på Googles renderingssteg, vilket fördröjer indexeringen och döljer innehållet för AI-robotar. Samma React-kod serverad med rendering på servern eller statisk förrendering rankas som en klassisk webbplats.
Ja. Googlebot renderar JavaScript med en aktuell version av Chromium, så den kan indexera innehåll som en React-app bygger i webbläsaren. Renderingen sker efter genomsökningen och kan fördröjas eller misslyckas om skript ger fel eller API:er blockeras. Om du kontrollerar den renderade HTML:en med verktyget URL-inspektion i Search Console ser du vad Google ser.
Inte i grundläggande fall. React 19 renderar title-, meta- och link-taggar från valfri komponent och flyttar dem till dokumentets head. Bibliotek som react-helmet-async är fortfarande användbara när du behöver åsidosätta webbplatsens standardvärden per rutt eller stödja äldre versioner av React.
DE TESTADE SORANK FÖRE DIG
