Wszystkie materiały

Jak działają silniki AI

Robots.txt dla botów AI: konfiguracja krok po kroku

Gotowa składnia robots.txt dla GPTBota, ClaudeBota, PerplexityBota i Googlebota. Trzy scenariusze konfiguracji i sposób sprawdzenia, czy wpis działa.
10 min czytania Aktualizacja: 3 sierpnia 2026

Robots.txt dla botów AI działa na tych samych regułach co klasyczny plik dla Googlebota, ale operatorzy modeli używają po kilka botów naraz, każdego z inną rolą. Jeden wpis „zablokuj wszystko z AI w nazwie" potrafi wyłączyć stronę z wyszukiwania, chociaż celem było tylko zablokowanie treningu. Ten poradnik pokazuje gotową składnię per bot i trzy typowe scenariusze konfiguracji.

Czym różni się robots.txt pod boty AI od zwykłego pliku dla Google?

Formalnie niczym. To ten sam plik tekstowy w katalogu głównym domeny, te same dyrektywy User-agent, Disallow, Allow i Sitemap, ta sama składnia wieloznaczników.

Różnica jest w liczbie graczy. Klasyczny plik SEO myślał głównie o Googlebocie, może jeszcze Bingbocie. Dziś każdy większy operator modelu utrzymuje po dwa lub trzy osobne boty z różnymi zadaniami: jeden wyszukuje i indeksuje strony pod odpowiedzi, drugi zbiera dane do treningu przyszłych modeli, trzeci pobiera konkretną stronę na żądanie użytkownika w rozmowie z modelem. Nazwa operatora w robots.txt nie wystarczy, bo pod jedną firmą kryje się kilka user agentów, z których każdy trzeba wpisać osobno.

Jakie boty AI istnieją i jakie mają role?

Cztery główne operatory dzielą swoje boty na te same trzy kategorie: wyszukiwanie, trening, pobranie na żądanie. Poniższa tabela porządkuje nazwy, bo to od nich zaczyna się każda konfiguracja.

Operator Bot wyszukujący Bot treningowy Pobranie na żądanie
OpenAI OAI-SearchBot GPTBot ChatGPT-User
Anthropic Claude-SearchBot ClaudeBot Claude-User
Perplexity PerplexityBot brak osobno opisanej roli Perplexity-User
Google Googlebot (Search, AI Overviews, AI Mode) Google-Extended (trening i grounding Gemini/Vertex, nie wpływa na zwykły Search) zależnie od produktu

Zablokowanie bota treningowego nie odbiera stronie widoczności w wyszukiwaniu.

Jak zapisać regułę dla jednego bota w robots.txt?

Każda reguła to para: linia User-agent z dokładną nazwą bota, potem jedna lub więcej linii Disallow albo Allow.

User-agent: GPTBot
Disallow: /

Ten zapis blokuje GPTBota całkowicie: wszystkie ścieżki od korzenia domeny w dół. Żeby zablokować tylko fragment serwisu, wystarczy węższa ścieżka:

User-agent: GPTBot
Disallow: /dokumenty-wewnetrzne/

Reguła Allow działa odwrotnie i zwykle służy do wyjątku wewnątrz zablokowanego katalogu. Gwiazdka * dopasowuje dowolny ciąg znaków w ścieżce, ale w nazwie user agenta lepiej nie polegać na wieloznacznikach: dokładna nazwa bota eliminuje ryzyko przypadkowego dopasowania niewłaściwego crawlera.

Jak skonfigurować robots.txt, żeby być widocznym w AI, ale nie oddawać treści do treningu?

Zablokuj osobnym wpisem Disallow: / boty treningowe (GPTBot, ClaudeBot, Google-Extended), a botom wyszukującym (OAI-SearchBot, Claude-SearchBot, PerplexityBot, Googlebot) zostaw dostęp. To najczęstsza intencja właściciela serwisu: udział w odpowiedziach ChatGPT, Claude czy Perplexity, bez zgody na to, żeby ta sama treść trafiła do zbioru treningowego kolejnej wersji modelu. Wymaga rozróżnienia bota wyszukującego od treningowego, nie blokowania operatora jako całości.

User-agent: GPTBot
Disallow: /

User-agent: ClaudeBot
Disallow: /

User-agent: Google-Extended
Disallow: /

User-agent: OAI-SearchBot
Allow: /

