GEO-Score
DienstenOver onsLerenLeaderboardRapportenPrijzenBlog

GEO-Score

De beste GEO-analysetool

Test je content voor AI-zoekmachines zoals ChatGPT, Perplexity en Claude. Krijg concrete inzichten om je zichtbaarheid te verbeteren.

Ontvang GEO-contenttips

Resources

  • Knowledge Base
  • Wat is GEO?
  • GEO-blog
  • GEO Score Checker
  • Leaderboard
  • AI-glossary
  • Case studies
  • GEO Insights
  • Rapporten

GEO-tools

  • Complete Website GEO Audit
  • GEO-analyse
  • AI Visibility Checker
  • ROI Calculator
  • Schema Validator
  • Perplexity SEO-checker
  • ChatGPT SEO-checker
  • Google AI-modus-checker
  • AI Crawler Checker
  • Agent-readiness checker
  • llms.txt Generator
  • Query fan-out tool
  • AI Bot Log Analyzer
  • Concurrentievergelijking
  • Professionele diensten
  • Alle tools

Analyseer je

  • Blogposts
  • Productpagina's
  • Landingspagina's
  • Homepagina's
  • Servicepagina's

GEO-Score

  • Over ons
  • Privacybeleid
  • Algemene voorwaarden
  • Contact
  • White Label
  • Build Your Success

Volg GEO-Score

AI-zoekgidsen

AI Search OptimizationPerplexity SEOChatGPT SEOLLM SEOAI Visibility CheckerAI-vindbaarheid van Nederlandse websitesVindbaar in ChatGPTGEO-optimalisatieAlle gidsen →
AVG-conformData gehost in EUGemaakt in Nederland
KVK: 61855111BTW: NL004509498B76© 2026 GEO-score.onlineGEO-Score is onderdeel van Be-Found.
Versterk je blogging met Bloffee
  1. Home
  2. Gidsen
  3. AI-bots in logs

Technische GEO

Vind AI-bots in je serverlogs (en check of ze echt zijn)

Je analytics ziet AI-crawlers niet. Je serverlogs wel. Hier vind je commando's om te kopiëren, de officiële IP-lijsten en een privacychecklist.

Bijgewerkt en gecontroleerd op 19 oktober 2026

Liever geen command line?

Plak je log in onze gratis AI Bot Log Analyzer. Hij draait in je browser, dus je log wordt nooit geüpload.

Open de AI Bot Log Analyzer

Waarom je analytics geen AI-bots laat zien

Tools als Google Analytics tellen bezoeken met een klein script dat in de browser draait. Een crawler die alleen je HTML downloadt, voert dat script nooit uit en verschijnt dus nooit.

Je webserver noteert elk verzoek, van mensen en bots. Dat overzicht is je accesslog.

Logs beantwoorden drie vragen: welke bots komen langs, welke pagina's halen ze op, en krijgen ze de pagina of een foutmelding.

Waar je je logs vindt

  • nginx: het standaardformaat “combined” bevat alles wat je nodig hebt. Op Debian en Ubuntu staat het bestand meestal in /var/log/nginx/access.log.
  • Apache: gebruik ook het combined-formaat. Het “common”-formaat heeft geen user agent, dus daarmee zie je geen bots. Voeg %{User-agent}i toe aan je LogFormat.
  • Zit je achter een CDN of proxy? Dan toont het eerste veld misschien bij elk verzoek het IP van je proxy. Stel eerst de real-IP-instelling van je server in (of log het doorgestuurde IP van de bezoeker), anders mislukt elke IP-check hieronder.
  • Geen toegang tot ruwe logs? Kijk in het dashboard van je hoster, of zet een CDN voor je site. Daarover verderop meer.

Bronnen

  • Documentatie nginx-logmodule (opent in een nieuw tabblad)
  • Documentatie Apache-logbestanden (opent in een nieuw tabblad)

Lees één logregel

Hier is één regel in het combined-formaat, met een verzonnen IP-adres. Elk deel beantwoordt een vraag.

Voorbeeld van een logregel (combined-formaat)
203.0.113.7 - - [19/Oct/2026:08:01:02 +0000] "GET /pricing HTTP/1.1" 200 5123 "-" "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; GPTBot/1.4; +https://openai.com/gptbot"
  • IP-adres: waar het verzoek vandaan kwam. Dit check je straks tegen de officiële lijsten.
  • Tijd: wanneer het gebeurde.
  • Verzoek: de methode en de pagina. Hier GET /pricing.
  • Statuscode: 200 betekent geleverd, 301/302 doorgestuurd, 403 geblokkeerd, 404 niet gevonden, 5xx een serverfout.
  • Bytes: hoeveel er is teruggestuurd.
  • User agent: wie de bezoeker zegt te zijn. Hier GPTBot. Iedereen kan dit intypen, dus op zich bewijst het niets.

