První díl skončil otevřenou otázkou: robots.txt byl u všech patnácti měřených e-shopů identický, ale jestli ho jde v administraci upravit, jsem netvrdil ani jedním směrem.
Odpověď byla v nápovědě Shoptetu. A když jsem pak rozšířil vzorek na 47 e-shopů, našel jsem něco, co jsem nehledal: u čtyř obchodů vedlo přidání vlastních pravidel pro AI roboty k tomu, že pro ně přestalo platit všech 40 zákazů, které platforma nastavuje ve výchozím stavu.
Jestli máte v robots.txt vlastní blok pro GPTBota, ClaudeBota nebo jiného AI robota, zkontrolujte hned teď, jestli neobsahuje jen Allow: /. Pokud ano, výchozí zákazy pro něj přestaly platit a je potřeba je do jeho skupiny dopsat. Proč, vysvětluje zbytek článku.
Co následuje, platí pro obsah souboru robots.txt a pro odpověď homepage na zadané řetězce user-agenta z běžné IP adresy. Ověřené rozsahy adres robotů ani jiné stránky než homepage jsem netestoval.
Co říká nápověda
Shoptet to má popsané v sekci HTML kódy: robots.txt se edituje v Vzhled a Obsah → Editor → HTML kód, sekce má limit 8 192 znaků a — to je důležité — „vložený text se přidá na konec souboru robots.txt“. Tedy přílepek, ne přepis. Výchozích 40 zákazů zůstává.
Tatáž stránka mimochodem popisuje ještě jedno pole, o kterém se moc neví: llms.txt — vlastní text pro AI nástroje. K němu se dostanu níž, protože měření u něj ukázalo nepříjemnou věc.
Vzorek
Potřeboval jsem seznam reálných e-shopů, který jsem nesestavil sám. Vzal jsem 125 e-shopů uvedených ve výsledcích soutěže ShopRoku 2025, u každého otestoval otisk Shoptetu v HTML (cdn.myshoptet.com a objekt Shoptet. v JavaScriptu) a nechal si ty, které na platformě běží.
Vyšlo 31 e-shopů, tedy 25 %. K nim jsem přidal 7 obchodů z prvního dílu a 9 oficiálních šablonových dem. Dohromady 47 e-shopů. Není to reprezentativní náhodný vzorek platformy — soutěž ho vychyluje k větším a aktivnějším obchodům.
Konkrétní domény v článku neuvádím. Princip i čísla dávají smysl bez nich a vystavovat nastavení jednotlivých obchodů mi nepřijde férové.
U každého jsem stáhl robots.txt, /llms.txt a homepage — jednou s běžným prohlížečem a pak postupně s user-agenty pěti AI robotů.
V robots.txt jsem blokaci AI robota nenašel ani jednou
| Zjištění | Počet |
|---|---|
| robots.txt vrátil 200 | 47 z 47 |
| byte-identický s výchozím | 31 z 47 |
| upravený | 16 z 47 |
| obsahuje zmínku o AI robotovi | 6 z 47 |
| blokuje nějakého AI robota | 0 z 47 |
Jediné Disallow: / v celém vzorku patří robotu YoudaoBot, tedy nikomu ze sledované sady.
Úpravy jsou většinou nudné přílepky — někdo přidal dva řádky, jiný pět. Ale ne všechny: jeden e-shop má proti výchozímu souboru o dvě pravidla míň a jedno přepsané, jiný má celý obsah na jediném řádku. Základ tedy není všude stejný a proč, to zvenku nepoznám.
Hlavní nález: vlastní skupina bez zákazů vyřadí tu obecnou
Šest e-shopů má pro AI roboty vlastní pravidla. Všechna povolují. A právě tím vznikl problém.
Dokumentace Googlu k robots.txt to říká jednou větou: u konkrétního robota se použije vždy jen jedna skupina — ta s nejspecifičtějším odpovídajícím user-agentem. Jakmile tedy GPTBot dostane vlastní skupinu, skupina User-agent: * se na něj přestane vztahovat. Nedoplní se. Nahradí se.
Podívejte se, co to udělá se souborem, který má ve výchozím stavu 40 zákazů:
User-agent: *
Disallow: /vyhledavani/
Disallow: /kosik/
Disallow: /login/
Disallow: /*?order
...celkem 40 pravidel
User-agent: GPTBot
Allow: /
Pro všechny roboty platí těch 40 zákazů. Pro GPTBota platí jediné pravidlo: pusť ho všude. Vyhledávání, košík, přihlášení, filtrované a řadicí adresy, záložky s diskusí a hodnocením — všechno, co majitel před roboty schoval, je pro něj zase otevřené.
Rozpad těch šesti e-shopů s vlastními skupinami vypadá takhle:
| Kolik e-shopů | Skupin v souboru | Skupina * | Co mají AI roboti |
|---|---|---|---|
| 1 | 3 | 40× Disallow | 2 roboti, jen Allow: / |
| 3 | 12 | 40× Disallow | 11 robotů, jen Allow: / |
| 1 | 16 | 43× Disallow | 15 robotů, Allow: / + jediné Disallow: /klient/ |
| 1 | 10 | 43× Disallow | ClaudeBot má prázdnou skupinu |
Není to výtka — úmysl byl správný a technicky to není havárie. Filtrované adresy jsou tenké stránky, ne tajemství. Ale je to přesný opak toho, co si majitel myslel, že dělá: chtěl robotům otevřít obsah a otevřel jim navíc adresy, které měl pro roboty dosud zavřené.
Jak povolení zapsat, aby nezpůsobilo tohle
Nejjednodušší odpověď je nepsat ho vůbec. Výchozí Shoptet robots.txt sledované AI roboty nijak nezmiňuje, takže z pohledu pravidel procházení mají stejný základ jako ostatní roboti — Allow: / jim nepřidá nic, co by neměli.
Pokud vlastní skupinu chcete (třeba kvůli přehlednosti), nestačí do ní dát Allow: /. Musíte do ní zkopírovat všechny zákazy, které chcete zachovat. Následující ukázka je zkrácená — výchozí Shoptet soubor jich má 40:
User-agent: GPTBot
Allow: /
Disallow: /vyhledavani/
Disallow: /kosik/
Disallow: /login/
Disallow: /*?order
Trochu se to opisuje, ale robot pak čte skupinu, která odpovídá vašemu záměru.
llms.txt: dvoustovka na všech, obsah na třech
Vedle robots.txt jsem změřil i llms.txt, protože na něj má Shoptet vlastní pole v administraci. Otázka zněla, kolik e-shopů ho vyplnilo — a odpověď je nepříjemnější, než jsem čekal.
| Zjištění | Počet |
|---|---|
/llms.txt vrátí HTTP 200 | 47 z 47 |
tělo je prázdné (content-length: 0) | 44 z 47 |
| má skutečný obsah | 3 z 47 |
Shoptet vystavuje adresu /llms.txt každému e-shopu bez ohledu na to, jestli do pole někdo něco napsal. Nevrací 404 — vrací dvoustovku s prázdným tělem.
Ty tři vyplněné mají mezi 2,8 a 7,9 kB textu. Ani jeden z nich není náhoda — někdo si s tím dal práci.
Filtraci podle user-agenta jsem ve vzorku nenašel
Zbývala otázka, jestli se blokování neděje o patro výš, na serveru. Stáhl jsem homepage s user-agenty GPTBot, OAI-SearchBot, ClaudeBot, PerplexityBot a CCBot.
Všech 47 e-shopů vrátilo 200 každému z nich, stejně jako běžnému prohlížeči. Žádná hlavička X-Robots-Tag se neobjevila ani jednou. Všechny e-shopy hlásí Server: openresty a v naměřených hlavičkách jsem u žádného nenašel známky Cloudflare, takže se na vzorek zřejmě nevztahují ani výchozí blokace AI robotů, které Cloudflare zapnul.
Limit toho testu je podstatný: měřil jsem řetězec user-agenta z běžné IP adresy. Skuteční roboti chodí z ověřitelných rozsahů adres a filtrovat se dá až podle nich. Rate-limiting jsem neměřil vůbec.
Museli jsme opravit vlastní návod
Tenhle nález se týká i nás. Náš návod na robots.txt pro AI ukazoval šablonu s Allow: / pro jednotlivé roboty a doprovázel ji větou, že to má smysl „v případě, kdy máte obecné User-agent: * s blokací“.
Ta věta to má obráceně. Právě když má web neprázdnou skupinu User-agent: *, přidání vlastní skupiny pro robota tu obecnou skupinu pro něj zruší. Tenhle článek našel čtyři e-shopy, kde to takhle dopadlo. Návod jsme opravili a doplnili do něj bezpečný zápis.
Tři chyby, které se dají udělat za minutu
Zkopírovat cizí blok „povolení pro AI“
Nejrychlejší cesta k tomu, aby vám roboti chodili do vyhledávání a košíku. Když už blok kopírujete, projděte si, jestli má vlastní zákazy, nebo jen Allow: /.
Považovat HTTP 200 na /llms.txt za splněno
Na Shoptetu vrací dvoustovku i prázdný soubor. Ve vzorku to byl případ 44 e-shopů ze 47. Kontrolujte obsah.
Myslet si, že robota musíte povolit vlastním blokem
Na Shoptetu to ve výchozím stavu nutné není — obecná skupina mu nic nezakazuje nad rámec toho, co platí pro všechny. Vlastní blok jen s Allow: / naopak obecnou skupinu pro toho robota vypne.
Co si projít na vlastním Shoptetu
- Otevřít /robots.txt a najít vlastní skupiny Pokud tam žádná není, řídí se AI roboti obecnou skupinou. Pokud je, projděte, co v ní stojí.
- U každé vlastní skupiny zkontrolovat zákazy Skupina jen s Allow lomítko bez zopakovaných zákazů způsobí, že pro toho robota přestanou platit zákazy z obecné skupiny.
- Otevřít /llms.txt a podívat se na obsah Dvoustovka nestačí. Prázdný soubor vypadá zvenku stejně jako vyplněný.
- Rozhodnout se vědomě, koho chcete pustit Ve výchozím stavu Shoptet sledované AI roboty neblokuje, jen na ně platí obecné zákazy jako na ostatní. Není to chyba, ale je to rozhodnutí, které za vás udělala platforma.
Kam tenhle článek patří
Druhý díl bloku o Shoptetu a viditelnosti v AI. V dalších navážu datovými poli v administraci, filtry a parametrickými adresami a blogovým modulem. První díl měřil, co Shoptet posílá strojům ve strukturovaných datech.
A pokud si z celého textu máte odnést jedinou kontrolu: otevřete si dnes /robots.txt a ověřte, že případná skupina pro GPTBota, ClaudeBota nebo PerplexityBota neobsahuje jen Allow: /.