Přeskočit na obsah

Jak najít AI roboty v logu serveru a co z něj vyčíst

Praktický postup pro přístupový log: které AI roboty hledat, jak spočítat požadavky, URL a chyby a proč samotný user-agent není důkaz.

~1 300 slov 6 častých otázek ~7 minut čtení Aktualizováno: 22. 10. 2026
Jak najít AI roboty v logu serveru a co z něj vyčíst
Stručná odpověď

Analýza AI robotů v serverovém logu je rozdělení požadavků podle user-agentu, URL, stavového kódu a ověřené zdrojové IP. User-agent slouží jen jako první filtr. Skutečnou identitu posuzujte proti aktuálním rozsahům provozovatele a výsledky oddělujte podle účelu robota za zvolené období.

AI roboty najdete v přístupovém logu podle user-agentu, tedy jména, kterým se program hlásí. Samotné jméno ale nic nedokazuje. Použitelný výsledek vznikne až tehdy, když vedle něj máte původní IP adresu, požadovanou URL a stavový kód serveru.

Tento návod počítá s textovým logem podobným výchozímu formátu combined v Nginxu nebo Apache. Pokud máte vlastní formát, význam sloupců si nejdřív ověřte v konfiguraci. Přehled na CDN zachytí také požadavky, které její mezipaměť nepředala původnímu serveru. Než však provoz označíte za ověřený, zjistěte, zda váš tarif rozpoznává roboty jen podle user-agentu, nebo také podle ověřené identity.

Nejdřív si vezměte správný log — bez user-agentu nic nenajdete

Přístupový log, anglicky access log, zaznamenává požadavky, které webový server zpracoval. Chybový log je jiný soubor: hodí se při poruše aplikace, ale pro soupis robotů není výchozím podkladem.

Jeden řádek v běžném rozšířeném formátu obsahuje přibližně toto:

203.0.113.10 - - [22/Oct/2026:10:00:00 +0200] "GET /blog/clanek/ HTTP/1.1" 200 12000 "-" "... OAI-SearchBot/1.4 ..."

Potřebujete z něj pět údajů: čas, zdrojovou IP, požadovanou adresu, stavový kód a celý user-agent. Velikost odpovědi a doba zpracování se hodí při hledání náročných požadavků; skutečné náklady z nich ale bez dalších údajů nespočítáte. Ve výchozím logu navíc nemusí být obojí.

  1. Získejte celé období

    Pro první přehled stáhněte například 30 dní přístupových logů, včetně starších souborů vytvořených rotací logu a komprimovaných archivů. U málo navštěvovaného webu období prodlužte. Pro srovnání používejte stejně dlouhá a úplná období.

  2. Ověřte formát

    Na jednom řádku najděte IP, požadavek, stav a celý user-agent. Pokud něco chybí, požádejte správce o vhodnější export.

  3. Spojte soubory do pracovní kopie

    Komprimované části nejdřív rozbalte a spojte chronologicky do jednoho souboru, například access-30d.log. Původní logy neměňte.

  4. Pracujte s kopií

    Log může obsahovat IP adresy, parametry URL i text vložený do požadavku návštěvníkem nebo cizím programem. Nevkládejte celý soubor do veřejného nástroje a jeho obsah nespouštějte jako příkaz.

Hledejte jména robotů — ale nesčítejte různé účely

OpenAI, Anthropic a Perplexity používají různá jména pro automatické vyhledávání, procházení kvůli možnému použití při vývoji modelů a načtení stránky na pokyn člověka. V jednom součtu by se smíchaly tři odlišné situace.

ProvozovatelVyhledáváníMožné použití při vývoji modelůPožadavek vyvolaný uživatelem
OpenAIOAI-SearchBotGPTBotChatGPT-User
AnthropicClaude-SearchBotClaudeBotClaude-User
PerplexityPerplexityBot—Perplexity-User

