Naivní sken napočítá 52 llms.txt. Neprázdné jsou tři
Chtěl jsem vědět, kolik českých webů na /llms.txt něco vrací — a kolik z toho je doopravdy neprázdný obsah. Zeptal jsem se osmdesáti a odpověď záleží na tom, jak pečlivě se ptáte:
| Jak testuju | Kolik z 80 |
|---|---|
/llms.txt vrací kód 200 | 52 |
| …a odpověď není HTML stránka | 47 |
| …a soubor není prázdný | 3 |
Mezi prvním a posledním řádkem je sedmnáctinásobek. A obě ztráty mají úplně jinou příčinu.
Hned na začátku k tomu patří upřesnění, které si článek nese celý: prázdný soubor pořád existuje. U 44 e-shopů /llms.txt doopravdy je, jen v něm nic není. Nepočítám tedy „kdo soubor má“, ale „kdo v něm má obsah“ — a ten rozdíl je tady celá pointa.
Jak se to dá změřit
Každé z osmdesáti domén jsem poslal dva požadavky:
- Cestu, která nemůže existovat —
/aiseo-neexistuje-<otisk domény>.txt. Správná odpověď je 404. /llms.txt— soubor, o kterém se v souvislosti s AI mluví nejvíc.
U obou jsem si uložil stavový kód, hlavičku Content-Type a délku těla; z těla jsem četl jen začátek, protože mi šlo o rozlišení „HTML fallback / prázdný / neprázdný“, ne o posouzení kvality obsahu. Vzorek: 33 zpravodajských a oborových webů a 47 e-shopů, odečet 11. srpna 2026. Odpověděly všechny.
První požadavek je tam schválně. Bez něj nevíte, jestli váš test vůbec něco měří — když web vrací 200 na cokoli, je i „nalezený“ llms.txt bezcenný.
Nález 1: pět webů odpoví 200 na soubor, který neexistuje
| Odpověď na neexistující soubor | Počet z 80 |
|---|---|
| 404 (správně) | 74 |
| 200 | 5 |
| 406 | 1 |
Všech pět odpovědí s kódem 200 mělo Content-Type: text/html a tělo začínalo jako HTML stránka. Server nic nenašel, ale odpověděl, jako by našel. Pro účely tohohle článku je beru jako soft 404: na prokazatelně neexistující cestu vrací 200 a běžnou stránku.
Zajímavé je rozložení: všech pět je mezi médii, mezi 47 e-shopy se to nestalo ani jednou.
Nález 2: dvě různé poruchy, ne jedna
Když se ty výsledky rozdělí, ukáže se, že každá skupina selhává jinak:
| Skupina | N | soft 404 | /llms.txt = 200 | z toho HTML | z toho prázdné | s obsahem |
|---|---|---|---|---|---|---|
| Média | 33 | 5 | 5 | 5 | 0 | 0 |
| E-shopy (jedna platforma) | 47 | 0 | 47 | 0 | 44 | 3 |
| Celkem | 80 | 5 | 52 | 5 | 44 | 3 |
U médií je všech pět „nálezů“ jenom ten soft 404. U žádného z 33 měřených médií jsem nenašel neprázdný textový /llms.txt — přesto by je hrubý sken napočítal pět.
U e-shopů je to opačně. Soubor tam je doopravdy, servíruje ho platforma všem — jenže u 44 ze 47 je prázdný. Obsah do něj doplnili tři provozovatelé.
Jinými slovy: 52 odpovědí s kódem 200 se rozpadá na 5 HTML fallbacků a 47 textových odpovědí; z těch 47 je 44 prázdných a 3 neprázdné.
Těch 44 prázdných souborů není 44 samostatných rozhodnutí. Je to jedno výchozí nastavení platformy, na které jsem narazil už při měření robots.txt na Shoptetu. Uvádím to takhle schválně: kdyby se to počítalo jako „44 e-shopů si pořídilo llms.txt“, bylo by to zavádějící.
Co z toho plyne pro čísla o adopci
Tenhle článek nehodnotí konkrétní průzkumy adopce llms.txt — metodiku jejich autorů neznám a netvrdím o nich nic. Ukazuje jen, že sken opřený o samotný stavový kód může vést k výrazně vyššímu číslu než sken, který se dívá na obsah.
A hlavně: v mém vzorku ten rozdíl nafoukla jedna platforma. 44 ze 47 e-shopů má prázdný soubor proto, že ho tak servíruje platforma. Není to odhad českého webu obecně, je to ukázka, jak daleko může číslo ujet, když se sejde soft 404 a výchozí nastavení platformy.
A pro pořádek kontext, který k tématu patří: Google ve své dokumentaci k AI uvádí, že tyhle soubory ignoruje — „Doing so will neither harm nor help your site’s visibility or rankings in Google Search, as Google Search ignores them“ (stránka naposledy aktualizovaná 10. 7. 2026 — různé přehledy třetích stran uvádějí jiné datum, beru to ze stránky samotné). Jestli llms.txt dělat, tenhle článek neřeší. Řeší, jestli se dá věřit tvrzení, že ho někdo má.
Jak testovat existenci souboru pořádně
Čtyři kroky, než uvěříte, že soubor existuje
- Nejdřív si ověřte samotný test vyžádejte si náhodnou cestu, která nemůže existovat. Když vrátí 200, testy na tom webu nefungují.
- Přečtěte Content-Type u text/html je to skoro jistě běžná stránka, ne váš soubor.
- Zkontrolujte délku těla nula bajtů je pořád platná odpověď — a k ničemu.
- Podívejte se na začátek obsahu u llms.txt čekáte nadpis a odkazy, ne <!doctype html>.
V příkazové řádce je to krátká sekvence ve dvou krocích:
curl -sS -o /dev/null -w '%{http_code}\n' https://example.com/nahodny-nazev-souboru.txt
curl -sS -D hlavicky.txt -o telo.txt https://example.com/llms.txt
grep -i '^content-type:' hlavicky.txt
wc -c < telo.txt
head -c 200 telo.txt
První příkaz musí vypsat 404; když vypíše 200, samotný stavový kód vám na tom webu nic neřekne. Zbytek stáhne soubor a ukáže postupně typ obsahu, skutečnou délku těla a jeho začátek.
Schválně tam není curl -I. To posílá požadavek HEAD, na který se server může chovat jinak než na běžné stažení — a délku těla vám stejně nezměří.
Netýká se to jen llms.txt
Stejný typ chyby může nastat i jinde, kde se ptáte „existuje ten soubor?“. Tohle už jsem neměřil, je to obecný technický princip:
- ověřovací soubory pro Search Console, Bing Webmaster Tools nebo jiné služby,
- klíč pro IndexNow, který musí být veřejně dostupný a obsahovat přesně ten řetězec,
ads.txta podobné deklarace,- sitemapy, kde web může vrátit 200 a poslat něco jiného, než čekáte.
U klíče IndexNow je to nejcitelnější: soubor „je“ (200), ale obsahuje HTML, takže ověření selže a vy nevíte proč. Souvislosti rozebírá návod na IndexNow a Bing.
Limity tohohle měření
Jeden odečet, 11. srpna 2026. Vzorky nejsou náhodné: 33 médií je ruční seznam, 47 e-shopů běží na jedné platformě — proto výsledky uvádím odděleně a prázdný soubor přisuzuji platformě, ne českému webu obecně.
Četl jsem jen první 4 kB těla. To stačí na rozlišení „prázdný / neprázdný“, ne na posouzení, jestli je obsah dobrý.
A netestoval jsem, jestli kterýkoli AI systém tyhle soubory čte. Tenhle článek o tom nic netvrdí.
Tři chyby, které se u toho nabízejí
Považovat HTTP 200 za doklad, že soubor existuje
Znamená jen, že server něco vrátil. U pěti z osmdesáti webů to bylo něco úplně jiného.
Spokojit se s kontrolou Content-Type
Prázdný soubor je korektní text/plain a projde. V mém vzorku jich bylo 44.
Vydávat výchozí nastavení platformy za rozhodnutí majitelů
Když soubor servíruje platforma všem, není to údaj o tom, kolik lidí si ho pořídilo.
Shrnutí
Podle stavového kódu vrátí /llms.txt osmdesáti webů 52 z nich. Po vyloučení HTML fallbacků zbyde 47 textových souborů, které web opravdu vrací a neprázdný obsah mají tři. Která z těch odpovědí je „správná“, záleží na tom, na co se ptáte — jen je potřeba vědět, kterou z nich zrovna měříte.
Dvě příčiny toho rozdílu jsou různé a obě běžné — server, který vrací 200 na cokoli, a platforma, která rozdá prázdný soubor. První odhalíte hlavičkou, druhou až délkou.
Praktické pravidlo je jednoduché: než začnete z odpovědi 200 vyvozovat, že soubor opravdu je, zeptejte se webu na soubor, o kterém víte, že neexistuje.
Co o robotech a jejich ověřování plyne z podobných měření, shrnuje ověřování AI robotů. Co dnes v llms.txt vůbec má být, rozebírá návod na llms.txt.