AI Ranking Tools
Alle artikelen
Door De redactiecrawler logstechniek

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. De regel bewijst dat een menselijke vraag jouw URL bereikte, niet alleen dat de bot bestaat. Dat verschil is waar de hele categorie crawler-analyse om draait. De reden dat het er staat, is dat een mens een vraag stelde en het model jouw pagina nodig had om te antwoorden. Dat is een meetbaar, dated spoor, geen model-output dat je achteraf moet interpreteren.

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. Een blok op de ene bot kost je zichtbaarheid in de ene surface, een blok op de andere bot doet niets op de korte termijn en raakt later je trainingsopties. Lees de naam dus voordat je een regel schrijft.

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. Vier namen, vier doelen, en alleen de tweede is degene die je in de antwoorden van ChatGPT wil houden.

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, wat betekent dat je een aparte snelheidsknop hebt voor hun crawlers buiten de gebruikelijke regels om.

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. Dat laatste punt is belangrijk: een robots.txt-regel die Perplexity-User zou moeten tegenhouden, doet dat in de praktijk niet.

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. Wie Google uit een Gemini-set wil houden, pakt Google-Extended. Wie AI Overviews wil blijven scoren, laat Googlebot gewoon draaien.

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. Een bot die gisteren bij Anthropic hoorde, kan vandaag in een ander blok zitten.

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. Wie alleen de origin-log leest, ziet alleen de misses, en dat is een scheef beeld van wat de bots echt doen.

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. De eerste is het gevaarlijkst, want een stille 403 voelt als "geen activiteit" terwijl het "geen toegang" is.

Wat je eruit haalt

Kijk eerst welke templates wel 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. Een bot die haalt zonder dat er een citatie volgt, is een signaal over je pagina, niet over de bot.

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. De eerste vertelt je wat je moet veranderen. De tweede verandert wat de crawler ziet. Je eigen logs lezen is nog steeds de enige manier om te weten of een bezoek er echt was.

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.