SEO & Discoverability

Jak napsat robots.txt, který skutečně blokuje AI scrapery

Praktický průvodce blokováním poctivých AI crawlerů, pochopením limitů robots.txt a přidáním serverových kontrol tam, kde na nich záleží.

The Wux Webtools Team The Wux Webtools Team 11 min čtení S asistencí AI, lidsky zkontrolováno
Illustration of crawler bots approaching a website gate controlled by a robots.txt file.
Obsah
  1. Nepříjemná pravda o robots.txt
  2. Co robots.txt umí a neumí
  3. Začněte rozhodnutím o pravidlech
  4. Rozumná šablona robots.txt pro blokování AI
  5. Buďte opatrní s Google-Extended
  6. Testujte soubor jako produkční kód
  7. Přidejte serverové kontroly pro boty, které pravidla ignorují
  8. Rate limiting
  9. Filtrování user agentů
  10. Kontroly IP a ASN
  11. Autentizace a paywally
  12. Minimalizace obsahu
  13. Používejte robots meta tagy pro pravidla na úrovni stránky
  14. Po zveřejnění sledujte logy
  15. Udržujte soubor malý a kontrolovaný
  16. Shrnutí

Nepříjemná pravda o robots.txt

Soubor robots.txt není zámek. Je to cedule na dveřích.

Na tomto rozdílu záleží, když se týmy ptají, zda mohou „zablokovat AI scrapery“ jedním malým textovým souborem. U důvěryhodných crawlerů, kteří dodržují Robots Exclusion Protocol, ano: správně napsaný robots.txt jim může říct, aby vaše stránky neprocházeli. U neznámých scraperů, napodobitelů, automatizace prohlížečů a botů, kterým je to jednoduše jedno, sám o sobě neudělá nic.

Praktickým cílem tedy není „znemožnit scraping“. Cílem je:

  • Říct poctivým AI crawlerům, aby váš web nepoužívali.
  • Vyhnout se nechtěnému blokování vyhledávačů nebo užitečných služeb.
  • Přidat silnější serverové kontroly proti zneužívání.
  • Udržet pravidla spravovatelná, i když se názvy crawlerů mění.

To je ta nudná verze. Je to také verze, která funguje.

Co robots.txt umí a neumí

Soubor robots.txt se nachází v kořeni webu:

https://example.com/robots.txt

Crawlery si ho vyžádají před procházením. Soubor obsahuje skupiny pravidel. Každá skupina začíná jedním nebo více řádky User-agent, po nichž následují direktivy Allow nebo Disallow.

Jednoduché zablokování celého webu vypadá takto:

User-agent: GPTBot
Disallow: /

To říká: pokud jsi GPTBot, neprocházej na tomto webu nic.

robots.txt má ale tvrdé limity:

  1. Je dobrovolný. Škodliví aktéři ho mohou ignorovat.
  2. Nezabrání tomu, aby si URL vyžádal běžný prohlížeč nebo skript.
  3. Neodstraní obsah, který už byl shromážděn jinde.
  4. Sám o sobě neurčuje autorská práva, licencování ani práva k trénování.
  5. Lze ho špatně nastavit tak, že zablokuje nesprávné boty.

Pokud potřebujete skutečnou kontrolu přístupu, použijte autentizaci, autorizaci, rate limiting, kontroly podle IP, správu botů nebo právní opatření. Robots.txt je stále užitečný, ale patří do širší strategie ochrany obsahu.

Je to podobné jako u jiných problémů webové správy: viditelná kontrola málokdy představuje celou kontrolu. Pokud vaše organizace už interně používá neřízenou AI, platí stejný princip; rychlý audit shadow AI je často užitečnější než předstírat, že jeden dokument s pravidly problém vyřeší.

Začněte rozhodnutím o pravidlech

Než soubor upravíte, rozhodněte se, co se vlastně snažíte blokovat.

Pod pojmem „AI scraper“ lidé myslí nejméně čtyři různé věci:

  • Crawlery používané ke sběru trénovacích dat.
  • Crawlery pro AI vyhledávání nebo odpovědní enginy.
  • Fetchery spouštěné uživatelem, například když někdo požádá AI produkt o shrnutí URL.
  • Obecné scrapery, které se tváří jako běžné prohlížeče.