User-agent: Claude-SearchBot
Allow: /

User-agent: PerplexityBot
Allow: /

User-agent: Googlebot
Allow: /

Linie Allow: / dla botów wyszukujących są tu opcjonalne, bo domyślny stan bota bez żadnej reguły to i tak dostęp. Warto je jednak zostawić jawnie w pliku: kolejna osoba edytująca robots.txt od razu widzi intencję, zamiast się jej domyślać z braku wpisu.

Jak całkowicie zablokować dostęp botom AI w robots.txt?

Każdy bot z tabeli wyżej dostaje własny blok z Disallow: /, bez wyjątku dla wyszukiwania. Dotyczy to zwykle serwisów z treścią objętą licencją, materiałem płatnym albo danymi, których właściciel nie chce oddawać żadnemu modelowi w żadnej roli.

User-agent: GPTBot
Disallow: /

User-agent: OAI-SearchBot
Disallow: /

User-agent: ChatGPT-User
Disallow: /

User-agent: ClaudeBot
Disallow: /

User-agent: Claude-SearchBot
Disallow: /

User-agent: Claude-User
Disallow: /

User-agent: PerplexityBot
Disallow: /

User-agent: Perplexity-User
Disallow: /

User-agent: Google-Extended
Disallow: /

Uwaga dotyczy Googlebota: ten wpis celowo go pomija. Zablokowanie Googlebot w robots. Jeśli celem jest wyłącznie odcięcie się od funkcji AI Google, właściwym narzędziem jest Google-Extended, nie blokada Googlebota.

Dwa boty w tym zestawieniu traktują robots.txt inaczej niż reszta. ChatGPT-User i Perplexity-User uruchamiają się na żądanie konkretnego użytkownika w rozmowie z modelem, więc dokumentacja OpenAI wprost zastrzega, że reguły robots.txt „mogą nie mieć zastosowania" do tego bota, bo akcję inicjuje człowiek, nie automatyczne przeszukiwanie .

Jak zablokować tylko trening, a zostawić wyszukiwanie i pobieranie na żądanie?

Trzy bloki z Disallow: /, po jednym dla GPTBota, ClaudeBota i Google-Extended, wystarczą, bo boty wyszukujące i tak mają domyślny dostęp bez żadnej reguły. To węższy wariant poprzedniego scenariusza, częsty u serwisów, które i tak mają niską ekspozycję w wyszukiwaniu AI i głównie chcą zamknąć furtkę do zbiorów treningowych na przyszłość.

User-agent: GPTBot
Disallow: /

User-agent: ClaudeBot
Disallow: /

User-agent: Google-Extended
Disallow: /

Wystarczą trzy bloki, bo boty wyszukujące i tak mają domyślny dostęp bez żadnego wpisu w pliku. Efekt: strona nie trafia do przyszłych zbiorów treningowych OpenAI, Anthropic ani Google, ale nadal może być indeksowana pod odpowiedzi ChatGPT Search, Claude i Gemini, o ile spełnia standardowe wymogi indeksacji.

Jak wygląda pełny plik łączący wyszukiwanie, sitemapę i resztę reguł SEO?

Robots.txt pod boty AI nie zastępuje reszty pliku, tylko go rozszerza. Blok ogólny User-agent: * z klasycznymi regułami SEO zostaje bez zmian, boty AI dostają własne, osobne bloki poniżej albo powyżej niego.

User-agent: *
Disallow: /admin/
Disallow: /koszyk/

User-agent: GPTBot
Disallow: /

User-agent: Google-Extended
Disallow: /

User-agent: ClaudeBot
Disallow: /

Sitemap: https://przyklad.pl/sitemap.xml

Ten wariant realizuje scenariusz trzeci: blokuje wyłącznie trening trzech głównych operatorów, resztę serwisu, w tym boty wyszukujące AI, zostawia dostępną na tych samych warunkach co dla Googlebota w bloku ogólnym.

Ile czasu zajmuje propagacja zmiany w robots.txt?

Żaden z operatorów nie stosuje zmian natychmiast po zapisaniu pliku, więc test tego samego dnia często pokazuje jeszcze stary stan. OpenAI podaje wprost, że dostosowanie systemów wyszukiwania do nowej wersji robots.

