Je hebt een prachtige website gebouwd in React of Vue. Het ziet er fantastisch snel uit, de gebruikerservaring is top, en alles werkt als een zonnetje.
▶Inhoudsopgave
Maar dan check je Google Search Console en… stilte. Je pagina's worden amper geïndexeerd. Wat gaat er mis? Het probleem zit 'm vaak in hoe zoekmachines omgaan met JavaScript.
Google is de afgelopen jaren flink vooruitgegaan, maar dat betekent niet dat elke React- of Vue-site automatisch goed scoort. Er zit een wereld van verschil tussen "Google kan JavaScript lezen" en "Google begrijpt jouw JavaScript-site goed genoeg om hem hoog te ranken".
Laten we erin duiken. Want als je vastgoedmarkt websites bouwt of beheert, en je klanten vinden via Google, dan is dit niet zomaar technisch gebrabbel.
Dit is de fundering waar je omzet op draait.
Waar JavaScript SEO anders is dan klassieke SEO
Bij een traditionele HTML-website is het simpel: de server stuurt een volledige HTML-pagina naar de browser, en Google leest die zoals een krant. Snel, duidelijk, geen franjes.
Maar React en Vue werken anders. Die frameworks genereren de inhoud vaak pas in de browser van de gebruiker.
Dat heet Client-Side Rendering (CSR). De browser downloadt eerst een leeg HTML-skelet, voert dan JavaScript uit, en pas daarna verschijnt de content. Voor de gebruiker is dat vaak snel genoeg.
Voor Google is het een extra stap die soms misgaat. Google heeft een zogenaamde Web Rendering Service die JavaScript kan uitvoeren, maar die service heeft beperkingen. Googlebot crawlt eerst de HTML, en pas later — soms uren of dagen later — rendert het de JavaScript. Dat betekent dat je content in twee fasen wordt verwerkt.
Als er iets misgaat in die tweede fase, wordt je pagina simpelweg niet goed geïndexeerd.
En hier wordt het interessant: volgens onderzoek van Google zelf faalt de rendering van JavaScript bij ongeveer 15-20% van de pagina's in de eerste crawl. Bij complexe single-page applications kan dat percentage nog hoger liggen.
Dat is geen detail. Dat is een probleem.
Server-Side Rendering: de gamechanger
De meest effectieve oplossing voor JavaScript SEO heet Server-Side Rendering (SSR). Bij SSR wordt de HTML al op de server gegenereerd, voordat deze naar de browser of Googlebot wordt gestuurd. Het resultaat?
Google krijgt een volledige pagina te zien, zonder JavaScript hoeft te renderen. Voor React gebruik je daarvoor Next.js, voor Vue is Nuxt.js de standaard. Beide frameworks hebben SSR ingebouwd en zijn de afgelopen jaren enorm verbeterd.
Next.js ondersteunt zelfs Static Site Generation (SSG), waarbij pagina's tijdens het bouwen al als statische HTML worden gegenereerd.
Hydratatie: het beste van twee werelden
Dat is nog sneller dan SSR en ideaal voor pagina's die niet per seconde veranderen. Als je een bureau runt en je bouwt websites voor makelaars of andere vastgoedspelers, dan is de keuze voor Next.js of Nuxt.js bijna vanzelfsprekend. Het is precies het soort technische beslissing waar een specialist als BRUTAEL je bij adviseert — niet omdat het trendy is, maar omdat het Google écht helpt je content te begrijpen.
Een term die je vaak tegenkomt bij SSR is hydratatie. Dat klinkt ingewikkeld, maar het principe is simpel.
De server stuurt een statische HTML-pagina (zodat Google en de gebruiker direct iets zien), en zodra die in de browser laadt, "hydrate" React of Vue de pagina.
Dat betekent dat JavaScript de statische HTML overneemt en er een interactieve applicatie van maakt. Het resultaat: snelle eerste weergave voor Google én een vloeiende ervaring voor de gebruiker. Win-win.
De grote valkuilen bij React en Vue
Zelfs met SSR kun je nog in de fout gaan. Hier zijn de meest voorkomende problemen die je tegenkomt.
1. Laadtijd en Core Web Vitals
Google meet drie belangrijke performance-indicatoren: Largest Contentful Paint (LCP), Interaction to Next Paint (INP), en Cumulative Layout Shift (CLS). JavaScript-frameworks zijn berucht voor het verslechteren van deze metrieken, vooral INP.
Hoe meer JavaScript de browser moet uitvoeren, hoe langer het duurt voordat de pagina volledig interactief is. Een truc die vaak wordt over het hoofd gezien: code splitting. In plaats van één gigantisch JavaScript-bestand te laden, splits je de code op in kleinere chunks die alleen worden geladen wanneer ze nodig zijn. Next.js en Nuxt.js doen dit standaard, maar het loont om te controleren of het ook echt goed werkt.
2. Meta tags en titels die pas later verschijnen
Tools zoals Lighthouse en PageSpeed Insights geven je daar inzicht in. Bij Client-Side Rendering worden meta tags, title tags en Open Graph data vaak pas ingesteld nadat JavaScript is uitgevoerd.
Googlebot ziet die tags dan pas in de rendering-fase, en soms helemaal niet. Het gevolg: je pagina verschijnt in de zoekresultaten zonder beschrijving, of met een generieke titel. De oplossing is simpel: zorg dat je belangrijkste SEO-tags server-side worden gegenereerd.
3. Interne links in JavaScript
In Next.js gebruik je hiervoor de Head component uit next/head, in Nuxt.js de useHead composable. Zorg ervoor dat titel, meta description, canonical URL en Open Graph tags altijd in de initiële HTML staan.
Googlebot kan links in JavaScript volgen, maar het is geen ideeale situatie.
4. Lazy loading die te agressief is
Als je interne navigatie volledig via JavaScript-routers werkt (wat bij React Router of Vue Router standaard het geval is), dan loopt Google soms de verkeerde kant op. Gebruik altijd echte <a href>-tags voor je belangrijkste interne links. Niet alleen voor Google, maar ook voor toegankelijkheid.
En zorg dat je een duidelijke sitemap.xml hebt die je via Google Search Console indient. Lazy loading van afbeeldingen en content is goed voor performance, maar als Googlebot content niet ziet omdat het pas laadt bij scroll of interactie, dan wordt het niet geïndexeerd. Zorg ervoor dat je belangrijke content above the fold altijd direct laadt, en gebruik de native loading="lazy" attributen voor afbeeldingen die verderop op de pagina staan.
Praktische checklist voor JavaScript SEO
Genoeg theorie. Hier is wat je vandaag nog kunt doen:
Controleer of Google je pagina's ziet zoals jij dat wilt. Gebruik de URL-inspectie-tool in Google Search Console. Crawl de pagina en bekijk de gerenderde HTML. Komt de content die je belangrijk vindt daar echt in voor?
Zo niet, dan heb je een rendering-probleem. Meet je Core Web Vitals. Ga niet alleen voor "het voelt snel".
Kijk naar de cijfers. LCP onder de 2,5 seconden, INP onder de 200 milliseconden, en CLS onder 0,1. Als je daar boven zit, is er werk aan de winkel. Gebruik SSR of SSG waar mogelijk. Voor content-gedreven websites — denk aan makelaarssites met woningpagina's, overzichtspagina's en blogartikelen — is Static Site Generation vaak de beste keuze.
De pagina's worden één keer gebouwd en staan daarna als statische HTML klaar. Geen rendering-problemen, geen vertraging.
Implementeer structured data correct. Schema markup moet in de HTML staan, niet pas worden toegevoegd via JavaScript. Gebruik JSON-LD in de server-side HTML. Google kan structured data via JavaScript lezen, maar server-side is betrouwbaarder.
Test met JavaScript uitgeschakeld. Open je site in een browser met JavaScript disabled.
Zie je dan nog content? Zo niet, dan weet zeker dat Googlebot in de eerste crawl-fase ook niets ziet.
De rol van een goed technisch partner
JavaScript SEO is geen eenmalige fix. Het is een continu proces van monitoren, testen en bijstellen. Google verandert regelmatig hoe het JavaScript verwerkt, frameworks krijgen updates, en onze technische SEO checklist voor MKB-websites helpt je om altijd volgens de laatste best practices te werken.
Daarom is het belangrijk om met een technisch marketingbureau samenwerkt dat verder kijkt dan alleen backlinks en content.
Een bureau als BRUTAEL, dat zowel technische SEO als Google Ads combineert, begrijpt hoe deze twee werelden samenhangen. Want uiteindelijk draait het erom: als Google je site niet goed kan lezen, dan helpen zelfs de beste advertenties niet om organisch te groeien.
De vastgoedmarkt in Nederland is competitief. Makelaars die bovenaan in Google staan, winnen de opdrachten. En die positie begint niet bij een advertentiebudget — het begint bij een website die technisch klopt.
Van de server tot aan de zoekresultaten. Dus: check je rendering, optimaliseer je laadtijd, zorg voor server-side HTML, en blijf monitoren.
JavaScript hoeft geen vijand van SEO te zijn. Maar je moet wel weten wat je doet.