Možná chcete blokovat všechny. Nebo možná chcete zachovat dohledatelnost ve vyhledávání a zároveň se odhlásit z trénování modelů. To nejsou stejná pravidla.

Například OpenAI dokumentuje samostatné user agenty pro různé účely, včetně GPTBot, ChatGPT-User a OAI-SearchBot. Google používá Google-Extended jako kontrolní token pro některé případy použití Gemini a Vertex AI, zatímco běžné procházení pro Google Search obsluhují jiné user agenty Googlebot.

Toto oddělení je důležité. Pokud neopatrně zablokujete široké user agenty, můžete poškodit běžnou viditelnost ve vyhledávání, zatímco se snažíte blokovat trénování AI.

Rozumná šablona robots.txt pro blokování AI

Tady je konzervativní výchozí bod pro blokování několika běžně dokumentovaných crawlerů souvisejících s AI, aniž byste blokovali obecné vyhledávací crawlery:

# AI training and AI product crawlers
User-agent: GPTBot
Disallow: /

User-agent: ChatGPT-User
Disallow: /

User-agent: OAI-SearchBot
Disallow: /

User-agent: Google-Extended
Disallow: /

User-agent: CCBot
Disallow: /

User-agent: ClaudeBot
Disallow: /

User-agent: Claude-Web
Disallow: /

User-agent: PerplexityBot
Disallow: /

User-agent: Amazonbot
Disallow: /

User-agent: Bytespider
Disallow: /

User-agent: Meta-ExternalAgent
Disallow: /

# Default rule for other crawlers
User-agent: *
Allow: /

Není to kouzelný univerzální seznam. Je to udržitelný vzor.

Několik poznámek:

  • Disallow: / znamená „neprocházej žádnou cestu“.
  • User-agent: * se vztahuje na crawlery, které neodpovídají konkrétnější skupině.
  • Allow: / není u výchozí skupiny striktně nutné, ale jasně vyjadřuje váš záměr.
  • Komentáře držte krátké. Některé parsery jsou shovívavé, ale robots.txt má zůstat nudný.
  • Do robots.txt neuvádějte soukromé URL. Soubor je veřejný a vypsání citlivých cest je může propagovat.

Poslední bod stojí za zopakování. Robots.txt není mechanismus utajení. Pokud /client-contracts/ nemá být veřejné, chraňte to autentizací. Nezakazujte to jen direktivou disallow.

Buďte opatrní s Google-Extended

Google-Extended je často špatně chápaný. Není to totéž jako blokování Google Search.

Podle dokumentace Google je Google-Extended samostatný produktový token, který vydavatelé mohou použít ke správě toho, zda obsah webu může pomáhat zlepšovat určité schopnosti Gemini a Vertex AI. Jeho blokování by samo o sobě nemělo blokovat Googlebot při procházení pro Search.

Přesto nenahrazujte všechny direktivy pro Google širokým blokováním, jako je toto, pokud to opravdu nemyslíte vážně:

User-agent: Googlebot
Disallow: /

Tím byste hlavnímu crawleru Google Search řekli, aby váš web neprocházel. U většiny veřejných webů to není to, co chcete.

Stejné rozlišení platí i jinde. Někteří dodavatelé oddělují trénovací crawlery od uživatelem spouštěného procházení nebo crawlerů AI vyhledávání. Jiní ne. Musíte číst dokumentaci k botům, na kterých vám záleží, a se svým robots.txt zacházet jako s živým souborem, ne jako s jednorázovým zaškrtávacím políčkem.

Testujte soubor jako produkční kód

Robots.txt vypadá jednoduše, a právě proto je snadné ho rozbít.

Mezi časté chyby patří:

  • Nahrání na špatné místo, například do /assets/robots.txt místo /robots.txt.
  • Použití typografických uvozovek zkopírovaných z textového editoru.
  • Neúmyslné zablokování všech crawlerů pomocí User-agent: * a Disallow: /.
  • Předpoklad, že soubor jedné domény platí i pro jinou subdoménu.
  • Zapomenutí, že hosty http://, https://, www a bez www lze podle vašeho nastavení obsluhovat odlišně.

U webů s více doménami zkontrolujte každý kanonický host. Soubor robots na https://www.example.com/robots.txt automaticky neřídí https://app.example.com/robots.txt.

