Teknisk GEO
Hitta AI-botar i dina serverloggar (och kolla att de är äkta)
Din webbanalys ser inte AI-sökrobotar. Dina serverloggar gör det. Här är kommandon att kopiera, de officiella IP-listorna och en checklista för integritet.
Uppdaterad och faktagranskad 19 oktober 2026
Varför din webbanalys inte visar AI-botar
Verktyg som Google Analytics räknar besök med ett litet skript som körs i webbläsaren. En sökrobot som bara laddar ner din HTML kör aldrig skriptet och syns därför aldrig.
Din webbserver noterar varje förfrågan, från både människor och botar. Den noteringen är din åtkomstlogg.
Loggar svarar på tre frågor: vilka botar som kommer, vilka sidor de hämtar och om de får sidan eller ett fel.
Var du hittar dina loggar
- nginx: standardformatet ”combined” har redan allt du behöver. På Debian och Ubuntu ligger filen oftast i /var/log/nginx/access.log.
- Apache: använd också combined-formatet. Formatet ”common” saknar user agent, så det kan inte visa botar. Lägg till %{User-agent}i i ditt LogFormat.
- Bakom ett CDN eller en proxy? Då visar det första fältet kanske proxyns IP för varje förfrågan. Ställ först in serverns real IP-inställning (eller logga den vidarebefordrade klient-IP:n), annars misslyckas varje IP-kontroll nedan.
- Ingen tillgång till råa loggar? Titta i webbhotellets kontrollpanel, eller lägg ett CDN framför sajten. Mer om det nedan.
Läs en loggrad
Här är en rad i combined-formatet, med en påhittad IP-adress. Varje del svarar på en fråga.
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-adress: varifrån förfrågan kom. Den kontrollerar du mot de officiella listorna.
- Tid: när det hände.
- Förfrågan: metoden och sidan. Här GET /pricing.
- Statuskod: 200 betyder levererad, 301/302 omdirigerad, 403 blockerad, 404 hittades inte, 5xx ett serverfel.
- Byte: hur mycket som skickades tillbaka.
- User agent: vem besökaren påstår sig vara. Här GPTBot. Vem som helst kan skriva det, så ensamt bevisar det ingenting.
AI-botarna du ska leta efter
Listan kommer från varje företags egen dokumentation, kontrollerad den 19 oktober 2026.
| User agent | Företag | Vad den gör | Följer robots.txt | IP-lista |
|---|---|---|---|---|
OAI-SearchBot | OpenAI | Sökindex | Ja | OAI-SearchBot JSON (öppnas i en ny flik) |
GPTBot | OpenAI | Träning | Ja | GPTBot JSON (öppnas i en ny flik) |
ChatGPT-User | OpenAI | Användarförfrågan | Delvis | ChatGPT-User JSON (öppnas i en ny flik) |
Claude-SearchBot | Anthropic | Sökindex | Ja | Claude-SearchBot JSON (öppnas i en ny flik) |
ClaudeBot | Anthropic | Träning | Ja | ClaudeBot JSON (öppnas i en ny flik) |
Claude-User | Anthropic | Användarförfrågan | Ja | Claude-User JSON (öppnas i en ny flik) |
PerplexityBot | Perplexity | Sökindex | Ja | PerplexityBot JSON (öppnas i en ny flik) |
Perplexity-User | Perplexity | Användarförfrågan | Nej | Perplexity-User JSON (öppnas i en ny flik) |
Googlebot | Sökmotor | Ja | Googlebot JSON (öppnas i en ny flik) | |
Google-Agent | Användarförfrågan | Nej | Google-Agent JSON (öppnas i en ny flik)Google-Agent JSON (öppnas i en ny flik)Google-Agent JSON (öppnas i en ny flik) | |
bingbot | Microsoft | Sökmotor | Ja | bingbot JSON (öppnas i en ny flik) |
Applebot | Apple | Sökmotor | Ja | Applebot JSON (öppnas i en ny flik) |
meta-externalagent | Meta | Träning | Ja | Inte publicerad |
meta-webindexer | Meta | Sökindex | Ja | Inte publicerad |
meta-externalfetcher | Meta | Användarförfrågan | Delvis | Inte publicerad |
Amazonbot | Amazon | Träning | Ja | Inte publicerad |
Amzn-SearchBot | Amazon | Sökindex | Ja | Inte publicerad |
Amzn-User | Amazon | Användarförfrågan | Delvis | Inte publicerad |
DuckAssistBot | DuckDuckGo | Sökindex | Ja | DuckAssistBot JSON (öppnas i en ny flik) |
MistralAI-User | Mistral AI | Användarförfrågan | Ja | Inte publicerad |
MistralAI-Index | Mistral AI | Sökindex | Inte angivet | Inte publicerad |
MistralAI-Training | Mistral AI | Träning | Ja | Inte publicerad |
CCBot | Common Crawl | Träning | Ja | CCBot JSON (öppnas i en ny flik) |
Google-Extended och Applebot-Extended är robots.txt-token, inte sökrobotar. De syns aldrig i en logg.
Anthropic publicerar inga fullständiga user agent-strängar. I loggar ser de ut så här: ”compatible; Claude-User/1.0; +claudebot@anthropic.com”.
Kommandon att kopiera
De fungerar på en logg i combined-format. Vi testade dem den 19 oktober 2026 med grep och awk på macOS. Byt ut access.log mot din egen fil.
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 -rnawk -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 -cgrep 'OAI-SearchBot' access.log | awk '{print $7}' | sort | uniq -c | sort -rn | headawk -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.logzgrep -c 'GPTBot' /var/log/nginx/access.log.*.gzKontrollera varje bot-IP med Python
Skriptet laddar ner de officiella IP-listorna och skriver VERIFIED eller NOT IN LIST för varje botrad. Det använder bara Pythons standardbibliotek.
# 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)Är det verkligen GPTBot? Kontrollera IP:n
En user agent är bara text. Vem som helst kan skicka ”GPTBot”. Perplexity rekommenderar själv att kombinera user agent med IP-kontroll.
Sätt 1: de officiella IP-listorna
OpenAI, Anthropic, Perplexity, Google, Microsoft (Bing), Apple, DuckDuckGo och Common Crawl publicerar JSON-listor över de IP-intervall deras botar använder. Finns IP:n på listan kom förfrågan från företagets nätverk. Länkarna finns i tabellen ovan.
Sätt 2: omvänd DNS
Google: slå upp IP:ns värdnamn. Det måste sluta på googlebot.com, google.com eller googleusercontent.com, och en uppslagning av namnet måste ge samma IP tillbaka. Bing fungerar likadant, med namn som slutar på search.msn.com.
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 GooglebotVad siffrorna berättar
- Träning, sökning och användarförfrågningar är olika saker. GPTBot och ClaudeBot samlar träningsdata. OAI-SearchBot, Claude-SearchBot och PerplexityBot bygger sökindex. ChatGPT-User, Claude-User och Perplexity-User hämtar en sida för att någon frågar om den just nu.
- Många 403- eller 5xx-svar betyder att du blockerar eller förstör AI-åtkomsten. Kontrollera brandväggen, CDN:ets botinställningar och din robots.txt.
- Förfrågningar efter robots.txt och llms.txt visar vilka botar som läser dina regler. OpenAI säger att OAI-SearchBot och GPTBot kan lägga till en robots.txt-markering i sin user agent när de hämtar filen.
- Användarförfrågningar kan hoppa över robots.txt. Enligt OpenAI gäller robots.txt-regler kanske inte för ChatGPT-User, och enligt Perplexity ignorerar Perplexity-User dem oftast.
- Ett besök är inte ett citat. Det betyder att en bot läste din sida, inte att något AI-svar kommer att citera den.
Ingen serveråtkomst? Använd ditt CDN
Cloudflares AI Crawl Control (tidigare AI Audit) visar vilka AI-tjänster som genomsöker din sajt och vilka sökrobotar som ignorerar dina regler. Enligt Cloudflare finns det i alla abonnemang.
Cloudflare Logpush kan exportera förfrågningsloggar med fält som ClientIP, ClientRequestUserAgent, ClientRequestPath och EdgeResponseStatus. Vår analysator läser också de JSON-raderna.
Loggar och integritet (GDPR)
IP-adresser kan vara personuppgifter. EU-domstolen slog fast det för dynamiska IP-adresser i Breyer-målet (C-582/14, 19 oktober 2016), och skäl 30 i GDPR nämner IP-adresser som nätidentifierare.
Botarnas IP-adresser tillhör företag, men samma logg innehåller också dina besökares IP-adresser. Ett praktiskt sätt:
- Filtrera fram botraderna först och arbeta med dem.
- Spara råa loggar bara så länge du behöver dem, till exempel för säkerhet. GDPR anger inget fast antal dagar; personuppgifter får inte sparas längre än nödvändigt.
- Spara summor (bot, dag, sida, status, verifierad eller inte) i stället för IP-adresser.
- Korta eller hasha en IP-adress när du har kontrollerat den.
- Ladda inte upp råa loggar till ett externt verktyg utan ett personuppgiftsbiträdesavtal. Vår analysator körs i din webbläsare, så inget laddas upp.
Det här är allmän information, inte juridisk rådgivning.
Vanliga frågor
Hur ser jag om ChatGPT besöker min sajt?
Sök i din åtkomstlogg efter OAI-SearchBot (ChatGPT-sök), ChatGPT-User (en användares förfrågan) och GPTBot (träning). Kontrollera sedan IP-adresserna mot OpenAIs listor.
Varför visar inte Google Analytics GPTBot?
Google Analytics räknar besök via ett skript i webbläsaren. Sökrobotar som bara laddar ner din HTML kör det inte.
Hur vet jag om en GPTBot-förfrågan är äkta?
Kontrollera IP:n mot openai.com/gptbot.json. Finns den inte på listan, behandla förfrågan som overifierad.
Vilka botar ignorerar robots.txt?
Enligt deras egen dokumentation: botar som hämtar en sida för att en användare bad om det. OpenAI säger att robots.txt kanske inte gäller för ChatGPT-User, Perplexity säger att Perplexity-User oftast ignorerar den, och Google säger samma sak om sina användarstartade hämtare.
Vad betyder 403-fel för AI-botar?
Din server, brandvägg eller ditt CDN nekade förfrågan. Vill du synas i AI-sök, hitta regeln som blockerar boten och ändra den.
Får jag logga IP-adresser?
Oftast ja, för ett tydligt syfte som säkerhet, men IP-adresser kan vara personuppgifter. Spara loggar kort tid, lagra summor i stället för IP-adresser och nämn loggningen i din integritetspolicy. Det här är inte juridisk rådgivning.
Lär dig mer
Se till att botarna hittar något värt att läsa
Genomsökt är inte citerat. Se hur AI-verktyg läser din sida, på 22 punkter.
Analysera min sida