De AI-bots om naar te zoeken

Deze lijst komt uit de eigen documentatie van elk bedrijf, gecontroleerd op 19 oktober 2026.

AI-crawlers en -fetchers, met hun officiële IP-lijsten
User agentBedrijfWat hij doetVolgt robots.txtIP-lijst
OAI-SearchBotOpenAIZoekindexJaOAI-SearchBot JSON (opent in een nieuw tabblad)
GPTBotOpenAITrainingJaGPTBot JSON (opent in een nieuw tabblad)
ChatGPT-UserOpenAIVerzoek van gebruikerDeelsChatGPT-User JSON (opent in een nieuw tabblad)
Claude-SearchBotAnthropicZoekindexJaClaude-SearchBot JSON (opent in een nieuw tabblad)
ClaudeBotAnthropicTrainingJaClaudeBot JSON (opent in een nieuw tabblad)
Claude-UserAnthropicVerzoek van gebruikerJaClaude-User JSON (opent in een nieuw tabblad)
PerplexityBotPerplexityZoekindexJaPerplexityBot JSON (opent in een nieuw tabblad)
Perplexity-UserPerplexityVerzoek van gebruikerNeePerplexity-User JSON (opent in een nieuw tabblad)
GooglebotGoogleZoekmachineJaGooglebot JSON (opent in een nieuw tabblad)
Google-AgentGoogleVerzoek van gebruikerNeeGoogle-Agent JSON (opent in een nieuw tabblad)Google-Agent JSON (opent in een nieuw tabblad)Google-Agent JSON (opent in een nieuw tabblad)
bingbotMicrosoftZoekmachineJabingbot JSON (opent in een nieuw tabblad)
ApplebotAppleZoekmachineJaApplebot JSON (opent in een nieuw tabblad)
meta-externalagentMetaTrainingJaNiet gepubliceerd
meta-webindexerMetaZoekindexJaNiet gepubliceerd
meta-externalfetcherMetaVerzoek van gebruikerDeelsNiet gepubliceerd
AmazonbotAmazonTrainingJaNiet gepubliceerd
Amzn-SearchBotAmazonZoekindexJaNiet gepubliceerd
Amzn-UserAmazonVerzoek van gebruikerDeelsNiet gepubliceerd
DuckAssistBotDuckDuckGoZoekindexJaDuckAssistBot JSON (opent in een nieuw tabblad)
MistralAI-UserMistral AIVerzoek van gebruikerJaNiet gepubliceerd
MistralAI-IndexMistral AIZoekindexNiet vermeldNiet gepubliceerd
MistralAI-TrainingMistral AITrainingJaNiet gepubliceerd
CCBotCommon CrawlTrainingJaCCBot JSON (opent in een nieuw tabblad)

Google-Extended en Applebot-Extended zijn robots.txt-tokens, geen crawlers. Ze verschijnen nooit in een log.

Anthropic publiceert geen volledige user-agentstrings. In logs zien ze eruit als “compatible; Claude-User/1.0; +claudebot@anthropic.com”.

Commando's om te kopiëren

Deze werken op een log in het combined-formaat. We testten ze op 19 oktober 2026 met grep en awk op macOS. Vervang access.log door je eigen bestand.

Tel verzoeken per AI-bot
grep -oE 'GPTBot|OAI-SearchBot|ChatGPT-User|ClaudeBot|Claude-User|Claude-SearchBot|PerplexityBot|Perplexity-User|meta-externalagent|Amazonbot|Applebot|DuckAssistBot|MistralAI-User|CCBot' access.log | sort | uniq -c | sort -rn
Statuscodes per bot
awk -F'"' '{ split($3,a," "); if (match($6,/GPTBot|OAI-SearchBot|ChatGPT-User|ClaudeBot|Claude-User|Claude-SearchBot|PerplexityBot|Perplexity-User/)) print substr($6,RSTART,RLENGTH), a[1] }' access.log | sort | uniq -c
Toppagina's voor één bot
grep 'OAI-SearchBot' access.log | awk '{print $7}' | sort | uniq -c | sort -rn | head
Alleen fouten (4xx en 5xx) voor AI-bots
awk -F'"' '$6 ~ /GPTBot|OAI-SearchBot|ChatGPT-User|ClaudeBot|Claude-User|Claude-SearchBot|PerplexityBot|Perplexity-User/ { split($3,a," "); if (a[1] >= 400) print a[1], $2 }' access.log
Zoek in oudere, gezipte logs
zgrep -c 'GPTBot' /var/log/nginx/access.log.*.gz

