Váš robots.txt robí pravý opak toho, čo si myslíte
Pridáte blok pre GPTBot a ten prestane úplne dodržiavať vaše wildcard pravidlá. Najčastejšia chyba v robots.txt potichu dá AI crawlerom presne tie stránky, ktoré ste chceli schovať.

Pridáte blok pre GPTBot a ten prestane úplne dodržiavať vaše wildcard pravidlá. Najčastejšia chyba v robots.txt potichu dá AI crawlerom presne tie stránky, ktoré ste chceli schovať.

Vidím to na viacerých stránkach, než by som si chcel priznať.
Niekto chce povoliť botom GPTBot, ClaudeBot alebo PerplexityBot, aby crawlovali jeho web. Tak pre každého z nich pridá pekný čistý blok Allow: /.
Ich wildcard pravidlá už však zakazujú /admin/, /cart/, /checkout/ a pár ďalších ciest, ktoré nechce mať crawlované. Na prvú to možno znie správne.
Je to však úplne zle.
GPTBot práve dostal povolenie crawlovať /admin/, /cart/ a všetko ostatné, čo ste sa snažili zablokovať.
Toto je najčastejšia chyba v robots.txt, na akú narážam. A je čoraz nebezpečnejšia, pretože ľudia pridávajú pravidlá pre AI crawlery bez toho, aby si overili, ako fungujú.
Tu je presne ten typ robots.txt, o ktorom hovorím:
User-agent: GPTBot
Allow: /
User-agent: *
Disallow: /admin/
Disallow: /search/
Disallow: /cart/
Disallow: /checkout/
Disallow: /private/
Väčšina ľudí to číta ako „povoľ GPTBotu plný prístup a navyše zablokuj tieto cesty pre všetkých".
Takto to ale crawlery nefungujú.
Wildcard blok sa nekombinuje s blokom GPTBot. GPTBot prečíta svoj vlastný blok, uvidí Allow: / bez akýchkoľvek disallow pravidiel a teraz môže voľne crawlovať /admin/, /cart/, /private/ a všetko ostatné.
Tá istá logika platí pre akýkoľvek pomenovaný user-agent. ClaudeBot, PerplexityBot, Bingbot. V momente, keď botovi dáte vlastný blok, ten bot prestane úplne čítať vaše wildcard pravidlá.
Áno, znamená to, že váš dokonale vyladený User-agent: * blok disallow pravidiel je odignorovaný každým definovaným botom v tom istom súbore.
Videl som, ako presne tento vzorec odhalil admin stránky, výsledky interného vyhľadávania a staging adresáre. Majiteľ webu o tom nemal ani tušenia. Wildcard blok pritom vyzeral fajn.
Toto nie je otázka výkladu. RFC 9309, oficiálny štandard pre robots.txt od roku 2022, je jednoznačný:
If no matching group exists, crawlers MUST obey the group with a user-agent line with the "*" value, if present.
Kľúčová je tu fráza „if no matching group exists" (ak neexistuje žiadna zhodná skupina, resp. blok).
Wildcard blok je záloha pre botov, ktorí nemajú vlastný blok. Nie je to základná vrstva, z ktorej definované skupiny dedia.
Dokumentácia Google to hovorí ešte priamejšie:
Only one group is valid for a particular crawler... Other groups are ignored. User agent specific groups and global groups (*) are not combined.
Dva samostatné primárne zdroje. Jeden mechanizmus.
Crawler si vyberie najšpecifickejší blok, ktorý zodpovedá jeho menu. Spustí pravidlá tejto skupiny. Všetko ostatné v súbore ignoruje.
Na poradí nezáleží. Žiadne dedenie.
Takže ak máte blok User-agent: * a blok User-agent: GPTBot, GPTBot doslova nevidí ten wildcard blok. Nevie, že existuje.
Pri tradičnom Googlebote táto chyba zvyčajne odhalí admin stránky a výsledky interného vyhľadávania. Otravné, ale nie katastrofálne. Google si s málo hodnotnými stránkami poradí celkom slušne.
AI crawlery tento filter nemajú.
GPTBot, ClaudeBot a podobné tréningové crawlery obsah jednoducho zoberú a posielajú ho priamo do tréningových datasetov. Len čo vaše URL z interného vyhľadávania skončia v tréningovom datasete, nemáte žiadny reálny spôsob, ako ich odtiaľ dostať.
Pre OpenAI neexistuje žiadny ekvivalent nástroja na odstránenie ako v Search Console.
A ešte horšie je to vtedy, ak ste definované bloky pridali práve preto, aby ste AI crawlery pustili dnu kvôli viditeľnosti. Chceli ste, aby videli vaše blogové príspevky a produktové stránky. Teraz vidia aj váš nákupný košík a ten staging adresár, na ktorý ste zabudli ešte pred troma rokmi.
Auditoval som weby, kde táto jediná chyba odhalila AI botom tisíce interných URL.
Auditovacie nástroje, ktoré väčšina ľudí používa, to neoznačia. Syntax je technicky platná. Dostanete zelenú fajku na robots.txt, ktorý pritom potichu dovoluje AI botom crawlovať všetko.
Majte na pamäti, že zoznam AI crawlerov neustále rastie. GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot, Claude-User, PerplexityBot, Google-Extended, Applebot-Extended, Bytespider, CCBot a ďalší.
Každé jedno z týchto mien, len čo ho zapíšete do svojho súboru, neuvidí už váš wildcard blok.
Prvá otázka: potrebujete vôbec pre toho bota odlišné pravidlá?
Ak má GPTBot dodržiavať rovnaké pravidlá ako všetci ostatní, žiadny extra blok nepotrebujete. Zmažte ho. Wildcard si GPTBot ošetrí automaticky.
User-agent: *
Disallow: /admin/
Disallow: /search/
Disallow: /cart/
Disallow: /checkout/
Disallow: /private/
Toto je kompletný robots.txt, keď každý bot, či už AI alebo iný, dodržiava rovnaké pravidlá.
Blok pre konkrétneho bota potrebujete len vtedy, keď chcete pre toho konkrétneho bota odlišné správanie. Zablokovať ClaudeBot na celom webe, no ostatným umožniť normálne crawlovať. Zablokovať GPTBot vo vašej dokumentácii, ale Googlu ju aj naďalej nechať indexovať pre vyhľadávanie. A podobne.
V tom prípade musí byť blok pre konkrétneho bota sebestačný. Každú cestu, ktorú chcete vynútiť, treba zopakovať priamo v ňom.
User-agent: ClaudeBot
Disallow: /
User-agent: GPTBot
Disallow: /admin/
Disallow: /search/
Disallow: /cart/
Disallow: /checkout/
Disallow: /private/
Disallow: /docs/
User-agent: *
Disallow: /admin/
Disallow: /search/
Disallow: /cart/
Disallow: /checkout/
Disallow: /private/
Áno, je to repetitívne. Áno, škáluje sa to zle. V robots.txt neexistuje žiadny mechanizmus dedenia.
Je to známe obmedzenie tohto štandardu.
Ak udržiavate dlhý zoznam disallow pravidiel naprieč mnohými botmi, generujte súbor zo šablóny namiesto ručného editovania. Jediný zdroj pravdy pre cesty zakaždým víťazí nad copy-paste.
robots.txt vyzerá ako jeden z najjednoduchších súborov v rámci SEO. Obyčajný text. Pár kľúčových slov. Predsa sa to nedá pokaziť.
Ale dá. A vidím to neustále. Najmä teraz, keď sa všetci ponáhľajú pridávať pravidlá pre AI crawlery bez toho, aby si overili, ako fungujú spolu s už existujúcimi pravidlami.
Tá chyba nie je preklep. Je to nepochopenie toho, ako špecifikácia naozaj funguje.
Bloky nededia z Wildcard bloku. Bloky pre konkrétnych botov ich úplne prepíšu. Každú cestu, ktorú chcete zablokovať, treba explicitne uviesť pre každého bota, ktorého ste definovali.
Toto nie je best practice pre robots.txt. Toto je špecifikácia robots.txt.
Ak váš súbor obsahuje blok User-agent: * aj akéhokoľvek ďalšieho bota, ešte dnes ho zauditujte. Existuje reálna šanca, že boti, ktorých ste chceli mať pod kontrolou, behajú kade-tade.

Konzultant technického SEO a optimalizácie rýchlosti stránok
Viac ako 10 rokov skúseností s webovými stránkami mi ukázalo, že technická stránka webu rozhoduje o jeho úspechu. Pomáham firmám vyťažiť maximum z ich webových stránok prostredníctvom technického SEO a optimalizácie rýchlosti.
Každé dva týždne posielam praktické tipy na zlepšenie technického SEO a výkonu webovej stránky. Žiadne teórie, iba overené postupy s preukázateľnými výsledkami.



Žiadny spam. Odhlásenie kedykoľvek jedným klikom.
Prihlásením súhlasím so Zásady ochrany osobných údajov a Podmienky používania.
Získajte bezplatné tipy z oblasti technického SEO a rýchlosti webu