AI crawler logs lezen: ChatGPTBot, ClaudeBot en PerplexityBot
Welke AI-bots je server echt bezoeken, hoe je ze verifieert via gepubliceerde IP-ranges en wat crawler logs je vertellen over citaties.
In je access log staat een regel als deze:
"GET /gids/prijzen HTTP/1.1" 200 "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; ChatGPT-User/1.0; +https://openai.com/bot"
Dat is geen anonieme bot die je index leegtrekt. Dat is iemand die op dat moment een gesprek voerde met ChatGPT, waarna ChatGPT jouw prijzenpagina ophaalde om het antwoord te maken. Van alle signalen die je in GEO hebt, is dit het meest directe. En hij staat gewoon in je logs, alleen kijkt bijna niemand ernaar.
Welke user agents je tegenkomt
De grote aanbieders zetten meerdere bots in met verschillende taken. Dat onderscheid is het halve werk, want ze betekenen niet hetzelfde.
OpenAI documenteert er vier. GPTBot verzamelt content die gebruikt kan worden voor het trainen van de modellen. OAI-SearchBot is de crawler achter de zoekfunctie in ChatGPT: blokkeer je die, dan verschijn je niet in de zoekantwoorden. ChatGPT-User is de fetch die door een gebruiker wordt getriggerd tijdens een gesprek, en omdat een mens die actie start, gelden robots.txt-regels daar volgens OpenAI mogelijk niet voor. OAI-AdsBot bezoekt alleen landingspagina's die als advertentie zijn ingediend.
Anthropic gebruikt er drie. ClaudeBot verzamelt content voor modeltraining, Claude-SearchBot indexeert voor de kwaliteit van zoekresultaten, en Claude-User haalt een pagina op als een gebruiker daarom vraagt. Anthropic ondersteunt daarnaast de niet-standaard Crawl-delay in robots.txt.
Perplexity heeft er twee. PerplexityBot zorgt dat je site kan opduiken in de zoekresultaten van Perplexity en wordt volgens hun documentatie niet gebruikt voor het trainen van foundation models. Perplexity-User is de door de gebruiker gestarte fetch, en Perplexity vermeldt expliciet dat die fetcher robots.txt doorgaans negeert.
Bij Google werkt het anders. Google-Extended is geen crawler die je in je logs ziet, maar een robots.txt-token waarmee je aangeeft of je content gebruikt mag worden voor bepaalde Gemini-toepassingen. Voor AI Overviews loopt de crawl via de gewone Googlebot-infrastructuur, dus je kunt jezelf daar niet selectief uit blokkeren zonder ook je gewone vindbaarheid te raken. GoogleOther zie je daarnaast langskomen voor allerlei interne toepassingen.
Verifieer, want een user agent is een tekstveld
Iedereen kan PerplexityBot in een header zetten. Als je rapportage draait op user agent alleen, tel je scrapers mee als AI-verkeer. Alle drie de aanbieders publiceren daarom hun IP-ranges als JSON: OpenAI op openai.com/searchbot.json, openai.com/gptbot.json en openai.com/chatgpt-user.json, Perplexity op perplexity.com/perplexitybot.json en perplexity.com/perplexity-user.json, en Anthropic publiceert een vergelijkbare lijst. Match op user agent én IP, en ververs die lijsten periodiek.
Waar de logs vandaan komen, en waar ze sneuvelen
Origin-logs zijn onvolledig zodra je een CDN gebruikt: alles wat uit cache wordt geserveerd, bereikt je server nooit. Je hebt dus de logs van je edge nodig, dus Cloudflare, Fastly, CloudFront, Vercel, Netlify, Akamai of Google Cloud CDN.
Drie dingen gaan daar in de praktijk mis. Je WAF of bot-bescherming blokkeert de crawlers stilletjes, waardoor je een muur van 403's serveert aan precies de bots waarvan je gevonden wilt worden. Je logretentie is korter dan je analysehorizon, waardoor je nooit een trend van een kwartaal kunt bekijken. En je logs zijn gesampled, waardoor lage crawlvolumes op losse templates helemaal verdwijnen.
Wat je eruit haalt
Kijk eerst welke templates wél en niet worden opgehaald. Als je vergelijkingspagina's dagelijks worden bezocht en je documentatie nooit, weet je waar de content-inspanning heen moet. Kijk daarna naar statuscodes per bot: 404's, 5xx en redirectketens vreten crawl en leveren niets op. Meet vervolgens de tijd tussen publiceren en de eerste fetch, per engine. En leg tot slot de crawl naast de citaties, want dat is de enige manier om te zien of een bezoek van een bot ook echt tot een vermelding leidt.
Waar je dit praktisch doet
Dit is precies wat Agent Analytics in Promptwatch doet: realtime crawler logs van onder meer ChatGPTBot, ClaudeBot, PerplexityBot, GoogleOther en de Meta AI crawler, met error tracking en een crawl-naar-citatie-pad, gevoed via kant-en-klare koppelingen met Cloudflare, AWS CloudFront, Fastly, Vercel, Netlify, Akamai, Google Cloud CDN of een eigen HTTP-endpoint. Promptwatch was de eerste in de categorie met crawler log-tracking, en volgens de oprichters kwamen de meeste concurrenten daar pas ongeveer een jaar later mee. Crawler-loglimieten beginnen bij het Professional-plan (245 $/maand, 25 mln crawler logs) en bij bureaus al vanaf Kick-off (199 $/maand, 10 mln crawler logs).
Kijk je naar alternatieven, weeg dan mee wat er ontbreekt. AthenaHQ heeft een sterke optimalisatieworkflow, maar geen crawler-analyse. Scrunch AI pakt de crawlerkant juist van de andere kant aan door AI-geoptimaliseerde pagina's aan crawlers voor te schotelen, wat nuttig kan zijn, maar iets anders is dan je eigen logs lezen.
Begin klein. Zet de edge-logs aan, filter op de user agents hierboven, verifieer op IP en kijk een week mee. De eerste 403 die je vindt, verdient je aandacht meer dan welk dashboard dan ook.