Check elk bot-IP met Python

Dit script downloadt de officiële IP-lijsten en print per botregel VERIFIED of NOT IN LIST. Het gebruikt alleen de standaardbibliotheek van Python.

verify_bots.py
# Usage: python3 verify_bots.py access.log
import ipaddress, json, re, sys, urllib.request

LISTS = {
    "GPTBot": "https://openai.com/gptbot.json",
    "OAI-SearchBot": "https://openai.com/searchbot.json",
    "ChatGPT-User": "https://openai.com/chatgpt-user.json",
    "ClaudeBot": "https://claude.com/crawling/bots.json",
    "Claude-User": "https://claude.com/crawling/bots.json",
    "Claude-SearchBot": "https://claude.com/crawling/bots.json",
    "PerplexityBot": "https://www.perplexity.com/perplexitybot.json",
    "Perplexity-User": "https://www.perplexity.com/perplexity-user.json",
    "Googlebot": "https://developers.google.com/static/crawling/ipranges/common-crawlers.json",
    "bingbot": "https://www.bing.com/toolbox/bingbot.json",
}
cache = {}

def networks(url):
    if url not in cache:
        req = urllib.request.Request(url, headers={"User-Agent": "log-check/1.0"})
        data = json.load(urllib.request.urlopen(req, timeout=20))
        cache[url] = [ipaddress.ip_network(p.get("ipv4Prefix") or p.get("ipv6Prefix"))
                      for p in data["prefixes"]]
    return cache[url]

bot = re.compile("|".join(sorted(map(re.escape, LISTS), key=len, reverse=True)))
for line in open(sys.argv[1], errors="replace"):
    ua = line.split('"')[5] if line.count('"') >= 6 else line
    match = bot.search(ua)
    if not match:
        continue
    try:
        ip = ipaddress.ip_address(line.split()[0])
    except ValueError:
        continue
    ok = any(ip in net for net in networks(LISTS[match.group(0)]))
    print("VERIFIED   " if ok else "NOT IN LIST", match.group(0), ip)

Is het echt GPTBot? Check het IP

Een user agent is gewoon tekst. Iedereen kan “GPTBot” meesturen. Perplexity raadt zelf aan om user agent en IP-controle te combineren.

Manier 1: de officiële IP-lijsten

OpenAI, Anthropic, Perplexity, Google, Microsoft (Bing), Apple, DuckDuckGo en Common Crawl publiceren JSON-lijsten met de IP-reeksen van hun bots. Staat het IP in de lijst, dan kwam het verzoek van het netwerk van dat bedrijf. De links staan in de tabel hierboven.

Manier 2: reverse DNS

Google: zoek de hostnaam bij het IP op. Die moet eindigen op googlebot.com, google.com of googleusercontent.com, en als je die naam opzoekt, moet je hetzelfde IP terugkrijgen. Bij Bing werkt het net zo, met namen die eindigen op search.msn.com.

Reverse-DNS-check voor Googlebot
host 66.249.66.1
# 1.66.249.66.in-addr.arpa domain name pointer crawl-66-249-66-1.googlebot.com.
host crawl-66-249-66-1.googlebot.com
# crawl-66-249-66-1.googlebot.com has address 66.249.66.1  ← same IP: real Googlebot

“Niet in de lijst” betekent niet altijd nep. Lijsten veranderen, en het JSON-bestand van Bing is voor het laatst gemaakt in januari 2024. Zie het als “checken”, niet als bewijs.

Anthropic waarschuwt dat blokkeren op IP niet altijd goed werkt en geen blijvende opt-out garandeert. Gebruik robots.txt om je af te melden.

Bronnen

  • Google: Googlebot verifiëren (opent in een nieuw tabblad)
  • Bing: bingbot verifiëren (opent in een nieuw tabblad)
  • Perplexity: bots (opent in een nieuw tabblad)

Wat de cijfers je vertellen

  • Training, zoeken en verzoeken van gebruikers zijn verschillend. GPTBot en ClaudeBot verzamelen trainingsdata. OAI-SearchBot, Claude-SearchBot en PerplexityBot bouwen zoekindexen. ChatGPT-User, Claude-User en Perplexity-User halen een pagina op omdat iemand er nu naar vraagt.
  • Veel 403- of 5xx-antwoorden betekenen dat je AI-toegang blokkeert of breekt. Check je firewall, de botinstellingen van je CDN en je robots.txt.
  • Verzoeken naar robots.txt en llms.txt laten zien welke bots je regels lezen. OpenAI zegt dat OAI-SearchBot en GPTBot een robots.txt-markering aan hun user agent kunnen toevoegen als ze dat bestand ophalen.
  • Verzoeken van gebruikers kunnen robots.txt overslaan. Volgens OpenAI gelden robots.txt-regels mogelijk niet voor ChatGPT-User, en volgens Perplexity negeert Perplexity-User ze meestal.
  • Een bezoek is geen citaat. Het betekent dat een bot je pagina las, niet dat een AI-antwoord hem zal citeren.
  • Stel robots.txt in voor AI-crawlers
  • Zo laat je je pagina's citeren door AI

