AI bot crawlability · rohlik.cz · 2026-06-19
Technický audit

Rohlik.cz - produkty a ceny neviditelné pro ChatGPT a Perplexity

Všechny AI boti dostanou od serveru odpověď 200 a robots.txt je vítá - přístup je otevřený. Problém leží jinde: domovská stránka vydá ve statickém HTML jen 17 % svého finálního obsahu, zbytek dokreslí až JavaScript. Celý produktový výpis i ceny proto ChatGPT, Perplexity a Claude ve svých crawlerech nevidí - čtou jen holou HTML kostru bez jediného produktu. Totéž platí pro stránky značek, kde se produkty načítají výhradně přes JavaScript.

14 z 14botů dostalo HTTP 200 na domovské stránce
83 %obsahu domovské stránky je skryto za JavaScriptem - GPTBot a PerplexityBot ho nečtou
1 z 14botů blokováno přes robots.txt (CCBot - trénink jazykových modelů)

Přístup AI botů

Výsledky HTTP sondování domovské stránky a stav v robots.txt. Web běží na Cloudflare - HTTP výsledky jsou orientační, skutečné chování IP-ověřených botů (Googlebot, bingbot, Applebot) prověř přes logy nebo webmasterské nástroje.

BotCo dělárobots.txtHTTP přístupPohání
GPTBotCrawler - trénink ChatGPTpovolen200 OKChatGPT
OAI-SearchBotCrawler - citace v ChatGPT Searchpovolen200 OKChatGPT Search
ChatGPT-UserUživatelsky spuštěný - živé načítání při dotazu v ChatGPT; robots.txt ho nezavazujedeklarovaná preference200 OKChatGPT
ClaudeBotCrawler - trénink a indexace Claudepovolen200 OKClaude
Claude-SearchBotCrawler - citace v Claudepovolen200 OKClaude
Claude-UserUživatelsky spuštěný - živé načítání při dotazu; respektuje robots.txt (výjimka v pravidlech Anthropic)povolen200 OKClaude
PerplexityBotCrawler - index Perplexity; deklarovaně respektuje robots.txtpovolen200 OKPerplexity
Perplexity-UserUživatelsky spuštěný - živé načítání při dotazu v Perplexity; robots.txt obecně ignorujedeklarovaná preference200 OKPerplexity
bingbotCrawler - Bing a podklad pro Copilot odpovědipovolen200 OK (orientační)Bing / Copilot
GooglebotCrawler - Google index, základ pro AI Overviews a Geminipovolen200 OK (orientační)Google AI / Gemini
ApplebotCrawler - Apple Intelligence a Siri; spouští JavaScriptpovolen200 OK (orientační)Apple Intelligence
DuckAssistBotUživatelsky spuštěný - AI odpovědi DuckDuckGo; respektuje robots.txtpovolen200 OKDuckDuckGo AI
AmazonbotCrawler - Alexa a Rufus; může sloužit k tréninku AIpovolen200 OKAmazon AI
CCBotCrawler - Common Crawl; data používá většina tréninků LLMblokován na všech 12 testovaných URL200 OKtrénink LLM (Common Crawl)

Cloudflare CDN: HTTP sondy odesílám s UA daného bota z externího stroje - výsledky jsou orientační. Bingbot, Googlebot a Applebot ověřují svoji identitu IP adresou, ne UA řetězcem, takže anti-spoofing pravidla Cloudflare je na vstupu neovlivní. Skutečný stav ověř přes Bing Webmaster Tools, Google Search Console nebo 30denní CDN logy.

ChatGPT-User a Perplexity-User jsou uživatelsky spuštěné fetchery - robots.txt pro ně slouží jen jako deklarovaná preference, nikoliv jako závazné pravidlo.

bingbot, Googlebot a Applebot: výsledek HTTP sondy nelze použít jako průkaz reálného přístupu na CDN-frontovaném webu - viz metodika níže.

Souhlas s trénováním a deklarované signály

robots.txt tokeny pro opt-out z trénování AI, llms.txt a případné Content-Signal hlavičky.

Token / signálStavDopad
Google-Extendednenalezen - implicitní souhlasGemini Apps a Vertex AI mohou obsah Rohlik.cz použít při tréninku i jako kontext; blokování nemá vliv na AI Overviews ani AI Mode (ty řídí Googlebot)
Applebot-Extendednenalezen - implicitní souhlasApple Intelligence může obsah webu zahrnout do tréninku modelu
CCBotblokován na všech URLCommon Crawl data (a tím pádem většina LLM tréninkových korpusů) neobsahuje obsah Rohlik.cz - dopad na viditelnost ve výsledcích ChatGPT a podobných nástrojů závislých na Common Crawl
llms.txtpřítomenSoubor existuje - jde o informační signál; zatím žádný hlavní AI vendor nepotvrdil jeho automatické zpracování

Absence záznamu Google-Extended nebo Applebot-Extended v robots.txt = implicitní souhlas s trénováním. Pokud chceš trénování omezit, přidej záznamy explicitně.