Jména vyjadřují deklarovaný hlavní účel a samostatné řízení v robots.txt, ne jistotu následného použití každého stažení. OpenAI může při povolení OAI-SearchBotu i GPTBotu použít výsledek jednoho procházení pro oba účely. OAI-AdsBot, který kontroluje vstupní stránky reklam, do tohoto návodu nezařazujeme.

První pracovní výpis vytvoříte jednoduchým filtrem. Doplňte další jména jen tehdy, když víte, co označují:

awk -F'"' '
tolower($6) ~ /oai-searchbot|gptbot|chatgpt-user|claudebot|claude-searchbot|claude-user|perplexitybot|perplexity-user/ { print }
' access-30d.log > ai-roboti.log

Šesté pole oddělené uvozovkami je user-agent pouze v popsaném formátu podobném combined. U vlastního formátu upravte parser podle konfigurace. Příkaz tak nehledá jméno robota v URL ani v odkazující stránce a nevydává náhodnou shodu za návštěvu robota.

Prázdný výsledek neznamená, že žádný systém AI nezískává nebo nepoužívá obsah vašeho webu. Může znamenat, že robot v daném období nepřišel, že log nemá user-agent, že požadavek zastavila CDN, nebo že platforma mohla obsah získat jiným způsobem.

Na výpis se podívejte čtyřmi způsoby — podle robota, URL, stavu a IP

Samotný počet požadavků neřekne, jestli robot stahuje důležité články, prochází stále nové kombinace filtrů, nebo opakovaně žádá chybové adresy. Začněte čtyřmi pohledy.

1. Kolik požadavků připadá na jednotlivá jména

Následující příkaz počítá každý řádek jednou a sjednotí různé verze stejného user-agentu:

awk -F'"' '
{
  u=tolower($6); b=""
  if (u ~ /oai-searchbot/) b="OAI-SearchBot"
  else if (u ~ /chatgpt-user/) b="ChatGPT-User"
  else if (u ~ /gptbot/) b="GPTBot"
  else if (u ~ /claude-searchbot/) b="Claude-SearchBot"
  else if (u ~ /claude-user/) b="Claude-User"
  else if (u ~ /claudebot/) b="ClaudeBot"
  else if (u ~ /perplexity-user/) b="Perplexity-User"
  else if (u ~ /perplexitybot/) b="PerplexityBot"
  if (b != "") n[b]++
}
END { for (b in n) print n[b], b }
' ai-roboti.log | sort -nr

2. Které adresy robot žádá nejčastěji

awk -F'"' '{ split($2, r, " "); print r[2] }' ai-roboti.log \
  | sort | uniq -c | sort -nr | head -20

Všímejte si hlavně interního hledání, kalendářů, filtrování a opakujících se parametrů. Takových adres mohou vzniknout tisíce, přestože zobrazují stejný nebo téměř stejný obsah. Požadavky na články a produktové stránky, které považujete za důležité, naopak ukazují, že robot tyto části webu navštěvuje.

3. Jaké odpovědi server vrací

awk -F'"' '{
  x=$3
  sub(/^[[:space:]]+/, "", x)
  split(x, s, " ")
  print s[1]
}' ai-roboti.log | sort | uniq -c | sort -nr

Převažující 200 znamená úspěšnou odpověď, ne zařazení do výsledků ani citaci. Větší podíl 404 ukazuje na požadavky na adresy, které server nenašel. Prověřte staré odkazy, překlepy, změny směrování i vymyšlené URL. 429 a 503 znamenají omezení či nedostupnost; jejich význam posuzujte spolu s časem a zatížením serveru.

4. Z kolika IP provoz přichází

awk '{print $1}' ai-roboti.log | sort | uniq -c | sort -nr | head -20

Jedna adresa s velkou částí požadavků stojí za ověření. Více adres samo o sobě problém není: provozovatelé mohou požadavky obsluhovat z více sítí a datových center.