Geen servertoegang? Gebruik je CDN

AI Crawl Control van Cloudflare (voorheen AI Audit) laat zien welke AI-diensten je site crawlen en welke crawlers je regels negeren. Volgens Cloudflare zit het in alle abonnementen.

Cloudflare Logpush kan verzoeklogs exporteren met velden als ClientIP, ClientRequestUserAgent, ClientRequestPath en EdgeResponseStatus. Onze analyzer leest die JSON-regels ook.

Bronnen

  • Cloudflare AI Crawl Control (opent in een nieuw tabblad)
  • Velden van Cloudflare Logpush (opent in een nieuw tabblad)

Logs en privacy (AVG)

IP-adressen kunnen persoonsgegevens zijn. Het Hof van Justitie van de EU zei dat over dynamische IP-adressen in de zaak-Breyer (C-582/14, 19 oktober 2016), en overweging 30 van de AVG noemt IP-adressen als online identificatoren.

Bot-IP's horen bij bedrijven, maar in hetzelfde log staan ook de IP's van je bezoekers. Een praktische aanpak:

  • Filter eerst de botregels eruit, en werk daarmee.
  • Bewaar ruwe logs alleen zo lang als nodig, bijvoorbeeld voor beveiliging. De AVG noemt geen vast aantal dagen; persoonsgegevens mag je niet langer bewaren dan nodig.
  • Bewaar totalen (bot, dag, pagina, status, wel of niet geverifieerd) in plaats van IP's.
  • Kort een IP in of hash het zodra je het hebt gecheckt.
  • Upload ruwe logs niet naar een externe tool zonder verwerkersovereenkomst. Onze analyzer draait in je browser, dus er wordt niets geüpload.

Dit is algemene informatie, geen juridisch advies.

Bronnen

  • HvJ EU, zaak C-582/14 (Breyer) (opent in een nieuw tabblad)
  • AVG overweging 30 (opent in een nieuw tabblad)

Veelgestelde vragen

Hoe zie ik of ChatGPT mijn site bezoekt?

Zoek in je accesslog naar OAI-SearchBot (ChatGPT search), ChatGPT-User (verzoek van een gebruiker) en GPTBot (training). Check daarna de IP's tegen de lijsten van OpenAI.

Waarom toont Google Analytics GPTBot niet?

Google Analytics telt bezoeken via een script in de browser. Crawlers die alleen je HTML downloaden, voeren dat niet uit.

Hoe weet ik of een GPTBot-verzoek echt is?

Check het IP tegen openai.com/gptbot.json. Staat het er niet in, behandel het verzoek dan als niet geverifieerd.

Welke bots negeren robots.txt?

Volgens hun eigen documentatie: bots die een pagina ophalen omdat een gebruiker erom vroeg. OpenAI zegt dat robots.txt mogelijk niet geldt voor ChatGPT-User, Perplexity zegt dat Perplexity-User het meestal negeert, en Google zegt hetzelfde over zijn door gebruikers gestarte fetchers.

Wat betekenen 403-fouten voor AI-bots?

Je server, firewall of CDN weigerde het verzoek. Wil je gevonden worden in AI-zoekmachines, zoek dan de regel die de bot blokkeert en pas hem aan.

Mag ik IP-adressen loggen?

Meestal wel, voor een duidelijk doel zoals beveiliging, maar IP's kunnen persoonsgegevens zijn. Bewaar logs kort, sla totalen op in plaats van IP's, en vermeld het loggen in je privacyverklaring. Dit is geen juridisch advies.

Verder leren

  • Gratis AI Bot Log Analyzer (draait in je browser)
  • Robots.txt instellen voor AI-crawlers
  • Naslag: user agents van AI-bots
  • De gids over llms.txt
  • Robots.txt-generator voor AI-bots
  • Volg bezoeken vanuit AI-tools

Zorg dat bots iets lezenswaardigs vinden

Gecrawld is niet geciteerd. Zie hoe AI-tools je pagina lezen, op 22 punten.

Analyseer mijn pagina