React SEO-gids: waarom client-side rendering indexering vertraagt, wanneer u kiest voor SSR of prerendering, hoe meta-tags werken in React 19 en hoe AI uw site leest.

Op deze pagina
Kort gezegd
React kan scoren in Google, maar een standaard single page app stuurt een bijna leeg HTML-bestand en heeft JavaScript nodig om content te tonen. Dat vertraagt de indexering en verbergt de pagina voor de meeste AI-crawlers. De betrouwbare oplossing is HTML vanaf de server: statische pagina's tijdens de build prerenderen of een framework met server-rendering gebruiken (Next.js, React Router). Geef daarna elke URL een eigen titel, beschrijving en canonical, gebruik echte links en statuscodes, en controleer wat bots ontvangen.
Wil je verder gaan? Vraag het aan
Korte quiz
Is SEO iets voor jou, en hoe begin je?
Sorank past bij je antwoorden
Test het 3 dagen op je eigen website en zie waar je staat in Google, ChatGPT en de andere AI's.
3 dagen gratis testen3 dagen gratis, daarna stop je wanneer je wilt. 90 dagen resultaat-of-geld-terug-garantie.
React SEO is het werk om een React-applicatie crawlbaar, indexeerbaar en begrijpelijk te maken voor zoekmachines en AI-assistenten. React zelf is neutraal: de problemen ontstaan wanneer alles in de browser wordt gerenderd. Google bevestigt in de basisprincipes van JavaScript-SEO dat JavaScript-apps in drie fasen worden verwerkt (crawlen, renderen, indexeren) en dat server-side rendering of prerendering "nog steeds een goed idee is, omdat uw site sneller wordt voor gebruikers en crawlers, en niet alle bots JavaScript kunnen uitvoeren".
Een React-app die als single page application is gebouwd, levert een HTML-bestand met weinig meer dan een lege root-div en een script-tag. De browser downloadt het JavaScript, voert het uit en bouwt de pagina op. Een crawler die alleen de HTML leest, ziet niets om te indexeren: geen koppen, geen tekst, geen links.
Googlebot voert wel JavaScript uit, maar in een aparte stap: de pagina wordt gecrawld, in de renderwachtrij gezet, in een headless Chromium gerenderd, en pas daarna worden de gerenderde links en content gebruikt. Elke extra stap is een kans op fouten (een scriptfout, een geblokkeerde API, een time-out) en zorgt voor vertraging voordat nieuwe pagina's in de zoekresultaten verschijnen. Onze gids over JavaScript-SEO beschrijft dit proces, en ons artikel over Google-indexering legt uit hoe pagina's sneller geïndexeerd worden.
Andere bots zijn minder geduldig. De analyse van Vercel uit december 2024, The rise of the AI crawler, stelde vast dat "geen van de grote AI-crawlers momenteel JavaScript rendert" en noemde GPTBot, ChatGPT-User, OAI-SearchBot, ClaudeBot en PerplexityBot. Een client-side gerenderde React-pagina is onzichtbaar voor ChatGPT, Claude en Perplexity, ook als Google haar indexeert.
Het React-team raadt inmiddels aan nieuwe apps met een framework te starten. Bij het stopzetten van Create React App op 14 februari 2025 schreef het in de aankondiging dat "server-rendering SEO kan verbeteren" en ook de prestaties verhoogt, omdat gebruikers minder JavaScript hoeven te downloaden voordat ze content zien. De opties, van zwakst naar sterkst voor zoekmachines:
| Aanpak | Wat bots ontvangen | SEO-oordeel | Gangbare tools |
|---|---|---|---|
| Client-side rendering (SPA) | Lege HTML, content na JavaScript | Zwak: vertraagde indexering, onzichtbaar voor AI-crawlers | Vite + React, oude Create React App-projecten |
| Dynamische rendering | Geprerenderde HTML alleen voor bots | Noodoplossing, niet aanbevolen door Google | Prerenderdiensten, proxy's met headless browser |
| Statische prerendering tijdens de build | Volledige HTML voor elke bekende URL | Zeer goed voor content die weinig verandert | Prerendering van React Router, static site generators, statische export van Next.js |
| Server-side rendering | Volledige HTML bij elk verzoek, daarna hydratatie | Beste voor grote of vaak bijgewerkte sites | Next.js, React Router (frameworkmodus, voorheen Remix) |
Over dynamische rendering is de documentatie van Google duidelijk: het "was een noodoplossing en geen oplossing voor de lange termijn", en Google raadt in plaats daarvan server-side rendering, statische rendering of hydratatie aan. Kiest u een framework, dan behandelt onze gids over Next.js SEO rendermodi, de Metadata API en sitemaps in detail.
Is migreren niet mogelijk, dan kan Google een single page app met wat zorg toch indexeren. Onze gids over SEO voor single page applications noemt de voorwaarden; de rest van dit artikel geldt voor beide situaties.
Sinds React 19 (stabiel sinds 5 december 2024) kunnen componenten title-, meta- en link-tags direct renderen, en React verplaatst ze naar de head van het document. De release notes van React 19 vermelden dat deze ingebouwde ondersteuning werkt "met client-only apps, streaming SSR en Server Components". Vóór React 19 deden bibliotheken als react-helmet of react-helmet-async dit werk, en ze blijven nuttig om standaardwaarden per route te overschrijven.
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>
</>
)
}Drie regels gelden ongeacht de methode:
Let op
In een client-only app bestaan tags die React rendert pas nadat JavaScript is uitgevoerd. Google kan ze na het renderen lezen; AI-crawlers en de meeste previewbots van sociale netwerken niet. Server-rendering of prerendering zet ze voor iedereen in de HTML-respons.
Google stelt dat het "uw links alleen kan ontdekken als het HTML-elementen a met een href-attribuut zijn" en raadt af URL-fragmenten te gebruiken om verschillende content te laden. De meeste React SEO-problemen zitten in routingdetails:
| Fout | Effect | Oplossing |
|---|---|---|
| Navigatie met onClick op een div of knop | Google vindt geen link om te volgen | De Link-component van de router gebruiken, die een a met href rendert |
| Hashroutes (/#/producten) | Alle pagina's delen voor Google één URL | History-gebaseerde routes (/producten) gebruiken met BrowserRouter of een framework |
| Een "niet gevonden"-weergave met status 200 | "Soft 404" in Search Console | Een echte 404 vanaf de server teruggeven, of in een pure SPA noindex via JavaScript toevoegen |
| Alleen client-side redirects | Trage of gemiste redirects | Server-redirects 301 of 308 gebruiken voor verplaatste pagina's |
| Content die pas bij klikken of scrollen laadt | Tekst wordt nooit gerenderd voor de crawler | Hoofdcontent bij het laden renderen; lijsten pagineren met echte URL's |
| JavaScript of API geblokkeerd in robots.txt | Google rendert een lege pagina | De scripts en API-endpoints toestaan die de pagina nodig heeft |
Om te zien wat Google rendert, gebruikt u de URL-inspectietool in Search Console en bekijkt u de HTML van de geteste pagina, of haalt u belangrijke paginasjablonen door een indexeerbaarheidschecker.
React heeft geen ingebouwde sitemap. Genereer sitemap.xml tijdens de build uit uw routes en data (of met de sitemapfunctie van uw framework), neem alleen canonieke URL's op die 200 teruggeven, en verwijs ernaar in robots.txt. Voor een kleine statische site volstaat een XML-sitemapgenerator.
Gestructureerde data volgt dezelfde regel als metadata: render het JSON-LD-script met de pagina, uit dezelfde data, bij voorkeur op de server. Google kan JSON-LD lezen dat na het renderen via JavaScript is ingevoegd, maar markup die in de initiële HTML ontbreekt, ontbreekt ook voor crawlers die niet renderen. Gebruik Article voor berichten, Product voor e-commerce, Organization sitebreed en BreadcrumbList voor diepe pagina's.
Tip
Voer curl uit op een pagina-URL en zoek in de uitvoer naar de H1 en een zin uit de tekst. Ontbreken ze, dan indexeert Google de pagina misschien na het renderen, maar AI-crawlers zien niets.
Grote JavaScript-bundels schaden de Core Web Vitals: de browser moet code downloaden, parsen en hydrateren voordat de pagina reageert, wat drukt op Largest Contentful Paint en Interaction to Next Paint, vooral op mobiel. De aankondiging van het React-team over Create React App wijst erop dat server-rendering minder JavaScript en een volledig HTML-document stuurt, wat de First Contentful Paint versnelt en INP kan verlagen. Praktische hefbomen: code per route splitsen met React.lazy, afbeeldingen met expliciete afmetingen leveren, componenten onder de vouw lazy laden en scripts van derden doorlichten.
GEO (generative engine optimization) begint bij toegang. Omdat AI-crawlers ruwe HTML ophalen, moet een React-pagina tekst, koppen en JSON-LD zonder JavaScript leveren om gelezen, samengevat en geciteerd te worden. Een AI-crawlbaarheidsaudit laat zien wat deze bots van uw pagina's ontvangen. De tweede voorwaarde is content die het citeren waard is: pagina's die per sectie één vraag beantwoorden, met bronnen, cijfers en heldere definities.
Dat contentdeel automatiseert Sorank, ons product. Sorank is SEO- en GEO-software op autopilot: de Blogartikelgenerator schrijft en publiceert 20, 60 of 120 artikelen per maand met bronnen, interne links en afbeeldingen, en koppelt via een webhook met maatwerkstacks zoals een React- of Next.js-site. SEO Chat beantwoordt in een gesprek vragen over de zoekprestaties van uw site.

Samengevat: lever HTML vanaf de server, geef elke URL een eigen titel, beschrijving en canonical, en gebruik echte links. Dan scoort React zoals elke andere site en kunnen AI-assistenten haar lezen. Om die site doorlopend te voorzien van artikelen voor Google en AI, bekijk de abonnementen van Sorank, vanaf $49 per maand met 3 dagen gratis proberen.
Nee. React is een bibliotheek voor gebruikersinterfaces, en de SEO hangt af van hoe pagina's worden gerenderd. Een client-side gerenderde single page app stuurt lege HTML en leunt op de renderstap van Google, wat indexering vertraagt en content verbergt voor AI-crawlers. Dezelfde React-code met server-rendering of statische prerendering scoort als een klassieke website.
Ja. Googlebot voert JavaScript uit met een recente versie van Chromium en kan dus content indexeren die een React-app in de browser opbouwt. Het renderen gebeurt na het crawlen en kan vertraagd raken of mislukken als scripts fouten geven of API's geblokkeerd zijn. De URL-inspectietool in Search Console toont de gerenderde HTML zoals Google die ziet.
Niet voor eenvoudige gevallen. React 19 rendert title-, meta- en link-tags vanuit elke component en verplaatst ze naar de head van het document. Bibliotheken als react-helmet-async blijven nuttig wanneer u sitebrede standaardwaarden per route wilt overschrijven of oudere React-versies moet ondersteunen.
ZIJ PROBEERDEN SORANK VOOR JOU