Při ladění kontrolujte skutečnou HTTP odpověď, ne jen to, co ukazuje náhled ve vašem CMS. Chcete odpověď 200 OK, typ obsahu pokud možno text/plain a přesně ten soubor, který očekáváte. Pokud jsou zapojena přesměrování, cache nebo pravidla CDN, pomůže kontrola surových hlaviček. Postup z článku ladění přesměrování a HTTP hlaviček v produkci se zde uplatní přímo.

Přidejte serverové kontroly pro boty, které pravidla ignorují

Pokud je crawler poctivý, robots.txt je nejčistší signál. Pokud je crawler zneužívající, potřebujete vynucování.

Praktické kontroly zahrnují:

Rate limiting

Nastavte prahy pro neobvyklé vzorce požadavků: příliš mnoho stránek za minutu, hluboké procházení stránkování, opakované 404 nebo vysoký objem požadavků z malé množiny IP adres. Limity mají být dostatečně velkorysé, aby netrestaly skutečné uživatele, a dostatečně přísné, aby hromadnou extrakci prodražily.

Filtrování user agentů

Dokumentované user agenty AI crawlerů můžete blokovat na úrovni webového serveru, reverse proxy, CDN nebo aplikace. Je to silnější než robots.txt, protože vrací skutečnou zamítavou odpověď.

Například Nginx může blokovat vzor user agenta, i když produkční pravidla je třeba pečlivě otestovat:

if ($http_user_agent ~* "GPTBot|CCBot|ClaudeBot|Bytespider") {
    return 403;
}

Není to neprůstřelné. Řetězce user agentů lze snadno zfalšovat. Zastaví to ale poctivý nebo líný provoz a sníží zátěž.

Kontroly IP a ASN

Někteří provozovatelé zveřejňují rozsahy IP, ale mnoho scraperových ekosystémů ne. Blokování podle IP může fungovat u zjevného zneužívání, zejména z cloudových hostingových rozsahů bez běžného uživatelského provozu, ale může také vytvářet falešně pozitivní zásahy. Nejprve použijte logy, teprve potom pravidla.

Autentizace a paywally

Pokud obsah nesmí být kopírován ve velkém měřítku, nedávejte celý obsah na veřejnou URL. Robots.txt se nehodí pro důvěrné materiály, licencované databáze, soukromé komunity ani placené archivy.

Minimalizace obsahu

Někdy je nejlepší ochranou architektura. Nevystavujte zbytečná API, velké JSON payloady, skrytá metadata, draft endpointy ani celé archivy, pokud veřejná stránka potřebuje jen malou podmnožinu. Weby s velkým množstvím obrázků by měly také přemýšlet o tom, jaká metadata publikují; logika ochrany soukromí z článku odstraňování EXIF metadat před sdílením fotografií online platí i pro práci s obsahem.

Používejte robots meta tagy pro pravidla na úrovni stránky

Robots.txt řídí procházení. Robots meta tagy a hlavičky X-Robots-Tag řídí indexování a chování úryvků u poctivých vyhledávačů a crawlerů.

Například:

<meta name="robots" content="noindex, noarchive">

Nebo jako HTTP hlavička:

X-Robots-Tag: noindex, noarchive

Nejsou to štíty specifické pro AI. Hodí se, když chcete, aby stránka byla přístupná, ale nebyla indexována. Pokud však crawleru zakážete načítat stránku v robots.txt, nemusí se k meta tagu na úrovni stránky nikdy dostat. Nespoléhejte na tag noindex na URL, kterou crawler nesmí procházet.

Hrubé pravidlo:

  • Používejte robots.txt ke snížení nebo zabránění procházení.
  • Používejte meta robots nebo X-Robots-Tag ke kontrole indexování.
  • Používejte serverové kontroly k vynucení přístupu.

Po zveřejnění sledujte logy

Zveřejnění souboru je jen první krok. Potom zkontrolujte logy.

Hledejte:

  • Požadavky na /robots.txt od user agentů, které jste uvedli.
  • Pokračující procházení poté, co jsou doručena pravidla disallow.
  • Podezřelé user agenty s vysokým objemem.
  • User agenty podobné prohlížečům, které si postupně vyžádají tisíce stránek.
  • Opakovaný přístup k feedům, sitemapám, stránkám vyhledávání a stránkování.

Pokud si bot vyžádá robots.txt, uvidí úplný zákaz a pak se zastaví, robots.txt odvedl svou práci. Pokud pokračuje, přesuňte tohoto bota do vynucování: rate limity, blokování nebo autentizace.