Google cachuje treść robots.txt do 24 godzin, a w praktyce odświeża ją przy okazji standardowego, mniej więcej dobowego cyklu crawlowania. Jeśli zależy na szybszej reakcji, Search Console ma funkcję żądania ponownego sprawdzenia pliku z poziomu raportu robots.

Jak sprawdzić, że wpis w robots.txt faktycznie zadziałał?

Sprawdzenie zaczyna się od samego pliku, nie od wyników w ChatGPT czy Perplexity, bo te reagują z opóźnieniem opisanym wyżej. Najpierw więc otwarcie przyklad.pl/robots.txt w przeglądarce i wizualna kontrola, czy nowa reguła w ogóle tam jest i czy nazwa bota jest zapisana dokładnie tak, jak w dokumentacji operatora (wielkość liter ma znaczenie).

Drugi krok to zapytanie serwera z podszyciem się pod konkretnego bota przez nagłówek User-Agent, na przykład poleceniem curl -A "GPTBot" https://przyklad.pl/sciezka -I. To pokazuje kod odpowiedzi serwera, ale nie potwierdza jeszcze, że dany operator zastosował już nową regułę po swojej stronie, tylko że serwer i ewentualny firewall aplikacji nie blokują tego ruchu na poziomie infrastruktury.

Trzeci krok to weryfikacja przez publikowane przez operatorów listy adresów IP w formacie JSON: OpenAI publikuje osobne listy dla GPTBot, OAI-SearchBot i ChatGPT-User pod adresami w domenie openai.com , Anthropic prowadzi jedną zbiorczą listę pod claude.com/crawling/bots., Perplexity osobne listy dla PerplexityBot i Perplexity-User. Zestawienie tych adresów z logami serwera potwierdza, że ruch z danym user agentem faktycznie pochodzi od operatora, a nie od podszywającego się skryptu. Dla Google dodatkowym narzędziem jest raport robots.

Jakie błędy najczęściej psują konfigurację robots.txt pod boty AI?

Pierwszy i najczęstszy błąd to blokowanie operatora po fragmencie nazwy zamiast pełnego, dokładnego user agenta, na przykład reguła myślana jako blokada samego GPTBota, która przez nieuwagę obejmuje też OAI-SearchBot, bo ktoś skopiował regułę bota treningowego i podmienił tylko część nazwy. Skutek: strona znika z wyników wyszukiwania AI, chociaż celem było wyłącznie zablokowanie treningu.

Drugi błąd to traktowanie Googlebota jak bota wyłącznie od AI Overviews.

Trzeci błąd to zapominanie o subdomenach. Robots.txt obowiązuje per host, więc reguła na przyklad.pl/robots.txt nie obejmuje automatycznie blog.przyklad.pl ani sklep.przyklad.pl. Każda subdomena z osobnym plikiem robots.txt potrzebuje własnego kompletu reguł, inaczej boty AI mogą mieć inny dostęp na subdomenie niż na domenie głównej.

FAQ

Czy wystarczy jeden ogólny wpis `User-agent: *` z `Disallow: /`, żeby zablokować wszystkie boty AI naraz?

Nie ma na to gwarancji. User-agent: * obejmuje domyślnie roboty bez własnego, dopasowanego bloku, ale bot z dokładną nazwą w osobnym bloku, na przykład User-agent: GPTBot, stosuje się do tego dokładniejszego bloku, nie do reguły ogólnej. Blokowanie konkretnych botów AI wymaga osobnych bloków z ich dokładnymi nazwami.

Czy blokada w robots.txt usuwa stronę, która już została zaindeksowana wcześniej?

Nie od razu i nie automatycznie. Robots.txt kontroluje przyszłe pobrania, nie usuwa istniejących danych z indeksu czy z wcześniej zebranych zbiorów treningowych. Do usunięcia już zaindeksowanej strony służą inne mechanizmy, jak noindex w meta robots albo narzędzia do usuwania adresów w konsolach webmasterskich.

Czy Perplexity-User i ChatGPT-User w ogóle respektują robots.txt?

Częściowo. Oba działają na żądanie konkretnego użytkownika w rozmowie z modelem, a dokumentacje obu operatorów wprost zaznaczają, że standardowe reguły robots.txt mogą nie mieć tu pełnego zastosowania, bo to nie jest automatyczne, masowe przeszukiwanie. Twardsza kontrola tego ruchu wymaga blokady na poziomie serwera lub firewalla aplikacji, opartej o publikowane zakresy adresów IP.