Techniek
Waarom ChatGPT je website niet kan lezen (en hoe je dat oplost)
Ziet je website er prima uit, maar noemt ChatGPT je nooit? Misschien zien AI-crawlers alleen een lege pagina. Dit is waarom, en wat je eraan doet.
Door Blauwdruk · · 8 min lezen · Markdown-versie
Je website ziet er strak uit, laadt vlot en bezoekers reageren enthousiast. Toch noemt ChatGPT je nooit, en als je vraagt wat er op je site staat, krijg je een vaag of zelfs verkeerd antwoord. De oorzaak zit vaak onder de motorkap: voor veel AI-crawlers bestaat je website simpelweg niet, omdat de inhoud pas met JavaScript wordt opgebouwd.
In dit artikel lees je hoe dat komt, hoe je het in een minuut zelf test en hoe je het oplost.
Wat is client-side rendering?
Bij client-side rendering stuurt de server een bijna lege HTML-pagina naar de browser, waarna JavaScript in die browser de inhoud opbouwt. De teksten, knoppen en afbeeldingen die je ziet, bestaan pas nadat dat script heeft gedraaid.
Zo ziet de HTML van zo’n site er vaak uit (vereenvoudigd voorbeeld):
<!doctype html>
<html lang="nl">
<head>
<title>Installatiebedrijf Jansen</title>
<script type="module" src="/assets/index-4f8a2c.js"></script>
</head>
<body>
<div id="root"></div>
</body>
</html>
Dat lege <div id="root"> is de plek waar de app straks alles neerzet. Bij een bezoeker met een moderne browser gebeurt dat in een oogwenk. Hij merkt er niets van.
Deze bouwwijze is populair bij single-page apps in React met Vite, en bij AI-sitebouwers. Lovable bouwde tot mei 2026 standaard React-apps met Vite, en ook Bolt kan zo’n app opleveren: onze eigen site was er een. Voor een webapplicatie achter een inlog is dat prima. Voor een bedrijfswebsite die gevonden moet worden, is het een risico.
Waarom zien AI-crawlers een lege pagina?
Omdat de crawlers van onder meer OpenAI, Anthropic en Perplexity de HTML wel ophalen, maar de JavaScript niet uitvoeren. Ze lezen precies wat de server stuurt: in het voorbeeld hierboven een titel en verder niets.
Dat blijkt uit onderzoek van Vercel en MERJ, gepubliceerd in december 2024. Ze analyseerden het verkeer van AI-crawlers op het netwerk van Vercel, waar GPTBot in één maand 569 miljoen verzoeken deed en de crawler van Anthropic 370 miljoen. De conclusie: de crawlers van OpenAI, Anthropic, Meta, ByteDance en Perplexity renderen geen JavaScript. De bots van OpenAI en Anthropic downloaden wel JavaScript-bestanden (11,5 procent van de verzoeken van ChatGPT en 23,8 procent van die van Claude), maar voeren ze niet uit.
| Crawler | Van | Waarvoor | Voert JavaScript uit? |
|---|---|---|---|
| GPTBot | OpenAI | Training van modellen | Nee |
| OAI-SearchBot | OpenAI | Zoekresultaten in ChatGPT | Nee |
| ChatGPT-User | OpenAI | Pagina’s ophalen op verzoek van een gebruiker | Nee |
| ClaudeBot | Anthropic | Training van modellen | Nee |
| PerplexityBot | Perplexity | Zoekresultaten in Perplexity | Nee |
| Googlebot | Google Zoeken, inclusief de AI-functies | Ja |
Wat betekent dat in de praktijk? Vraagt iemand ChatGPT naar jouw dienst, dan heeft het systeem aan een pagina zonder tekst niets. Het kan die pagina niet samenvatten en er geen feiten uit halen. Hooguit baseert het zich op wat andere sites over je zeggen, en dat is lang niet altijd actueel.
En Google dan?
Eerlijk is eerlijk: Google is de uitzondering. Googlebot verwerkt JavaScript in drie fases: crawlen, renderen en indexeren. Een pagina kan wel even in de wachtrij voor rendering staan, volgens Google soms enkele seconden, soms langer. Gemini gebruikt volgens het onderzoek van Vercel en MERJ de infrastructuur van Googlebot, en de AI-overzichten en de AI-modus putten uit de zoekindex van Google. Google schrijft zelf dat het inhoud in JavaScript kan verwerken, zolang die niet wordt geblokkeerd.
Je JavaScript-site kan dus prima in Google staan en toch onzichtbaar zijn voor ChatGPT, Claude en Perplexity. Ook Google raadt overigens aan om je HTML op de server of vooraf te laten genereren, omdat dat je site sneller maakt voor gebruikers en crawlers, en omdat niet alle bots JavaScript kunnen uitvoeren.
Ook onze eigen website was leeg voor AI-crawlers
Wij weten hoe makkelijk dit gebeurt, want het overkwam ons ook. Tot voor kort was blauwdruk.io een JavaScript-app, gebouwd met Bolt. Voor bezoekers zag de site er prima uit. Maar wie de broncode opende, vond alleen een titel, een korte Engelstalige beschrijving en een lege <div id="root"></div>. Voor AI-crawlers als GPTBot en ClaudeBot was het dus een lege pagina.
Voor een bureau dat bedrijven helpt om door AI gevonden te worden, is dat geen goed visitekaartje. Daarom hebben we de site opnieuw gebouwd, nu als statische HTML. Elke pagina staat kant-en-klaar op de server, met alle tekst erin, en als bezoeker merk je geen verschil. We vertellen dit niet om onszelf op de borst te kloppen, maar omdat het laat zien hoe onzichtbaar dit probleem is zolang je er niet naar kijkt.
Hoe test je in 1 minuut of AI je website kan lezen?
Bekijk de ruwe HTML van je pagina, zonder dat er JavaScript draait. Staat je tekst daar niet in, dan zien de meeste AI-crawlers hem ook niet. Technische kennis heb je er niet voor nodig.
1. Bekijk de paginabron
Open je homepage in Chrome en druk op Ctrl+U (Windows) of Cmd+Option+U (Mac), of zet view-source: voor het webadres. Zoek met Ctrl+F of Cmd+F naar een zin die je op de pagina ziet staan. Gebruik hiervoor niet ‘Inspecteren’: daar zie je de pagina zoals de browser hem na het uitvoeren van JavaScript heeft opgebouwd.
2. Haal de pagina op met curl
Met curl haal je in de terminal de HTML op zoals een crawler dat doet, zonder JavaScript. Vervang het adres en de zin door die van jezelf:
# Mac of Linux
curl -s https://www.jouwdomein.nl | grep -i "een zin van je homepage"
# Windows (opdrachtprompt of PowerShell)
curl.exe -s https://www.jouwdomein.nl | findstr /i /c:"een zin van je homepage"
Krijg je niets terug, dan staat die zin niet in de HTML die de server verstuurt.
3. Zet JavaScript uit in je browser
Open in Chrome de ontwikkelaarstools (F12, of Cmd+Option+I op een Mac), druk op Ctrl+Shift+P of Cmd+Shift+P, typ “JavaScript”, kies Disable JavaScript en herlaad de pagina. Wat je dan ziet, komt aardig in de buurt van wat GPTBot ziet. Zolang de ontwikkelaarstools open zijn, blijft JavaScript in dat tabblad uit.
4. Laat het ons checken
Geen zin om zelf te testen? In de gratis LLM-scan kijken we met je mee.
Hoe los je het op?
Zorg dat de server kant-en-klare HTML stuurt, met alle belangrijke tekst erin. Dan kan elke crawler je pagina lezen, of hij nu JavaScript uitvoert of niet. Daar zijn drie manieren voor.
Statische generatie (SSG)
Bij statische generatie worden alle pagina’s vooraf, tijdens het bouwen van de site, omgezet naar HTML-bestanden. Astro doet dat standaard, en ook Next.js kan het. Voor de meeste bedrijfssites, van een fysiotherapeut tot een advocatenkantoor, is dit de beste keuze: snel en voor iedere crawler leesbaar. Onze eigen site werkt zo.
Server-side rendering (SSR)
Bij server-side rendering maakt de server de HTML bij elk bezoek aan. Dat is handig als inhoud vaak verandert of per bezoeker verschilt, zoals bij een webshop met actuele voorraad. Next.js, Nuxt en Astro ondersteunen dit. Ook Lovable is overgestapt: apps die sinds 13 mei 2026 worden aangemaakt, gebruiken TanStack Start met server-side rendering.
Prerendering
Bij prerendering rendert een aparte dienst je JavaScript-pagina’s, en krijgen crawlers die kant-en-klare versie te zien. Lovable doet dat bijvoorbeeld voor oudere React-projecten die bij Lovable zelf gehost worden, alleen voor geverifieerde zoek- en AI-crawlers. Host je zo’n project ergens anders, controleer het dan zelf met de test hierboven.
Prerendering is een snelle pleister, maar wel een pleister. Google noemt het serveren van een aparte versie aan bots (dynamic rendering) een workaround en geen oplossing voor de lange termijn, en raadt server-side rendering, statische rendering of hydratatie aan.
| Aanpak | Wanneer ontstaat de HTML? | Geschikt voor |
|---|---|---|
| Statische generatie | Eenmalig, bij het bouwen van de site | De meeste bedrijfswebsites en landingspagina’s |
| Server-side rendering | Bij elk bezoek, op de server | Sites met veel wisselende of persoonlijke inhoud |
| Prerendering | Door een aparte dienst, alleen voor bots | Tijdelijke oplossing voor een bestaande JavaScript-app |
Blokkeert je robots.txt AI-crawlers?
Ook met perfecte HTML kun je onzichtbaar zijn als je robots.txt of je hostingpartij AI-crawlers buitensluit. Controleer daarom ook dit bestand, dat je vindt op jouwdomein.nl/robots.txt. Let op drie valkuilen:
- Een vergeten blokkade. Tijdens de bouw zetten ontwikkelaars soms
Disallow: /voor alle bots, zodat een testversie niet in zoekmachines belandt. Blijft die regel na de livegang staan, dan sluit je iedereen buiten. - Een te brede AI-blokkade. Wie online een lijstje kopieert om alle AI-bots te blokkeren, houdt vaak ook de zoekbots tegen. Maar voor trainen en voor zoeken worden verschillende bots gebruikt. OpenAI zegt dat sites die OAI-SearchBot blokkeren niet in de zoekantwoorden van ChatGPT verschijnen, hooguit als navigatielink, en dat elke instelling los staat van de andere. Volgens Anthropic kan het blokkeren van Claude-SearchBot je zichtbaarheid in de zoekresultaten van Claude verminderen.
- Instellingen bij je hosting of CDN. Partijen als Cloudflare kunnen AI-crawlers op netwerkniveau tegenhouden, los van je robots.txt. Cloudflare maakte het blokkeren van AI-crawlers in juli 2025 de standaard voor nieuwe domeinen en past de standaardinstellingen in 2026 opnieuw aan, met onderscheid tussen zoek-, agent- en trainingsbots. Kijk dus in je dashboard wat er precies aanstaat.
Zo ziet een robots.txt eruit die AI-zoekbots expliciet toelaat:
# AI-zoekbots: hiermee vinden ChatGPT, Claude en Perplexity je pagina's
User-agent: OAI-SearchBot
User-agent: Claude-SearchBot
User-agent: PerplexityBot
Allow: /
# AI-trainingsbots: liever niet in trainingsdata? Maak er dan Disallow: / van
User-agent: GPTBot
User-agent: ClaudeBot
Allow: /
# Alle andere bots
User-agent: *
Allow: /
Sitemap: https://www.jouwdomein.nl/sitemap.xml
Of je trainingsbots toelaat, is een afweging. Blokkeer je ze, dan wordt je inhoud niet gebruikt om toekomstige modellen te trainen, maar weten die modellen ook minder over je bedrijf. Houd er verder rekening mee dat een wijziging niet meteen werkt: OpenAI en Perplexity noemen allebei een termijn van ongeveer een dag. En bots die een pagina ophalen op verzoek van een gebruiker, zoals ChatGPT-User en Perplexity-User, volgen robots.txt volgens hun makers niet altijd.
Je hoort in dit verband ook vaak over llms.txt. Dat bestand regelt geen toegang, maar geeft uitleg over je site. Wat het wel en niet doet, lees je in llms.txt uitgelegd.
Wat betekent dit voor jouw website?
Is je site een JavaScript-app, bijvoorbeeld in React met Vite, of gebouwd met een tool als Lovable of Bolt? Test hem dan vandaag nog met een van de methodes hierboven. Het kost een minuut en je weet meteen of AI-assistenten je kunnen lezen. Wil je weten hoe dit past in het grotere plaatje, lees dan wat LLM-zichtbaarheid is.
Liever zekerheid in één keer? Met de gratis LLM-scan ontdek je wat ChatGPT, Gemini en Google AI over je bedrijf weten, en wat ze missen. Blijkt je site onleesbaar voor AI, dan bouwen we hem graag opnieuw als snelle, statische site op ons framework voor LLM-zichtbaarheid. Met een gratis demo-website zie je eerst hoe dat er voor jouw bedrijf uitziet.
Veelgestelde vragen
Kan Google mijn JavaScript-website wel lezen?
Meestal wel. Googlebot rendert JavaScript, al kan dat met enige vertraging gebeuren. Daar profiteren de AI-overzichten en Gemini van, maar ChatGPT, Claude en Perplexity niet.
Heeft een WordPress-site dit probleem ook?
Een standaard WordPress-site levert gewone HTML en heeft er meestal geen last van. Let wel op onderdelen die pas met JavaScript verschijnen, zoals sommige reviewwidgets, tabbladen of sliders met tekst.
Moet ik mijn hele website opnieuw laten bouwen?
Niet altijd. Soms is het genoeg om binnen hetzelfde framework over te stappen op server-side rendering of statische generatie. Bij een kleinere bedrijfssite is opnieuw bouwen als statische site vaak de meest robuuste oplossing.
Hoe snel ziet ChatGPT de verbeterde versie?
Dat hangt af van wanneer de crawlers langskomen. Een aanpassing in robots.txt verwerkt OpenAI naar eigen zeggen binnen ongeveer 24 uur; nieuwe inhoud telt pas mee nadat je pagina's opnieuw zijn opgehaald.
Zijn er AI-crawlers die wel JavaScript uitvoeren?
Ja. Volgens het onderzoek van Vercel en MERJ rendert AppleBot JavaScript, en Gemini maakt gebruik van de infrastructuur van Googlebot. Voor de onderzochte bots van OpenAI, Anthropic, Meta, ByteDance en Perplexity gold dat niet.
Bronnen
- 1.Vercel: The rise of the AI crawler (onderzoek met MERJ, december 2024)
- 2.OpenAI: Overview of OpenAI Crawlers
- 3.Anthropic: Does Anthropic crawl data from the web, and how can site owners block the crawler?
- 4.Perplexity: Perplexity Crawlers
- 5.Google Search Central: Understand JavaScript SEO Basics
- 6.Google Search Central: Dynamic Rendering as a workaround
- 7.Google Search Central: Google's Guide to Optimizing for Generative AI Features on Google Search
- 8.Chrome for Developers: Disable JavaScript (Chrome DevTools)
- 9.Lovable Documentation: Optimize your app for SEO and AI search
- 10.Cloudflare: Cloudflare Just Changed How AI Crawlers Scrape the Internet-at-Large (persbericht, 1 juli 2025)
- 11.Cloudflare Blog: Your site, your rules: new AI traffic options for all customers (juli 2026)
gratis en vrijblijvend
Gratis LLM-scan
Ontdek wat ChatGPT, Gemini en Google AI over je bedrijf weten, en wat ze missen.
Vraag het gratis aan