Kennisbank
AI-crawlers en JavaScript: waarom je content onzichtbaar kan zijn
Laatst bijgewerkt:
AI-crawlers zoals GPTBot, ClaudeBot en PerplexityBot voeren geen JavaScript uit. Verschijnt je content pas nadat JavaScript is geladen, dan zien ze een lege pagina. Test het door je site zonder JavaScript te bekijken: mis je dan je kernteksten, dan mist AI ze ook. De oplossing is server-side gerenderde HTML.
Het probleem in één zin
Moderne websites bouwen hun inhoud vaak in de browser op met JavaScript (denk aan veel React-, Vue- of Angular-sites). Googlebot kan dat renderen; AI-crawlers niet. Onderzoek van Vercel en MERJ toonde aan dat geen van de grote AI-crawlers JavaScript uitvoert. [1] Alles wat pas ná het draaien van JS verschijnt, bestaat voor AI niet.
Het verraderlijke is dat je site er in je eigen browser perfect uitziet: jij hebt immers JavaScript aan. De crawler ziet iets heel anders: vaak een vrijwel lege pagina met alleen een laadscherm.
Wat de crawlers echt doen
De data is expliciet: AI-crawlers halen soms JS-bestanden op maar draaien ze niet: ChatGPT bij 11,5% en Claude bij 23,8% van de requests, puur voor het verzamelen, niet om te renderen. [1] Daarnaast besteden ChatGPT- en Claude-crawlers een groot deel van hun requests aan URL's die 404 geven, veel meer dan Googlebot. [1] Ze zijn dus minder efficiënt en hebben schone, directe HTML nodig.
Zo test je je eigen site
- Schakel JavaScript uit in je browser (bij Chrome via de ontwikkelaarstools) en herlaad je pagina.
- Kijk of je belangrijkste teksten (dienstbeschrijvingen, adres, FAQ, prijzen) nog zichtbaar zijn.
- Of gebruik ‘Bekijk paginabron’ (Ctrl+U) en zoek naar je kernzinnen in de ruwe HTML.
- Zie je de tekst niet, dan ziet AI die ook niet: ongeacht hoe mooi je site in de browser oogt.
De oplossing: server-side HTML
Zorg dat je kerncontent al in de HTML staat die de server verstuurt: via server-side rendering (SSR), static generation of prerendering. Bij WordPress en de meeste klassieke CMS'en is dit standaard het geval; bij moderne JavaScript-frameworks moet je het bewust inschakelen. Combineer dit met versheid, want AI verkiest recent bijgewerkte pagina's. [2]
Deze randvoorwaarde is de basis onder al je andere AEO-werk: zonder leesbare HTML helpt geen enkele off-site vermelding of schema. Zie ook de pijler Vindbaar worden in AI-zoekmachines.
Welke sites lopen het meeste risico?
Het probleem speelt vooral bij single-page-applicaties die volledig in de browser worden opgebouwd: vaak gemaakt met React, Vue of Angular zonder server-side rendering. Ook sommige moderne paginabuilders en headless-opstellingen leveren een vrijwel lege HTML-pagina die pas met JavaScript wordt ingevuld. Voor die sites is de kerncontent voor AI onzichtbaar totdat je rendering aan de serverkant regelt.
Klassieke CMS'en zoals WordPress, Joomla of Drupal leveren content standaard als server-side HTML en hebben dit probleem meestal niet: tenzij een zwaar JavaScript-thema de inhoud alsnog in de browser opbouwt. De oplossing bij frameworks is server-side rendering (bijvoorbeeld met Next.js of Nuxt), static site generation of prerendering. Test na elke grote wijziging opnieuw met JavaScript uit, want AI-crawlers voeren het simpelweg niet uit. [1]
Veelgestelde vragen
Geldt dit ook voor mijn WordPress-site?
Meestal niet als probleem: WordPress levert content standaard server-side als HTML. Let wel op zwaar JavaScript-afhankelijke thema's of paginabuilders die content pas in de browser opbouwen: test het met JavaScript uit.
Rendert Google dan wél JavaScript?
Ja, Googlebot kan JavaScript renderen, waardoor sites voor Google werken maar voor AI-crawlers onzichtbaar blijven. Daarom kan een site prima in Google staan en toch uit ChatGPT-antwoorden verdwijnen.
Hoe test ik dit het snelst?
Open je pagina en bekijk de paginabron (Ctrl+U) of schakel JavaScript uit en herlaad. Staan je kernteksten niet in de ruwe HTML, dan moet je server-side rendering of prerendering inschakelen.
Moet ik mijn hele site server-side maken?
Niet per se: het gaat om je kerncontent. Zorg dat teksten die AI moet kunnen lezen (diensten, adres, antwoorden) in de server-HTML staan. Zuiver decoratieve of interactieve elementen mogen client-side blijven.
Lees verder
← Terug naar de pijler: Vindbaar worden in AI-zoekmachines