ACC-08

robots.txt nastavuje Content-Signal proti AI trénování/vstupu

VarováníPřístup pro crawlery

Co kontrola měří

V robots.txt (v tomtéž souboru, který audit stahuje pro ACC-01) se hledá řádek Content-Signal: a v něm tokeny ai-train a ai-input s blokující hodnotou. Typicky vypadá takhle:

Content-Signal: search=yes, ai-train=no, ai-input=no

Nález vznikne, když aspoň jeden z těch dvou tokenů stojí na no. Report vypíše konkrétní nalezené řádky i konkrétní tokeny, ne obecné konstatování. Názvy polí, hodnot i tokenů nejsou v kódu, jsou v config/cdn-ai-defaults.json pod content_signal, takže se dají upravit bez zásahu do programu.

Je to čistě textový rozbor vašeho vlastního souboru. Nic se neodhaduje, nikam se neposílá požadavek navíc a v žádném případě se nevydáváme za cizího robota, abychom si blokaci ověřili.

Co kontrola nedělá:

  • Nesleduje token search. Ten řídí klasické vyhledávání a ACC-08 mluví jen o AI trénování a AI vstupu.
  • Nezjišťuje, kdo ten řádek napsal. Může to být vaše rozhodnutí, ale taky vám ho mohl doplnit CDN sám přes spravovaný robots.txt, a to je přesně ten případ, kvůli kterému nález existuje.
  • Neověřuje, jestli se tím někdo řídí. To ani ověřit nejde; viz níž.
  • Nemá nic společného s tím, jestli web běží za CDN. Ten řádek si do souboru může napsat kdokoli ručně. Rizikem z výchozího nastavení CDN se zabývá ACC-09, což je jiná věc s jiným typem důkazu.

Nález je na úrovni celého webu, závažnost varování, ne kritická. Důvod je v další sekci a stojí za přečtení.

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

Efekt nedoložený

Doporučujeme to, protože to neuškodí nebo to má jiný užitek, ale vliv na to, jestli vás jazykové modely budou citovat, neslibujeme. Nikdo ho zatím nedoložil.

Content Signals Policy je konvence, kterou v roce 2025 zavedla Cloudflare: vedle pravidel „kam robot smí“ přidává do robots.txt deklaraci „k čemu se obsah smí použít“: zvlášť pro vyhledávání, zvlášť pro trénink modelu, zvlášť pro vložení do odpovědi v reálném čase.

Nakolik to funguje, doložené není, a říká to sama Cloudflare. Ve vlastní dokumentaci k tomu píše, že jde o signál, ne o nástroj, který by scraper zastavil. Žádný z provozovatelů jazykových modelů nedeklaruje, že Content Signals čte nebo respektuje. Neznamená to, že je řádek k ničemu: je to srozumitelně vyjádřená vůle majitele obsahu, což může mít váhu právní i reputační. Znamená to jen, že technicky nic nevynucuje.

Právě proto je závažnost jen varování, zatímco ACC-01 je kritický. Disallow: / robotovi, který se chová podle standardu, stažení stránky skutečně zabrání. Content-Signal: ai-train=no je prosba.

K čemu tedy nález je? K tomu, abyste věděli, že ta deklarace ve vašem souboru je. Dva nejčastější případy:

  • Napsali jste ji vy a víte proč. Pak není co řešit: nález je konstatování, ne výtka. Berte ho jako připomenutí, že tuhle volbu máte, a že se týká i nástrojů, které vás jinak mohly citovat.
  • Doplnil vám ji CDN. Spravovaný robots.txt umí Content Signals přidat za vás a stačí k tomu jeden přepínač v panelu, o kterém nemusíte vědět. Pak jste vyjádřili vůli, kterou jste nikdy nevyslovili.

A ještě rozlišení, které se snadno slévá dohromady: ai-train a ai-input nejsou totéž. První říká „netrénujte na mém obsahu“, druhé „nevkládejte můj obsah do odpovědi, kterou právě skládáte“. To druhé je přesně ten případ, kdy by vás asistent citoval. Kdo chce zůstat mimo tréninkové datové sady, ale objevovat se v odpovědích, má nastavit ai-train=no a ai-input=yes, a to je rozdíl, na kterém záleží víc, než se na první pohled zdá.

Jak to opravit

Nejdřív zjistěte, jestli ten řádek do souboru patří. Otevřete si https://vase-domena/robots.txt v prohlížeči a podívejte se, co tam skutečně je, ne to, co máte v repozitáři.

Když jste deklaraci nepsali, hledejte ji v panelu svého CDN pod spravovaným robots.txt nebo v sekci pro správu AI robotů. Bývá to jediný přepínač.

Pak se rozhodněte podle toho, co s obsahem chcete. Nejsou to dvě možnosti, ale tři:

Co chceteJak to zapsat
Být ve vyhledávání i v odpovědích AI, jen ne v tréninkuContent-Signal: search=yes, ai-train=no, ai-input=yes
Být ve vyhledávání, ale jinak AI stranouContent-Signal: search=yes, ai-train=no, ai-input=no
Bez omezenířádek Content-Signal: odstraňte úplně

Na co dát pozor:

  • ai-input=no je to podstatné rozhodnutí, ne ai-train=no. První vás stojí zmínky v odpovědích, druhé jen místo v tréninkových datech. Když jste chtěli jen to druhé, opravte to.
  • Řádek nepatří dovnitř skupiny User-agent. Píše se na samostatný řádek, stejně jako Sitemap:.
  • Pokud jste deklaraci nechtěli a smažete ji, zkontrolujte i přepínač v CDN. Jinak vám ji spravovaný robots.txt při příštím sestavení vrátí zpátky.
  • Nečekejte, že to samo o sobě něco zastaví. Kdo chce trénink skutečně vynutit, potřebuje k tomu blokaci na úrovni serveru nebo CDN; deklarace je vyjádření vůle, ne zámek.

Co o tom říká report

Popis nálezu

Soubor robots.txt obsahuje řádek Content-Signal, kterým web explicitně nastavuje: [seznam konkrétních tokenů] = no. Přesné znění nalezeného řádku: „[konkrétní řádky Content-Signal z vašeho robots.txt]“. Content-Signal je nová, strojově čitelná preference přímo v robots.txt (ne příkaz jako Disallow). Podle vlastní dokumentace Cloudflare jde o signál, ne o technicky vynucenou blokaci: robot ho může, ale nemusí respektovat. I tak jde o jasně formulovaný záměr majitele webu (nebo jeho CDN) vůči CELÉ KATEGORII použití obsahu AI systémy, ne vůči jedinému jmenovanému robotovi jako u ACC-01.

Doporučení

Pokud chcete, aby AI systémy mohly obsah používat pro trénink nebo pro odpovídání v reálném čase, změňte hodnotu u sledovaných tokenů (ai-train, ai-input) na „yes“, nebo řádek Content-Signal z robots.txt odstraňte úplně; jeho nepřítomnost neznamená zákaz, jen absenci preference. Pokud jste tenhle řádek do robots.txt nepřidali sami, může pocházet z CDN nebo hostingu (například spravovaného robots.txt u Cloudflare); nastavení zkontrolujte tam.

Zdroje

Text ověřen 2026-09-12