Je content staat online, dus die is vindbaar. Toch? Bij websites die zwaar op JavaScript leunen, is dat lang niet altijd zo. Er zit vaak een gat tussen wat jij in je CMS ziet en wat Google en AI werkelijk zien. JavaScript SEO gaat precies over dat gat: zorgen dat een site die met JavaScript is gebouwd, gewoon vindbaar, crawlbaar en indexeerbaar is. In dit artikel laten we zien waar het misgaat, hoe je het zelf test en hoe je het oplost, voor zowel Google als de nieuwe generatie AI-zoekmachines.
Wat is JavaScript SEO?
JavaScript SEO is het onderdeel van technische SEO dat ervoor zorgt dat websites die op JavaScript draaien goed te crawlen, te renderen en te indexeren zijn. Veel moderne sites bouwen hun pagina’s pas in de browser op met JavaScript: denk aan single-page applicaties, dynamische filters, of content die uit een externe bron wordt ingeladen. Voor een bezoeker werkt dat prima. Voor een zoekmachine of AI-model is de vraag of het die content überhaupt te zien krijgt.
Hoe Google JavaScript crawlt en rendert
Google kan JavaScript verwerken, maar niet in één keer en niet gratis. Het proces verloopt in twee stappen, zoals Google in zijn eigen documentatie over JavaScript SEO beschrijft. Eerst crawlt Googlebot de ruwe HTML. Daarna wordt de pagina in een tweede ronde gerenderd om de JavaScript uit te voeren. Die tweede ronde gebeurt niet altijd direct: de pagina kan een paar seconden in de wachtrij staan, maar bij drukte ook dagen. Staat je belangrijkste content alleen in die gerenderde versie, dan ben je afhankelijk van of en wanneer Google die render uitvoert. Bij grote of trage sites betekent dat soms dat content laat of helemaal niet wordt opgepikt.
Het zichtbaarheidsgat: jouw CMS versus de crawler
In je CMS ziet alles er compleet uit. Pagina’s, producten, vacatures: ze staan er keurig in. Maar een zoekmachine of AI-model ziet niet je achterkant, het ziet de HTML die je site teruggeeft. Laadt belangrijke content pas via JavaScript, via een externe koppeling of via een ingesloten widget, dan kan de crawler daar zomaar niets van meekrijgen.
We zien het in onze audits vaker dan je zou denken. Bij een organisatie met een fors aanbod stonden tientallen pagina’s netjes klaar in de achterkant, maar werden ze via een externe feed (een ATS- of XML-koppeling) ingeladen. In de ruwe HTML die Google en AI ophaalden, was er geen enkele te vinden. De content bestond wel, maar niet voor wie ernaar zocht. Je betaalt dan voor content die niemand kan vinden.

Waarom je het zelf niet ziet
Het verraderlijke: in jouw browser werkt alles. Je bent ingelogd, je JavaScript draait, de feed laadt netjes in. Maar een zoekmachine of AI-model komt anoniem binnen, rendert beperkt en wacht niet op trage of externe scripts. Wat voor jou vanzelfsprekend zichtbaar is, is voor hen een lege pagina. Veelvoorkomende boosdoeners: content die alleen via JavaScript verschijnt, ingesloten iframes en feeds, oneindig scrollen, en informatie die pas opduikt na een klik.
Je wilt serieus genomen worden door de zoekmachine. Geef je gemengde signalen, dan haakt hij af.
Giacomo Perticara, oprichter en SEO-strateeg bij GRP Digital
AI maakt het gat groter, niet kleiner
Veel mensen denken dat AI slimmer is en dus beter door dit soort dingen heen kijkt. Het tegenovergestelde is waar. Uit onderzoek van Vercel blijkt dat de crawlers van ChatGPT en Claude JavaScript-bestanden wel ophalen, maar niet uitvoeren. Ze lezen alleen de ruwe HTML. Het gevolg is scherp: een pagina kan op positie 1 in Google staan en tegelijk vrijwel onzichtbaar zijn voor AI-zoekmachines. En juist in AI-antwoorden wil je genoemd worden, want dat is steeds vaker het moment waarop mensen hun keuze maken. Wie alleen op klassieke SEO stuurt, mist die nieuwe laag.
Een technische SEO-audit is als een APK: die doe je elk jaar, ook als er niks kapot is.
Giacomo Perticara, oprichter en SEO-strateeg bij GRP Digital
Zo test je wat Google en AI echt zien
Je hoeft niet te gokken. Dit is precies wat wij in onze audits als eerste controleren, en je kunt het in een paar minuten zelf doen:
- Bekijk de paginabron (Ctrl+U of Cmd+U): staat je belangrijke tekst letterlijk in de HTML, of is het grotendeels leeg?
- Zet JavaScript uit in je browser (via de developer tools) en herlaad de pagina. Wat blijft er over, is dat wat je wilt laten ranken?
- Gebruik de URL-inspectie in Google Search Console en bekijk de gerenderde HTML die Google daadwerkelijk ophaalt.
- Zoek een letterlijke zin van je pagina in Google, tussen aanhalingstekens. Geen resultaat? Dan is die tekst waarschijnlijk niet geïndexeerd.
Zo dicht je het zichtbaarheidsgat
- Lever belangrijke content al in de HTML, met server-side rendering (SSR) of static generation (SSG), in plaats van uitsluitend via JavaScript.
- Laat externe feeds en embeds (ATS, vacatures, productdata) server-side renderen of spiegel ze naar eigen, indexeerbare pagina’s.
- Geef elke belangrijke entiteit (vacature, product, dienst) een eigen indexeerbare URL met structured data.
- Blokkeer je JavaScript- en CSS-bestanden niet in robots.txt; de crawler heeft ze nodig om correct te renderen.
- Monitor structureel: houd de dekkingsrapporten in Search Console bij en doe periodiek een render-check.
Is JavaScript slecht voor SEO?
Nee. JavaScript is onmisbaar voor moderne websites en hoeft SEO niet in de weg te zitten. Het gaat pas mis als belangrijke content uitsluitend via JavaScript wordt opgebouwd zonder dat zoekmachines die kunnen renderen. Goed geïmplementeerd, met server-side rendering en indexeerbare URL’s, kan een JavaScript-site prima ranken, voor Google en voor AI.
We bouwen geen pagina’s, we bouwen logica.
Giacomo Perticara, oprichter en SEO-strateeg bij GRP Digital
Zichtbaarheid is geen aanname
De goedkoopste groei zit vaak in content die je al hebt, maar die niemand kan zien. Voordat je investeert in meer content of meer advertenties: controleer eerst of wat er staat, ook echt zichtbaar is voor mens, Google en AI. Zichtbaarheid is geen aanname, maar iets wat je test.
Benieuwd wat zoekmachines en AI echt van jouw site zien? Bij GRP Digital brengen we het zichtbaarheidsgat in kaart en dichten we het.



