Een headless webshop kan prima ranken, mits de belangrijke content al in de HTML staat die de server terugstuurt.
Een headless webshop kan prima ranken, mits de belangrijke content al in de HTML staat die de server terugstuurt. Bij pure client-side rendering (CSR) moet Google je pagina eerst door zijn rendering queue halen voordat het producten, prijzen en links ziet, en veel andere crawlers, waaronder de meeste AI-crawlers, doen dat helemaal niet. Kies daarom voor server-side rendering (SSR) of statische generatie, en behandel hydration als een performancevraagstuk, niet als SEO-oplossing.
Wat er gebeurt als Google een JavaScript-pagina crawlt
Google verwerkt pagina's in drie stappen:
- Crawlen. Googlebot haalt de HTML op die je server terugstuurt.
- Renderen. De pagina gaat in een wachtrij voor de Web Rendering Service, die een actuele versie van Chromium gebruikt en JavaScript uitvoert.
- Indexeren. Google indexeert op basis van de gerenderde HTML.
Bij een server-gerenderde pagina staat alles al in stap 1. Links worden direct ontdekt, content kan direct beoordeeld worden. Bij een client-side gerenderde pagina is de HTML uit stap 1 vaak niet meer dan een lege Google rendert tegenwoordig vrijwel elke pagina. Het probleem zit niet in óf Google rendert, maar in de voorwaarden: Hier zit het grootste risico van CSR anno nu. Google rendert, maar Google is niet de enige die je shop leest. Wil je zichtbaar zijn in AI-zoekmachines, dan moet je productinformatie zonder JavaScript leesbaar zijn. Meer daarover op onze pagina over GEO voor webshops. De vuistregel: alles wat moet ranken, wordt op de server gerenderd. Alles achter een login mag client-side. Een uitgebreidere vergelijking voor productpagina's staat in SSR vs SSG voor productpagina's. Dynamic rendering betekent dat je crawlers een vooraf gerenderde versie geeft en gebruikers de CSR-versie. Google noemt dit expliciet een workaround en raadt het niet aan als langetermijnoplossing. Je onderhoudt twee versies van je site, en elk verschil tussen die versies is een bron van fouten. Bij SSR stuurt de server complete HTML. Daarna laadt de browser JavaScript dat die HTML "tot leven wekt": event handlers koppelen, state opbouwen, interactieve componenten activeren. Dat heet hydration. Voor SEO is hydration op zich geen probleem, want de content stond er al. Voor performance wel: Een hydration mismatch ontstaat als de HTML van de server afwijkt van wat de client rendert. Klassieke oorzaken in webshops: Het gevolg kan zijn dat de bezoeker en Google andere content zien, of dat het framework de hele boom opnieuw rendert. Beide wil je niet. Moderne aanpakken beperken hydration tot de onderdelen die interactief moeten zijn. Denk aan React Server Components in Next.js, of het islands-patroon in frameworks als Astro. Hoe minder JavaScript er moet hydrateren, hoe beter je INP. PWA Studio is Adobe's React-gebaseerde frontend voor Magento, gekoppeld via GraphQL. In de standaardopzet wordt veel client-side gerenderd. Wil je hiermee goed ranken, dan moet je zelf zorgen dat categorie- en productpagina's server-side of vooraf worden gerenderd, met de juiste meta-tags, canonicals en structured data in de initiële HTML. Dat is extra werk dat bij een klassieke Magento-frontend niet nodig is. Hyvä is geen headless frontend. Het is een Magento-thema dat de pagina's op de server rendert als gewone HTML, met Alpine.js voor interactie en Tailwind voor styling. Crawlers krijgen dus direct de volledige content. De hoeveelheid JavaScript is veel kleiner dan bij Luma, wat goed is voor INP en LCP. Voor veel Magento-shops die naar "headless" kijken vanwege snelheid, is Hyvä daarom de eenvoudigere route: de performancewinst zonder de JavaScript-SEO-risico's. Meer op onze Hyvä-pagina. Next.js ondersteunt SSR, SSG en revalidatie per route. Dat maakt het een goede keuze voor headless, mits je het goed inricht: Hydrogen is Shopify's eigen React-framework voor headless storefronts en rendert standaard op de server. Daarmee heb je de basis goed. Je verliest wel een deel van wat een Liquid-thema automatisch regelt, zoals canonicals, sitemaps en een deel van de structured data. Die moet je zelf inbouwen. Loop deze punten na op een categorie- en productpagina: Meer over de performancekant op onze pagina over Core Web Vitals, en de bredere technische basis op technische SEO voor webshops. De eerlijke versie: headless lost geen SEO-probleem op. Het verplaatst een deel van het werk van het platform naar jouw team. Canonicals, redirects, sitemaps, structured data, hreflang en foutpagina's moet je zelf bouwen en onderhouden. Headless kan zinvol zijn als je meerdere frontends op één backend draait, of een sterk afwijkende gebruikerservaring wilt. Gaat het vooral om snelheid, dan haal je die vaak met minder risico uit een snel server-gerenderd thema. Ja. Google rendert pagina's met een actuele versie van Chromium. Rendering gebeurt wel in een aparte stap na het crawlen, kan vertraging opleveren en kan mislukken. Content die direct in de server-HTML staat, is betrouwbaarder. Voor zover publiek bekend voeren de meeste AI-crawlers, zoals GPTBot, ClaudeBot en PerplexityBot, geen JavaScript uit. Ze lezen de ruwe HTML. Productinformatie die pas na JavaScript verschijnt, is voor hen dus onzichtbaar. Nee. Hyvä is een Magento-thema dat pagina's op de server rendert, met Alpine.js voor interactie. Crawlers krijgen direct volledige HTML. Je houdt de SEO-functionaliteit van Magento en wint snelheid ten opzichte van Luma. Een verschil tussen de HTML die de server stuurt en wat de browser na het laden van JavaScript rendert. Het kan zorgen voor andere content voor bezoeker en crawler, layoutverschuivingen en extra rekenwerk in de browser. Nee. Google noemt dynamic rendering een tijdelijke workaround en raadt het niet aan. Kies voor server-side rendering, statische generatie of een combinatie daarvan. 15+ jaar ervaring in e-commerce development. Gespecialiseerd in Magento, Shopify en Laravel maatwerk.Andere crawlers renderen niet
CSR, SSR, SSG en ISR naast elkaar
Aanpak Wat de crawler krijgt Geschikt voor CSR (client-side rendering) Lege HTML, content na JavaScript Account, checkout, dashboards SSR (server-side rendering) Volledige HTML per request Categorieën en producten met wisselende prijs en voorraad SSG (static site generation) Vooraf gebouwde HTML Contentpagina's, blogs, kleine catalogi ISR / revalidatie Statische HTML die periodiek of op aanvraag ververst Grote catalogi waar volledige rebuilds te traag zijn Dynamic rendering is geen oplossing meer
Hydration: waar SEO en performance elkaar raken
Hydration mismatches
Per platform
Magento PWA Studio
Hyvä
Next.js (met Magento, Shopify of een ander backend)
useEffect om productdata op te halen..Shopify Hydrogen
De checklist voor een headless webshop
curl of "Paginabron weergeven", niet met de element-inspector. Staan producttitel, prijs, beschrijving en interne links erin?curl -s -A "Mozilla/5.0 (compatible; Googlebot/2.1)" https://www.voorbeeldshop.nl/product/x | grep -i "<title>\|canonical\|application/ld+json". Geen onClick-handlers op divs, geen hash-URL's (/#/product/x), want het deel na de # wordt niet als aparte URL geïndexeerd.Moet je wel headless gaan?
Veelgestelde vragen
Kan Google JavaScript-websites indexeren?
Lezen AI-crawlers JavaScript?
Is Hyvä een headless oplossing?
Wat is een hydration mismatch?
Is dynamic rendering nog een goede oplossing?

Geschreven door Ruthger Idema