Blokování CCBot přes robots.txt je záměrné opt-out rozhodnutí a respektujeme ho jako takové.

Indexační direktivy stránek

Kontrola noindex, nosnippet a noarchive flagů na vzorku 8 testovaných stránek. Žádná testovaná stránka neobsahuje ani X-Robots-Tag hlavičku.

Stránkanoindexnosnippet / max-snippetnoarchiveDopad na AI
Domovská stránkaneneneBeze změny
Produktová stránka (Nivea)neneneBeze změny
Produktová stránka (hamburgerová bulka)neneneBeze změny
Kategorie (pekárna a cukrárna)neneneBeze změny
Kategorie (trvanlivé)neneneBeze změny
Stránka značky (Zyn)neneneBeze změny
Editoriální stránka (10 kroků k Rohlíku)neneneBeze změny
Editoriální stránka (opalovaky)neneneBeze změny

Na žádné z 8 testovaných stránek se nenachází noindex, nosnippet ani noarchive direktiva - ani v meta tagu, ani v X-Robots-Tag hlavičce. Stránky jsou z pohledu indexačních direktiv čisté.

Viditelnost obsahu podle typu stránky

Srovnání toho, co vidí crawler bez JavaScriptu (statické HTML - GPTBot, ClaudeBot, PerplexityBot) oproti tomu, co zobrazí prohlížeč (Googlebot, bingbot, Applebot). Vzorek: 5 typů stránek z 33 718 URL v sitemapě. Sitemap aktuální - poslední záznam z 2026-06-19.

Typ stránkyStatické HTML (znaky)Po JavaScriptu (znaky)Co nevidí GPTBot / PerplexityBot / ClaudeBotVerdict
Domovská stránka3 68121 706Celý produktový výpis: názvy produktů s cenami, kategorie nabídky, věrnostní programy Rohlík Xtra a Rohlíček včetně benefitů - vše se načítá JavaScriptemKritické JS-gating
Stránka značky (brand search)1 8823 611Veškeré produkty dané značky včetně názvů, cen a slevových nabídek - záhlaví stránky je ve statickém HTML, produktová část se celá načítá JavaScriptemKritické JS-gating
Kategorie~3 500~4 100Část produktového vzorku v sekci přibývá po JavaScriptu; navigace a záhlaví jsou ve statickém HTMLMírné JS-gating
Produktová stránka~6 800~7 200Drobné navigační a UI prvky přibývají po JavaScriptu; název produktu, cena a popis jsou ve statickém HTMLMalý rozdíl - popis v HTML
Editoriální stránka (téma)~3 250~3 600Minimální rozdíl - navigace a drobné prvky; obsah kampaně je ve statickém HTMLMalý rozdíl

Boti, kteří JavaScript nespouštějí (GPTBot, OAI-SearchBot, ChatGPT-User, PerplexityBot, Perplexity-User, ClaudeBot, Claude-User, Claude-SearchBot, CCBot, DuckAssistBot, Amazonbot): čtou statické HTML.

Boti, kteří JavaScript spouštějí (Googlebot, bingbot, Applebot): vidí plný obsah po vykreslení - produkt listy na domovské stránce, stránky značek i kategorie.

Produktové stránky jsou výjimkou: jejich hlavní obsah (název, cena, popis) je ve statickém HTML a crawlery ho vidí.

JS-gating na domovské stránce a stránkách značek = obsah, který ChatGPT, Perplexity a Claude ve svých indexech nemají a nemohou z něj citovat.

Nálezy

Kritické Domovská stránka vydá crawlerům jen 17 % svého obsahu

Ze statického HTML domovské stránky přečte GPTBot, PerplexityBot nebo ClaudeBot pouhých 3 681 znaků - navigaci a prázdnou kostru. Celý produktový výpis s cenami, sekce věrnostních programů a kategoriová nabídka se dokreslují až JavaScriptem; rendered DOM má 21 706 znaků. Domovská stránka Rohlik.cz v indexech ChatGPT, Perplexity ani Claude fakticky neexistuje jako stránka s produkty a cenami. Google AI Mode, Gemini a Copilot tento obsah vidí, protože jejich crawlery JavaScript spouštějí.

Jak to napravit: Zajisti, aby klíčový obsah domovské stránky (alespoň první řada produktů, cenové zvýraznění, kategoriové menu) byl přítomen ve statickém HTML - buď server-side renderingem (SSR), nebo prerendreringem stránky pro crawlery. Playwright-renderovaný HTML doručený GPTBotu a PerplexityBotu by problém vyřešil bez změny frontendu.

Domovská stránka: raw_text_length 3 681 znaků, rendered_text_length 21 706 znaků (js_added obsahuje produkty, ceny, věrnostní programy)

Kritické Stránky značek nemají v HTML žádné produkty

