Jak zablokować boty AI w robots.txt (i czy warto to robić)
Aby zablokować boty AI w robots.txt, dodaj jedną grupę z listą botów i regułą Disallow: /. Najczęstszy wariant to zablokowanie botów zbierających dane do trenowania modeli (GPTBot, ClaudeBot, CCBot i inne, a także tokeny Google-Extended i Applebot-Extended) przy pozostawieniu botów wyszukiwania AI (OAI-SearchBot, Claude-SearchBot, PerplexityBot): treść nie trafia wtedy do przyszłych zbiorów treningowych, a linki do strony w odpowiedziach ChatGPT, Claude i Perplexity zostają. Na wyszukiwarkę Google taka blokada nie wpływa. Pamiętaj jednak, że robots.txt to prośba, którą respektują uczciwe boty, a nie zabezpieczenie techniczne.
Poniżej: jakie są rodzaje botów AI, gotowe bloki dla trzech scenariuszy, błąd, przez który „dozwolone” boty dostają dostęp do panelu admina, oraz jak sprawdzić efekt.
Trzy grupy botów AI
Pod hasłem „bot AI” kryją się bardzo różne roboty. Decyzję „blokować czy nie” trzeba podjąć osobno dla każdej grupy:
| Grupa | Tokeny w robots.txt | Co się stanie po zablokowaniu |
|---|---|---|
| Trenowanie modeli | GPTBot (OpenAI), ClaudeBot (Anthropic), CCBot (Common Crawl), meta-externalagent (Meta), Bytespider (ByteDance), Amazonbot (Amazon), tokeny Google-Extended i Applebot-Extended | Treść nie powinna trafiać do przyszłych zbiorów treningowych. Bez wpływu na wyszukiwarkę Google i Bing |
| Wyszukiwanie AI | OAI-SearchBot (OpenAI), Claude-SearchBot (Anthropic), PerplexityBot (Perplexity) | Strona przestanie pojawiać się jako link w odpowiedziach ChatGPT Search, Claude i Perplexity — to bezpośrednia utrata wejść |
| Pobrania na prośbę użytkownika | ChatGPT-User, Claude-User, Perplexity-User | Asystent nie otworzy strony, gdy użytkownik sam wklei link albo poprosi o znalezienie odpowiedzi |
Ten podział pochodzi z dokumentacji operatorów. OpenAI pisze, że ustawienia dla GPTBot i OAI-SearchBot są niezależne: można zezwolić na wyszukiwanie i zabronić trenowania. Anthropic opisuje swoje trzy boty tak samo. Według dokumentacji Perplexity PerplexityBot nie zbiera treści do trenowania modeli bazowych.
Przy trzeciej grupie jest zastrzeżenie. OpenAI uprzedza, że reguły robots.txt mogą nie dotyczyć ChatGPT-User, bo żądanie inicjuje człowiek. Perplexity pisze, że Perplexity-User na ogół ignoruje robots.txt. Anthropic z kolei pozwala sterować Claude-User przez robots.txt.
Google-Extended i Applebot-Extended to tokeny, a nie boty
Te dwie nazwy często bierze się za crawlery, choć żadna z nich nie pobiera stron.
- Google-Extended według dokumentacji Google nie ma własnego User-Agenta: strony pobierają zwykłe roboty Google, a token w robots.txt mówi tylko, czy treść można wykorzystać do trenowania przyszłych modeli Gemini i do groundingu (dostarczania aktualnych treści do odpowiedzi) w aplikacjach Gemini i Vertex AI. Google pisze wprost, że Google-Extended nie wpływa na obecność strony w wyszukiwarce Google i nie jest czynnikiem rankingowym.
- Applebot-Extended według dokumentacji Apple również niczego nie skanuje. Decyduje, czy dane zebrane przez zwykłego Applebota mogą służyć do trenowania modeli bazowych Apple. Strony zablokowane dla Applebot-Extended mogą nadal pojawiać się w wyszukiwaniu Apple — w Siri, Spotlight i Safari.
Wniosek praktyczny: tych dwóch „botów” nie da się zablokować na serwerze po User-Agencie, bo żadne żądanie go nie zawiera. A blokada Googlebota czy Applebota uderzy już w widoczność w wyszukiwarce.
Gotowe bloki robots.txt
Scenariusz 1. Zablokuj trenowanie, zostaw wyszukiwanie AI
Taki wynik daje preset „Zablokuj trenowanie AI, zostaw wyszukiwanie AI” w naszym generatorze robots.txt. Boty wyszukiwania nie są wymienione, więc stosują ogólne reguły dla *:
User-agent: GPTBot
User-agent: ClaudeBot
User-agent: Google-Extended
User-agent: Applebot-Extended
User-agent: CCBot
User-agent: meta-externalagent
User-agent: Bytespider
User-agent: Amazonbot
Disallow: /
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Sitemap: https://example.com/sitemap.xml
Kilka kolejnych linii User-agent tworzy jedną grupę — krócej i trudniej o pomyłkę. Pamiętaj, że Amazon używa Amazonbota nie tylko do trenowania modeli, ale i na potrzeby własnych usług.
Scenariusz 2. Zablokuj wszystkie boty AI
User-agent: GPTBot
User-agent: ClaudeBot
User-agent: Google-Extended
User-agent: Applebot-Extended
User-agent: CCBot
User-agent: meta-externalagent
User-agent: Bytespider
User-agent: Amazonbot
User-agent: OAI-SearchBot
User-agent: Claude-SearchBot
User-agent: PerplexityBot
User-agent: ChatGPT-User
User-agent: Claude-User
User-agent: Perplexity-User
Disallow: /
Ceną jest zniknięcie linków do strony z odpowiedzi wyszukiwania AI. Dla strony firmowej zwykle się to nie opłaca; dla zamkniętej bazy wiedzy albo płatnych treści — może.
Scenariusz 3. Zezwól na wszystko
Nie dodawaj niczego: boty AI, których nie ma w pliku, stosują grupę User-agent: *. Osobna grupa z Allow: / jest nie tylko zbędna, ale i szkodliwa — o tym w następnej sekcji.
Scenariusz 4. Zablokuj botom AI tylko część strony
Na przykład płatne materiały i pliki PDF. Do grupy botów AI trzeba skopiować wszystkie ogólne reguły, inaczej przestaną one obowiązywać te boty:
User-agent: GPTBot
User-agent: ClaudeBot
Disallow: /premium/
Disallow: /*.pdf$
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Dlaczego nie warto dodawać osobnej grupy Allow dla botów AI
Zasada, która psuje większość ręcznie pisanych plików: bot wykonuje tylko jedną grupę — najbardziej szczegółową dla swojej nazwy. Tak opisują to specyfikacja Google i RFC 9309: jeśli bot ma własną grupę, reguł dla * nie czyta. Spójrz na plik:
User-agent: *
Disallow: /wp-admin/
Disallow: /cart/
User-agent: OAI-SearchBot
Allow: /
Autor chciał „na pewno zezwolić” wyszukiwarce ChatGPT, a w efekcie OAI-SearchBot dostał dostęp do /wp-admin/ i /cart/: znalazł własną grupę, więc zakazy z * już go nie dotyczą. Dlatego nasz generator nie wypisuje dozwolonych botów AI osobną grupą. Jeśli bot naprawdę potrzebuje własnej grupy, powtórz w niej wszystkie ogólne zakazy.
Wewnątrz grupy działa druga zasada: wygrywa najdłuższa pasująca ścieżka, a przy remisie Google wybiera mniej restrykcyjną regułę, czyli Allow. Więcej o składni i typowych pułapkach — w artykule o sprawdzaniu robots.txt.
Czy w ogóle blokować boty AI
Uniwersalnej odpowiedzi nie ma, ale logika jest jasna:
- Blokada trenowania ma sens, gdy treść jest Twoim produktem: płatne materiały, autorskie teksty, bazy danych. Działa na przyszłość — Anthropic pisze na przykład, że z trenowania wyłączane są przyszłe materiały strony. Już zebranych danych robots.txt nie wycofa.
- Blokada wyszukiwania AI rzadko się opłaca stronom żyjącym z ruchu: odpowiedzi ChatGPT Search, Claude i Perplexity podają źródła, a to są wejścia.
- Google-Extended to osobna decyzja. Nie wpływa na wyszukiwarkę Google, ale według dokumentacji Google steruje też groundingiem w aplikacjach Gemini, więc blokada może zmniejszyć obecność strony w odpowiedziach Gemini.
- Obciążenie serwera. Jeśli boty AI wyraźnie obciążają słaby hosting, to powód, by je ograniczyć. Anthropic obsługuje niestandardową dyrektywę
Crawl-delay; Google jej nie obsługuje. Jak obciążenie serwera wiąże się ze skanowaniem przez Googlebota — w artykule o budżecie crawl.
robots.txt to prośba, a nie zamek
Plik respektują uczciwe boty; technicznie nic nie przeszkadza innym go zignorować albo podszyć się pod cudzy User-Agent. Pisze o tym wprost także Cloudflare: przestrzeganie robots.txt jest dobrowolne. Jeśli boty trzeba naprawdę zatrzymać:
- Blokada na serwerze. Na przykład w nginx po User-Agencie (działa tylko dla botów z własnym User-Agentem — nie dla Google-Extended i Applebot-Extended):
if ($http_user_agent ~* "(GPTBot|ClaudeBot|CCBot|Bytespider|meta-externalagent)") {
return 403;
}
- Weryfikacja po IP. User-Agenta łatwo podrobić. OpenAI, Anthropic, Perplexity i Apple publikują adresy lub zakresy IP swoich botów — po nich odróżnisz prawdziwego bota od podróbki.
- CDN. Cloudflare ma zarządzany robots.txt dla crawlerów AI (według dokumentacji — we wszystkich planach) i osobną, wymuszoną blokadę botów AI (AI Crawl Control). Warunki konkretnego planu sprawdź w ich dokumentacji.
Jedno zastrzeżenie od Anthropic: jeśli zablokujesz ich adresy IP, bot może nie odczytać robots.txt i rezygnacja ze skanowania nie zostanie niezawodnie uwzględniona. Dlatego robots.txt warto skonfigurować zawsze, nawet przy blokadzie na serwerze.
llms.txt to coś innego
Plik /llms.txt ani nie blokuje, ani nie zezwala na dostęp. To proponowany format krótkiej mapy strony w Markdownie dla modeli językowych: czym jest strona i które podstrony są najważniejsze. Nie zablokujesz nim AI, ale możesz pomóc AI dobrze zrozumieć stronę. Szczegóły w artykule co to jest llms.txt, a plik utworzysz w generatorze llms.txt.
Jak sprawdzić efekt
- Otwórz
https://twoja-strona/robots.txtw przeglądarce i upewnij się, że działa nowa wersja (CMS, wtyczki i CDN czasem serwują własny plik). - Przepuść plik przez analizę robots.txt: pokaże wszystkie grupy User-agent, reguły Allow i Disallow, linie Sitemap i ostrzeże np. przed
Disallow: /dla wszystkich botów. - Sprawdź stronę w AI Visibility Checker. Analizuje robots.txt zgodnie z RFC 9309 dla 14 botów i tokenów AI (kto ma dostęp, kto jest zablokowany), sprawdza obecność
/llms.txti meta robots strony głównej oraz wysyła próbne żądanie strony głównej z User-Agentem GPTBot. Próbne żądanie to tylko wskazówka: prawdziwy GPTBot przychodzi z adresów IP OpenAI, a CDN może traktować go inaczej. Sekcja dostępu botów jest bezpłatna; odpowiedzi wyszukiwania AI na Twoje pytania liczą się do dziennego limitu (10 świeżych sprawdzeń dziennie bez konta, trzy razy więcej z kontem, bez limitu w Pro). - Po kilku dniach zajrzyj do logów serwera: jakie User-Agenty nadal przychodzą i z jakich IP. Zmiany nie działają od razu — OpenAI pisze na przykład, że w wyszukiwaniu może to potrwać około 24 godzin.
Najczęstsze błędy
- Osobna grupa
Allow: /dla „dobrych” botów AI — otwiera im wszystko, co zablokowano dla*. - Zablokowanie wyszukiwania AI razem z trenowaniem bez zauważenia, że zniknęły linki z odpowiedzi ChatGPT i Perplexity.
- Oczekiwanie, że Google-Extended usunie stronę z wyszukiwarki Google. Nie wpływa na wyszukiwarkę; do usunięcia strony z indeksu potrzebny jest
noindex— różnicę wyjaśnia artykuł noindex, nofollow i robots.txt. - Próba blokowania Google-Extended na serwerze po User-Agencie — takiego User-Agenta nie ma.
- Pominięte subdomeny. robots.txt działa tylko dla własnego hosta:
blog.example.comishop.example.compotrzebują własnych plików. - Literówki w nazwach botów i nieaktualne listy. Nazwy i przeznaczenie botów się zmieniają, więc co kilka miesięcy sprawdzaj dokumentację operatorów.