ACC-01

robots.txt blokuje AI crawlery

KritickéPřístup pro crawlery

Co kontrola měří

Audit stáhne /robots.txt, rozdělí ho na skupiny podle User-agent a porovná je se seznamem sledovaných AI robotů. Seznam není v kódu, ale v konfiguraci config/ai-bots.json. Je v něm 25 tokenů od OpenAI, Anthropicu, Googlu, Perplexity, Applu, Amazonu, Mety, Mistralu, DuckDuckGo, Common Crawlu, ByteDance a Exy, u každého i provozovatel, účel (trénink / indexace / dotaz uživatele) a informace, jestli má zápis do robots.txt vůbec smysl.

Nález vznikne jen tehdy, když skupina blokuje celý web, tedy obsahuje Disallow: / nebo Disallow: /* a zároveň v téže skupině není Allow: /. Tohle pořadí není naše konvence, ale pravidlo standardu (RFC 9309: rozhoduje nejdelší shodné pravidlo a při shodné délce vyhrává Allow).

Co kontrola nedělá:

  • Částečné blokace nehlásí. Disallow: /blog/ nebo Disallow: /*.pdf nález nezvedne, i když vám může zavřít podstatnou část obsahu. Kontrola posuzuje jen zákaz celého webu.
  • Neověřuje, jestli se robot pravidlem řídí. Čte váš soubor, ne chování cizí firmy. U tří tokenů je dokonce doloženo, že se jím řídit nemusí; viz níž.
  • Nedívá se na <meta name="robots"> ani na hlavičku X-Robots-Tag. To je ACC-07, a ten umí web vyřadit z indexu i při bezvadném robots.txt.
  • Nevidí blokaci na úrovni CDN nebo firewallu. Ta se v robots.txt nijak neprojeví. Tím se zabývá ACC-09.
  • Roboty, které v naší konfiguraci nejsou, ignoruje. Zákaz pro neznámého agenta se nikde neobjeví.
  • Zděděná pravidla nedopočítává. Hlásíme jen roboty, které váš soubor jmenuje. Jeden z nich se ale řídí i cizí skupinou; viz odstavec níž.

Jeden robot dědí pravidla po vyhledávačích: ExaSearchBot. Exa Labs provozuje index, ze kterého čerpají vývojářské nástroje a agenti (Cursor, Devin a další). Její vlastní dokumentace (ověřeno 17. 9. 2026 na crawler.exa.ai) říká doslova, že pokud pro ni vlastní skupinu nemáte, řídí se pravidly, která jste nastavili pro velké vyhledávače, a teprve pak skupinou *. Prakticky to znamená, že User-agent: Googlebot + Disallow: / vyřadí i Exu, aniž by ji váš soubor zmínil. Tahle kontrola o tom mlčí, protože hlásí jen výslovně jmenované tokeny. Takový web ale dostane kritický nález ACC-10 a oprava robots.txt zruší oba zákazy naráz. Chcete-li mít v tom jasno, dejte Exe vlastní skupinu.

Nález je na úrovni celého webu, v reportu se objeví nanejvýš jednou a vypíše konkrétní tokeny, které jsme ve vašem souboru našli, každý s poznámkou, co pro něj blokace skutečně znamená.

Jak silný důkaz za tím stojí

Nutná podmínka

Bez tohohle se vám AI vyhledávání nemá jak zobrazit. Google to má ve vlastní dokumentaci: stránka musí být zaindexovaná a způsobilá pro zobrazení s úryvkem. Nejtvrdší třída, jakou máme.

Tohle je nejpevnější věc, kterou vám celý audit může říct. Nestojí na měření ani na odhadu, ale na větě z dokumentace Googlu:

Aby stránka mohla být zobrazena jako podpůrný odkaz v AI Overviews nebo AI Mode, musí být zaindexovaná a způsobilá k zobrazení s úryvkem ve vyhledávání Google. Žádné další požadavky neexistují.Google Search Central, AI features

Když robot na web nesmí, nezaindexuje ho. Všechno ostatní, co v reportu stojí, je pak bezpředmětné. Totéž platí pro Microsoft Copilot, který staví na indexu Bingu. Proto je ACC-01 kritický nález, ne doporučení: není to optimalizace, je to vstupenka.

Kde ale musíme být přesní (a kde se lišíme od většiny návodů, které na robots.txt posílají paušálně): u čtyř tokenů zápis do souboru neznamená to, co se od něj čeká.

TokenV čem je to jinakCo z toho plyne
Google-ExtendedNemá vlastní crawler ani UA. Google doslova píše, že crawl probíhá existujícími user-agenty Googlu.Řídí jen použití dat k tréninku Gemini. Neovlivňuje zařazení ani pořadí ve vyhledávání; to Google výslovně uvádí.
Applebot-ExtendedTaké nekrawluje sám, je to sekundární token nad Applebotem.Blokace neovlivní Siri ani Spotlight, jen použití dat pro Apple Intelligence.
Perplexity-UserDokumentovaně robots.txt nerespektuje (fetch vyvolaný dotazem uživatele).Zápis do souboru to nevyřeší. Slibovat opak by bylo nepravdivé.
Bytespider (ByteDance)ByteDance nepublikuje dokumentaci ani ověřovací mechanismus přes IP či DNS.Zápis je namístě, ale na skutečné vynucení počítejte se server-side blokací (rate limit nebo WAF).

Páté upozornění patří Meta-ExternalFetcher: na rozdíl od Meta-ExternalAgent jde o fetch vyvolaný uživatelem a ten může robots.txt obcházet. A DuckAssistBot se chová správně, jen pomalu: opt-out se projeví až po zhruba 72 hodinách, takže když to druhý den nefunguje, není to chyba.

Poslední věc, kterou je fér říct nahlas: blokovat tréninkové roboty může být legitimní obchodní rozhodnutí, ne omyl. Vydavatel, který nechce, aby se jeho archiv zdarma použil k tréninku modelu, dělá něco pochopitelného. Nález proto nepíše „máte chybu“; píše, co vás to stojí, a nechává rozhodnutí na vás. Kritická závažnost je tu proto, že v naprosté většině případů, které vidíme, jde o blokaci nechtěnou: zdědila se ze šablony, z nasazení testovacího prostředí nebo z plošného Disallow, o kterém už nikdo neví.

Jak to opravit

Otevřete robots.txt v kořeni webu a najděte skupinu, která zakazuje celý web. Nejčastější příčinou bývá jediný blok, který tam zbyl z doby, kdy web ještě nebyl hotový:

User-agent: *
Disallow: /

Pokud roboty pustit chcete, přidejte explicitní pravidla pro ty, které si přejete. Každá skupina je samostatná a nedědí nic z ostatních:

User-agent: GPTBot
Allow: /

User-agent: OAI-SearchBot
Allow: /

User-agent: ClaudeBot
Allow: /

User-agent: PerplexityBot
Allow: /

Sitemap: https://vase-domena/sitemap.xml

Pár věcí, na kterých se to v praxi láme:

  • Jedna skupina, jeden robot. User-agent: GPTBot, ClaudeBot na jednom řádku standard nezná; napište dvě skupiny.
  • Prázdný řádek odděluje skupiny. Pravidlo napsané pod prázdný řádek už patří k jiné skupině než ta, pod kterou jste ho chtěli mít.
  • Konkrétní skupina přebíjí User-agent: *. Když má robot vlastní skupinu, obecnou vůbec nečte; nestačí tedy přidat Allow do hvězdičkové skupiny, pokud má robot i tu svou.
  • Soubor musí být v kořeni domény (https://vase-domena/robots.txt) a vracet 200. Na subdoméně platí její vlastní soubor, ne ten z apexu.
  • Po úpravě si soubor otevřete v prohlížeči. Generují ho často pluginy a frameworky, takže to, co je v repozitáři, nemusí být to, co se servíruje.

Když chcete naopak roboty zakázat a je vám jasné proč, nechte v souboru jen ty tokeny, které opravdu blokovat chcete, a počítejte se čtyřmi výjimkami z tabulky výš. U Bytespideru k tomu přidejte blokaci na úrovni serveru, jinak zápis nemá jak zabrat.

Co o tom říká report

Popis nálezu

Soubor robots.txt obsahuje pravidlo Disallow pro tyto sledované AI user-agenty: [seznam konkrétních zablokovaných botů]. Pokud jde o skutečné crawlery (ne opt-out tokeny bez vlastního UA/IP, jako Google-Extended nebo Applebot-Extended), blokace jim brání stránku vůbec navštívit a zahrnout ji do trénování nebo real-time odpovědí. U tří sledovaných botů ale zápis v robots.txt nic nevynutí (Perplexity-User, Bytespider, Meta-ExternalFetcher): ti přijdou tak jako tak; podrobnosti jsou v doporučení níž.

Doporučení

Do robots.txt přidejte explicitní pravidla pro AI crawlery, které chcete pustit, například: User-agent: GPTBot Allow: / User-agent: ClaudeBot Allow: / Ponechte Disallow jen u user-agentů, které záměrně blokujete. Pozor na několik výjimek, kde samotný zápis v robots.txt nestačí nebo neznamená to, co byste čekali: tokeny Google-Extended a Applebot-Extended jsou jen opt-out z trénování - nemají vlastní crawler, který web navštěvuje, takže jejich (ne)blokace neovlivní běžné vyhledávání ani asistenty (Gemini/Siri/Spotlight) mimo tréninkový účel. U Perplexity-User platí, že blokace v robots.txt dokumentovaně nefunguje spolehlivě - Perplexity ho dokáže obejít. U Bytespideru (ByteDance) neexistuje žádný oficiální ověřovací mechanismus (IP/DNS) - zápis v robots.txt je namístě, ale pro skutečné vynucení počítejte i se server-side blokací (rate limit / WAF). Meta-ExternalFetcher se chová jinak než Meta-ExternalAgent - jde o user-initiated fetch, který může robots.txt obcházet. A pokud blokujete DuckAssistBot, jeho opt-out se projeví až po cca 72 hodinách - to není chyba, jen zpoždění.

Zdroje

Text ověřen 2026-09-12