Na stránce značky (testováno na Zyn) obsahuje statické HTML jen 1 882 znaků - záhlaví stránky bez produktů. Všechny produkty dané značky včetně názvů, cen a slevových nabídek se načítají JavaScriptem; rendered DOM má 3 611 znaků. Pro crawlery ChatGPT a Perplexity jsou proto stránky značek prázdné - při hledání produktů konkrétní značky v těchto nástrojích Rohlik.cz nevystupuje jako zdroj.

Jak to napravit: Stejný přístup jako u domovské stránky: SSR nebo prerenderovaná verze stránky značky pro crawlery bez JavaScriptu. Prioritizuj značky s nejvyšší vyhledávaností.

Brand search (Zyn): raw_text_length 1 882 znaků, rendered_text_length 3 611 znaků; js_added obsahuje produkty a ceny

Střední Kategoriové stránky ukazují crawlerům jen část svého sortimentu

Na testovaných kategoriových stránkách (Pekárna a cukrárna, Trvanlivé) je ve statickém HTML přibližně 3 500 znaků, po JavaScriptu kolem 4 100 znaků. Část produktového vzorku v dané sekci přibývá až po spuštění JavaScriptu. Dopad je menší než u domovské stránky, ale i zde ChatGPT nebo Perplexity vidí kategorii spíše jako navigační stránku než jako přehled zboží s cenami.

Jak to napravit: V rámci SSR/prerenderingu kategorií zajisti, aby ve statickém HTML byl vždy přítomen alespoň první produktový řádek s cenami - stačí 6-12 produktů na stránku.

Kategorie pekarna-a-cukrarna: raw 3 513 / rendered 4 294 znaků; kategorie trvanlive: raw 3 477 / rendered 4 035 znaků

Nízké CCBot je zablokován ve robots.txt - Common Crawl neindexuje Rohlik.cz

robots.txt blokuje CCBot na všech 12 testovaných URL. Common Crawl je veřejný archiv webu, který slouží jako tréninkový zdroj pro ChatGPT, Llama, Mistral a desítky dalších jazykových modelů. Blokování CCBotu znamená, že Rohlik.cz do těchto tréninků nevstupuje - modely o webu vědí méně, než by mohly. Jde o záměrné rozhodnutí, které má svoji logiku (ochrana cenových dat), ale stojí za to ho vědomě zvážit.

K zamyšlení: Zvaž, zda blokování CCBotu stále odpovídá záměru. Pokud ano, nech ho. Pokud chceš, aby se Rohlik.cz lépe prosazoval v odpovědích generativních AI nástrojů jako zdroj, CCBot povolení pomůže - buď globálně, nebo jen pro vybrané typy stránek (např. editoriální obsah).

robots.txt: CCBot blokován na indexech 0-11 z 12 testovaných URL

Co dělat dál

Akce seřazené podle dopadu - od největšího.

  1. 1. Zaveď SSR nebo prerenderování pro domovskou stránku Kritické
    Toto je největší dopadová změna. Domovská stránka dnes vydá crawlerům 3 681 znaků místo 21 706. Nastav server, aby pro požadavky identifikující se jako GPTBot, PerplexityBot nebo ClaudeBot vrátil plně vyrenderované HTML - buď přímo přes Next.js/Nuxt SSR, nebo přes prerender middleware (např. Prerender.io, Rendertron). Otestuj výsledek porovnáním curl -A "GPTBot/1.0" https://rohlik.cz/ před a po.
  2. 2. Stejný přístup aplikuj na stránky značek Kritické
    Stránky /hledat/znacka/* mají stejný problém jako domovská stránka - produkty jsou výhradně v JavaScriptu. Zahrň je do stejného SSR/prerender řešení. Prioritizuj značky s největším objemem vyhledávání.
  3. 3. Kategoriové stránky - přidej alespoň první produktový řádek do statického HTML Střední
    Pro kategorie stačí menší zásah: zajisti, aby ve vyrenderovaném HTML bylo vždy 6-12 produktů s cenami. ChatGPT a Perplexity pak kategorii uvidí jako přehled zboží, nikoliv jako prázdnou navigaci.
  4. 4. Ověř skutečný přístup Googlebotu a bingbotu přes webmasterské nástroje Ověření
    HTTP sondy Googlebotu a bingbotu jsou na Cloudflare-frontovaném webu orientační - anti-spoofing pravidla cílí přesně na falešné UA řetězce, zatímco reálné crawlery se identifikují IP adresou. Ověř v Google Search Console (Crawl stats) a Bing Webmaster Tools, že reální crawlery stránky skutečně navštěvují v očekávaném objemu.
  5. 5. Vědomě rozhodni o CCBotu a Google-Extended Strategie
    robots.txt dnes blokuje CCBot (Common Crawl - tréninkový zdroj většiny LLM) a neobsahuje Google-Extended ani Applebot-Extended (implicitní souhlas s trénováním Gemini a Apple Intelligence). Prodiskutuj s týmem, zda tento stav odpovídá záměru - zejména u CCBotu zvažuj kompromis mezi ochranou dat a viditelností v AI nástrojích.