Ověřte identitu robota — user-agent je jen jmenovka

Kdokoli může do požadavku napsat GPTBot. Jméno proto použijte k výběru správného oficiálního seznamu IP, nikoli jako konečný důkaz.

OpenAI zveřejňuje samostatné soubory pro OAI-SearchBot, GPTBot a ChatGPT-User. Anthropic odkazuje na společný seznam svých robotů a Perplexity na samostatné seznamy v dokumentaci svých robotů.

Pro rychlou kontrolu jedné adresy lze použít Python. Nahraďte ukázkovou IP a adresu souboru podle jména z logu:

python3 - 203.0.113.10 https://openai.com/searchbot.json <<'PY'
import ipaddress
import json
import sys
import urllib.request

ip = ipaddress.ip_address(sys.argv[1])
with urllib.request.urlopen(sys.argv[2], timeout=10) as response:
    data = json.load(response)

networks = []
for item in data["prefixes"]:
    cidr = item.get("ipv4Prefix") or item.get("ipv6Prefix")
    if cidr:
        networks.append(ipaddress.ip_network(cidr))

print("ANO" if any(ip in network for network in networks) else "NE")
PY

Výsledek ANO potvrzuje, že adresa patří do právě zveřejněného rozsahu provozovatele. Neověřuje konkrétního uživatele. U starého logu navíc může NE znamenat, že se seznam od návštěvy změnil. Označte jej proto jako „dnes neověřeno“, ne automaticky jako podvrh. Chcete-li získat počet ověřených požadavků, proveďte tuto kontrolu pro každou jedinečnou dvojici jména a IP a další přehledy počítejte jen z vyhovujících řádků. U Googlu je k dispozici také dvoukrokové ověření přes reverzní a dopředný DNS.

Rozdíl mezi ověřením a blokováním podrobněji vysvětluje návod jak ověřit AI robota.

Čísla čtěte v kontextu — log ukazuje požadavky, ne přínos

Z logu zjistíte, kdo si co vyžádal a jak server odpověděl. Nezjistíte z něj, zda stránku platforma zařadila do vyhledávání, použila v odpovědi nebo poslala návštěvníka.

Poměr procházení k návštěvám proto skládejte ze dvou zdrojů:

  1. čitatel: požadavky automatického robota, jejichž IP jste ověřili proti správnému seznamu pro dané jméno,
  2. jmenovatel: návštěvy lidí z téže platformy v analytice za stejné období.

Nesčítejte do čitatele automatický OAI-SearchBot a uživatelský ChatGPT-User. Stejně oddělte PerplexityBot od Perplexity-User. Do přehledu výsledků uveďte období, přesná označení robotů a způsob ověření; bez toho se číslo nedá později zopakovat.

Vyhněte se rychlým závěrům — čtyři chyby zkreslí výsledek

01

Počítat jen jméno v user-agentu

Podvržený robot se do součtu dostane stejně jako pravý. U rozhodnutí o blokaci nebo kapacitě ověřujte také IP.

02

Analyzovat jen aktuální access.log

Otočené soubory mohou obsahovat většinu období. Bez nich porovnáváte různě dlouhé výřezy.

03

Brát 200 jako důkaz citace

Stav říká pouze to, že server požadavek úspěšně obsloužil. O dalším použití obsahu nic nedokazuje.

04

Míchat vyhledávání, trénink a uživatele

Tři účely mají jinou hodnotu i pravidla. Jediný součet označený jako „provoz AI“ zakryje rozdíly, podle kterých se potřebujete rozhodovat.

První výstup má být jednoduchá tabulka: robot, požadavky nalezené podle user-agentu, počet dnes ověřených požadavků, nejčastější URL, podíl chyb a období. U každého čísla uveďte způsob ověření. Teprve z ní rozhodujte, jestli upravit odkazy, robots.txt, cache nebo kapacitu. Bez tohoto mezikroku byste řešili jméno robota, ale ne jeho skutečné chování na vašem webu.