Zkontrolujte také vystavení sitemap. Sitemapy jsou užitečné pro vyhledávače, ale jsou také pohodlnými mapami pro scrapery. To neznamená, že byste je měli z běžných webů odstraňovat. Znamená to, že byste do nich neměli zahrnovat URL, které nechcete zpřístupnit veřejným systémům k objevení.

Udržujte soubor malý a kontrolovaný

Robots.txt má sklon chátrat. Marketingový tým přidá kampaňový microsite. Vývojář přidá cestu pro staging. Dodavatel změní název crawleru. O dva roky později už nikdo neví, proč polovina pravidel existuje.

Zacházejte s ním jako s konfigurací:

  • Pokud je to možné, ukládejte ho do version control.
  • Ke každé skupině AI crawlerů přidejte krátký komentář.
  • Revidujte ho čtvrtletně.
  • Před přidáním širokých pravidel zkontrolujte dokumentaci dodavatele.
  • Testujte po změnách CDN, CMS nebo hostingu.

Pokud váš web publikuje obsah s pomocí AI, oddělte také pravidla pro crawlery od redakční transparentnosti. Blokování AI scraperů se týká přístupu a opětovného použití. Zveřejňování informací se týká důvěry čtenářů. Eticky se překrývají, ale nejsou stejnou kontrolou. Praktický přístup k disclosure popisuje článek jak vypadá poctivé disclosure AI na malém webu.

<!-- tool-cta:start -->

💡 Vyzkoušejte toto: Po přidání pravidel pro AI crawlery ověřte syntaxi pomocí Robots.txt Tester, abyste omylem nezablokovali i legitimní boty.

<!-- tool-cta:end -->

Shrnutí

Dobrý soubor robots.txt zablokuje poctivé AI crawlery. Nezastaví odhodlaný scraping, zkopírované řetězce user agentů, kompromitované prohlížeče ani lidi, kteří váš obsah ručně vloží do AI systémů.

To z něj nedělá zbytečnost. Dělá to z něj jednu vrstvu.

Pište explicitní pravidla pro dokumentované AI crawlery. Vyhýbejte se širokým blokacím, které poškozují viditelnost ve vyhledávání. Testujte doručený soubor, ne návrh. Sledujte logy. Tam, kde se chování posune od nechtěného ke zneužívajícímu, vynucujte pravidla serverovými kontrolami.

Web vždy fungoval na kombinaci protokolu, norem a vynucování. Robots.txt je vrstva norem. Používejte ji, ale nepleťte si ji se zdí.

Často kladené otázky

Může robots.txt zabránit AI společnostem v trénování na mém obsahu?
Může poctivým AI crawlerům říct, aby váš web za tímto účelem neprocházeli. Technicky ale nemůže zabránit nepoctivým scraperům v přístupu k veřejným stránkám a neodstraní obsah, který už byl shromážděn.
Mám zablokovat User-agent: * , abych zastavil všechny scrapery?
Obvykle ne. `User-agent: *` se vztahuje na všechny crawlery, které neodpovídají konkrétnějšímu pravidlu. `Disallow: /` pod touto skupinou může zablokovat běžné procházení vyhledávači i další užitečné boty.
Je Google-Extended totéž co Googlebot?
Ne. Google dokumentuje `Google-Extended` jako samostatný produktový token pro kontrolu některých použití Gemini a Vertex AI. Blokování `Googlebot` je mnohem širší zásah a může ovlivnit procházení pro Google Search.
Co když AI scraper ignoruje robots.txt?
Přejděte od signalizace k vynucování. Použijte rate limiting, blokování user agentů, případně kontroly IP nebo ASN, správu botů, autentizaci a přísnější vystavení API/obsahu.
Potřebuji robots.txt i meta robots tagy?
Řeší různé problémy. Robots.txt řídí procházení. Meta robots tagy a hlavičky `X-Robots-Tag` řídí indexování a chování úryvků u poctivých crawlerů, které se na stránku dostanou.

Zdroje a další čtení

  1. RFC 9309: The Robots Exclusion Protocol
  2. Google Search Central: robots.txt specifications
  3. OpenAI: GPTBot documentation
  4. Google Search Central: Google-Extended
O autorovi
The Wux Webtools Team

Naposledy aktualizováno:

Pokračujte ve čtení