AI-crawlerek a robots.txt-ben: melyiket engedd, melyiket tiltsd
A robots.txt-ben nem két, hanem három bot-osztály van — és a harmadikat a legtöbb tiltás egyáltalán nem éri el.
Frissítve ·
A „tiltsam vagy engedjem az AI-t?” kérdés azért nehéz, mert rossz a felbontása. A gyakorlatban nem AI-botok vannak és nem-AI-botok, hanem legalább három, üzletileg különböző osztály: a tanító botok, amelyek a jövő modelljeinek a memóriájába visznek be; a retrieval botok, amelyek a MAI válaszokhoz keresnek forrást; és a felhasználó által indított lekérések, amelyek akkor jönnek, amikor egy ember konkrétan rákérdez valamire. Ha mindhármat ugyanazzal a mozdulattal tiltod, akkor abból az egyből is kizárod magad, amelyik ma hozhatna hozzád embert. Ez a recept végigviszi a döntést: mi van a listán, mit jelent a három forgatókönyv, hogyan ellenőrzöd, hogy a szabályod egyáltalán illeszkedik-e valamire — és a végén két saját, dátumozott hibánk, amiből a legtöbbet lehet tanulni.
A user-agent lista
Csak olyan bot van a listán, amelyiket a szolgáltató saját dokumentációja nevesít; a forrás-URL-ek lent, számozva. Amit nem tudtunk hivatalos forrással igazolni, az kimaradt — egy hallomásból összeszedett bot-lista pontosan azt a hamis biztonságérzetet adja, ami ellen ez a recept szól.
| User-agent | Szolgáltató | Osztály | Amit tudni kell róla |
|---|---|---|---|
| GPTBot | OpenAI | tanító | Alapmodellek tanításához gyűjt. Ez az, amit a legtöbben tiltani akarnak. |
| OAI-SearchBot | OpenAI | retrieval | A ChatGPT kereső funkcióit szolgálja ki. Tiltása a válaszokból vesz ki, nem a tanításból. |
| ChatGPT-User | OpenAI | felhasználói | Akkor jön, ha egy ember konkrétan kéri. A dokumentáció szerint kieshet a robots.txt hatálya alól. |
| ClaudeBot | Anthropic | tanító | Tanításhoz gyűjthető tartalmat szed össze. |
| Claude-SearchBot | Anthropic | retrieval | A keresési találatok minőségét javítja. |
| Claude-User | Anthropic | felhasználói | Egy felhasználó kérdésére néz meg oldalakat. |
| PerplexityBot | Perplexity | retrieval | Indexel és linkel. A dokumentáció szerint NEM alapmodell-tanításhoz gyűjt. |
| Perplexity-User | Perplexity | felhasználói | A dokumentáció kimondja: általában figyelmen kívül hagyja a robots.txt-et. |
| Google-Extended | tanító | Csak a felhasználást vezérli. Tiltása NEM érinti a Google Search indexelést és rangsorolást. | |
| Applebot-Extended | Apple | tanító | Nem crawlerezik: azt vezérli, mire használható az Applebot adata. Tiltva is bekerülhetsz a találatokba. |
| CCBot | Common Crawl | nyílt korpusz | Nyílt archívum, sok kisebb modell tanító bemenete. Van külön opt-out regiszter is. |
| Meta-ExternalAgent | Meta | tanító | Alapmodell-tanításhoz és termékfejlesztéshez gyűjt. |
Utolsó ellenőrzés ·
Az eljárás
Döntsd el osztályonként, ne összevontan
Írd le három sorban, mit akarsz: bekerüljek-e a jövő modelljeinek a tudásába (tanító); jelenjek-e meg a mai AI-válaszokban forrásként (retrieval); nézhessen-e meg egy oldalt az AI, ha a felhasználó kifejezetten kéri (felhasználói). A három válasz nem szokott azonos lenni. Egy induló márkánál például a tanító hozzáférés a hosszú távú befektetés, a retrieval pedig a rövid távú forgalom — a kettő kizárása két külön veszteség, két külön időtávon.
Írd meg a blokkokat útvonal-explicit módon
A robots.txt-ben a csillag ÁTLÉPI a perjelet. Ez a leggyakoribb, csendes hiba: a `Disallow: /*/demo` nemcsak a `/hu/demo`-t fogja meg, hanem a `/hu/termekek/demo`-t is. Nálunk pontosan ez történt: egy `/*/citation-tracker` alakú kizárás négy valós termékoldalt zárt el minden AI-crawler elől — olyan lapokat, amelyek kifejezetten azért készültek, hogy az AI beolvassa őket. Írd ki a locale-t és a teljes útvonalat, vagy zárd le a mintát `$`-ral. Ha egy szabálynak több dolgot kell fognia, írj több sort; a rövidség itt nem érték.
Kösd a szabályt a route-hoz, ne az útvonal alakjához
A robots.txt statikus fájl, tehát a benne szereplő útvonal egy MÁSOLAT arról, ami a kódban van. Ha átnevezed az oldalt, a másolat nem követi: a szabály ott marad, csak már semmire nem illeszkedik — és ami semmire nem illeszkedik, az semmit nem jelez. A tiltás review-ban jelen lévőnek látszik, a diff tiszta, a tesztek zöldek, az átnevezett lap meg kimegy mindenkinek. Ezt is magunkon mértük. A védekezés egy ellenőrzés, ami a robots.txt útvonalait összeveti a ténylegesen létező route-okkal, és bukik, ha egy tiltott útvonal mögött nincs oldal.
Ellenőrizd, hogy a szabály illeszkedik-e egyáltalán
Ne szemre nézd. Vegyél egy robots.txt-értelmezőt — a legtöbb nyelvhez van, és a Google is közzétette a sajátja logikáját —, és futtass rá két kérdést minden fontos URL-re: eléri-e a Googlebot, és eléri-e az a bot, amelyiket tiltani akartad. A kettőt külön kell kérdezni, mert a leggyakoribb hiba nem az, hogy nem tiltottál, hanem hogy TÖBBET tiltottál, mint hitted. A leghosszabb illeszkedő szabály nyer, és az `Allow` ütközés esetén erősebb — ezt fejben nehéz kiszámolni, géppel triviális.
Nézd meg a szerverlogból, ki jött tényleg
A robots.txt szándéknyilatkozat; a log tény. Szűrj rá a user-agent mezőre, és nézd meg, mely botok kérnek le mit, milyen gyakran, és milyen válaszkódot kapnak. Két dolog derül ki belőle, amit máshonnan nem tudsz meg: hogy a tiltásod érvényesül-e a gyakorlatban, és hogy jön-e olyan bot, amelyik a nevével visszaél. A név ugyanis szabadon hamisítható; ha egy bot valódiságára akarsz építeni, a szolgáltató által közzétett IP-tartomány vagy fordított DNS az egyetlen ellenőrzés, ami tényleg bizonyít.
Vedd tudomásul, mit nem tud a robots.txt
A felhasználó által indított lekérések nagy részét a robots.txt nem fogja meg — a Perplexity dokumentációja ezt ki is mondja a saját fetcheréről, és az OpenAI is jelzi, hogy a ChatGPT-User kieshet a hatálya alól. Ez nem szabályszegés, hanem szándékolt megkülönböztetés: a felhasználó kérése nem crawl. Ha egy tartalmat tényleg nem szabad kiadni, annak a helye a hitelesítés mögött van, nem a robots.txt-ben. A robots.txt az automatizált gyűjtésre való, és csak azokra, akik betartják.
Gyakori kérdések
- Hogyan tiltom le a GPTBotot?
- Egy `User-agent: GPTBot` csoport, alatta `Disallow: /`. Ez a tanító hozzáférést zárja. Fontos, hogy ez nem érinti a ChatGPT keresési felületét: azt az OAI-SearchBot szolgálja ki, külön user-agenttel. Ha mindkettőt tiltod, a mai válaszokból és a jövő modelljeinek a tudásából is kimaradsz — ezt érdemes külön eldönteni, nem egy mozdulattal.
- Ha tiltom a Google-Extendedet, kiesem a Google keresőből?
- Nem. A Google dokumentációja kifejezetten kimondja, hogy a Google-Extended nem befolyásolja a Google Search-be kerülést, és nem rangsorolási jel. Ugyanez a szerkezet az Apple-nél: az Applebot-Extended nem crawlerezik, csak azt vezérli, hogy az Applebot már összegyűjtött adata felhasználható-e generatív modellek tanítására — az oldalad ettől még megjelenhet a találatok között.
- Elég a noindex, vagy kell a robots.txt-tiltás is?
- Két különböző dolgot csinálnak, és nem helyettesítik egymást. A `noindex` a keresőindexnek szól: kérés, hogy ne jelenjen meg a lap a találatok között. Egy tanító gyűjtésnek viszont semmit nem jelent — az nem indexel, hanem szöveget olvas be. Ha egy oldalt a modellek tanulásából akarsz kihagyni, ahhoz a robots.txt-tiltás kell; ha a találati listából, ahhoz a noindex. Fordítva egyik sem működik.
- Miért nem elég a Disallow, ha a lap úgyis noindex?
- Mert a kettő együtt önmagát verheti. Ha egy oldalt letiltasz a robots.txt-ben, a kereső nem tölti le — így a `noindex` metát sem OLVASSA EL. Az ilyen lap tipikusan „indexelve, bár blokkolva” állapotban ragad be. Ha a cél a keresőből való kivétel, engedd a bejárást és tedd rá a noindexet; ha a cél a tanításból való kimaradás, akkor a Disallow a helyes eszköz — de akkor számolj azzal, hogy a lap canonicalját vagy egyéb jelzését sem olvassa el senki.
- Honnan tudom, hogy egy bot tényleg az, aminek mondja magát?
- A user-agent név szabad szöveg, bárki beírhatja. Ha a valódiságra akarsz építeni — például rátakarást vagy naplózást —, a szolgáltató által közzétett IP-listák, illetve a fordított és visszafelé ellenőrzött DNS az egyetlen módszer, ami bizonyít. A Common Crawl például kifejezetten figyelmeztet arra, hogy vannak magukat CCBotnak kiadó gyűjtők. A robots.txt-hez viszont mindez nem kell: az a névre szól, és aki betartja, az a saját nevét használja.
Források
- OpenAI — Bots (GPTBot, OAI-SearchBot, ChatGPT-User, OAI-AdsBot). https://developers.openai.com/api/docs/bots
- Anthropic — Does Anthropic crawl data from the web? https://support.claude.com/en/articles/8896518-does-anthropic-crawl-data-from-the-web-and-how-can-site-owners-block-the-crawler
- Perplexity — Perplexity Crawlers. https://docs.perplexity.ai/docs/resources/perplexity-crawlers
- Google — Google crawlers (Google-Extended). https://developers.google.com/search/docs/crawling-indexing/google-common-crawlers
- Apple — About Applebot. https://support.apple.com/en-us/119829
- Common Crawl — CCBot. https://commoncrawl.org/ccbot
- Meta — Web crawlers. https://developers.facebook.com/docs/sharing/webmasters/web-crawlers/