AI SEO Wireframe Pack obsahuje šablony pro sedm typů stránek, textové vzory a návod na nasazení. Stojí 1 490 Kč včetně DPH. Pokud chcete místo obecného postupu rozbor techniky, obsahu a viditelnosti konkrétního webu, navazuje na něj Audit AI viditelnosti.

Zdroje: OpenAI — přehled robotů, Anthropic — roboti a jejich účely, Perplexity — dokumentace robotů, Google — běžní roboti a ověřování požadavků, Nginx — access log, Apache — log files, Cloudflare — původní IP a kvalita rozpoznání AI robotů. Ověřeno 22. 10. 2026.

Sniper Design
Pomoc s implementací

Nechcete to řešit interně? Postavíme to za vás.

V Sniper Design děláme kompletní AI SEO — strategii, audit, implementaci i obsah. Zlatý partner Upgates i Shoptetu, přes 600 e‑shopů na CZ trhu. Na AI vyhledávání připravujeme návrhy homepage, obsahovou strukturu i audity klientských webů.

  • 600+ e‑shopů
  • Vlastní e‑shop MEGA DETAIL
FAQČasté otázky

Časté otázky, které k tématu nejčastěji padají

Kde najdu přístupový log webu?
Záleží na hostingu a konfiguraci serveru. V administraci hostingu hledejte přístupové nebo access logy. Na vlastním serveru cestu určuje konfigurace Nginxu nebo Apache, takže ji neodhadujte jen podle obvyklého názvu souboru. Pro první přehled zvolte například 30 dní a zahrňte starší soubory vytvořené rotací logu i komprimované archivy. U málo navštěvovaného webu období prodlužte.
Které údaje musí log obsahovat?
Pro tento postup potřebujete čas, zdrojovou IP, požadovanou adresu, stavový kód a celý user-agent. Hodí se i velikost odpovědi a doba zpracování. U webu za Cloudflare nebo jinou proxy ověřte, že se zapisuje původní IP návštěvníka, ne jen adresa proxy. Hlavičce s původní IP důvěřujte pouze u spojení z rozsahů dané proxy.
Stačí hledat GPTBot, ClaudeBot a PerplexityBot?
Ne. Pro účely řešené v tomto návodu rozlišuje OpenAI OAI-SearchBot, GPTBot a ChatGPT-User; Anthropic Claude-SearchBot, ClaudeBot a Claude-User; Perplexity PerplexityBot a Perplexity-User. Vyhledávání, možné použití při vývoji modelů a návštěva vyvolaná uživatelem se nemají sčítat. Reklamní OAI-AdsBot je mimo rozsah návodu.
Jak poznám podvrženého AI robota?
User-agent lze snadno napodobit. Zdrojovou IP porovnejte s aktuálním seznamem rozsahů provozovatele; u Googlu lze použít také reverzní a následný dopředný DNS dotaz. IP mimo dnešní seznam je důvod k prověření, ale u starého logu nemusí být sama o sobě definitivním důkazem podvrhu.
Najdu v logu Google-Extended?
Ne jako samostatný HTTP user-agent. Google-Extended je řídicí token pro robots.txt a Google uvádí, že procházení probíhá pod existujícími user-agenty. Z návštěvy Googlebota proto nepoznáte, zda data posloužila klasickému vyhledávání, režimu AI nebo jiné funkci Googlu.
Lze z logu spočítat poměr procházení k návštěvám?
Jen částečně. Log dá počet ověřených požadavků robota. Návštěvy lidí z dané platformy musíte vzít z analytiky za stejné období a podle odkazující stránky (referreru) či kampaně. Požadavky automatického robota navíc držte odděleně od návštěv typu ChatGPT-User nebo Perplexity-User, které vyvolal člověk.
→Čtěte dál

Související články

Všechny články v blogu Zpět na úvod