Roboty AI w robots.txt: jak wpuścić ChatGPT, Claude i Perplexity
Żeby ChatGPT, Claude i Perplexity mogły pokazywać Twoją stronę w odpowiedziach, nie blokuj ich robotów w pliku robots.txt. Chodzi o OAI-SearchBot, Claude-SearchBot, Claude-User, PerplexityBot i Googlebota. Roboty do trenowania modeli (GPTBot, ClaudeBot, Google-Extended, Applebot-Extended) możesz zablokować osobno. OpenAI, Google i Apple piszą, że ta decyzja nie usuwa strony z ich wyszukiwarek.
- OpenAI pisze, że strona zablokowana dla robota OAI-SearchBot nie pojawi się w odpowiedziach wyszukiwania ChatGPT. Może się pokazać najwyżej jako sam link. Zmiana w robots.txt dociera do wyszukiwania ChatGPT po około 24 godzinach.
- Google-Extended nie wpływa na obecność strony w wyszukiwarce Google ani na jej pozycję. Decyduje za to o trenowaniu modeli Gemini i o użyciu treści w odpowiedziach aplikacji Gemini.
- Według standardu RFC 9309, czyli oficjalnego opisu pliku robots.txt, robot stosuje grupę reguł ze swoją nazwą. Grupę
User-agent: *(dla wszystkich robotów) stosuje tylko wtedy, gdy nie znajdzie grupy ze swoją nazwą. - ChatGPT-User i Perplexity-User pobierają stronę na prośbę użytkownika. OpenAI pisze, że reguły robots.txt mogą ich nie dotyczyć. Perplexity pisze, że Perplexity-User zwykle je pomija.
Czym jest robots.txt i czego nie robi
robots.txt to zwykły plik tekstowy pod adresem twojadomena.pl/robots.txt. Mówi robotom, czyli programom pobierającym strony, które adresy mogą czytać. To prośba, a nie zamek. Google pisze, że szanowane roboty jej przestrzegają, ale inne nie muszą.
Plik nie ukrywa strony przed Google. Adres zablokowany w robots.txt może trafić do wyników bez opisu, jeśli linkują do niego inne strony. Do wyłączenia strony z wyników służy noindex, czyli prośba o pominięcie strony w wynikach, albo hasło.
Trzy fakty techniczne. Plik musi być zapisany w kodowaniu UTF-8, czyli w standardowym zapisie liter. Google czyta z niego najwyżej 500 KiB i trzyma jego kopię zwykle do 24 godzin.
Każda subdomena, np. sklep.twojadomena.pl, potrzebuje własnego pliku.
Dwie osobne decyzje: wyszukiwanie i trenowanie
Dostawcy AI mają osobne roboty do trzech zadań: do wyszukiwania, do pobierania stron na prośbę użytkownika i do zbierania tekstów na trening modeli. Każdego ustawiasz osobno.
| Dostawca | Wyszukiwanie i odpowiedzi | Na prośbę użytkownika | Trenowanie modeli |
|---|---|---|---|
| OpenAI (ChatGPT) | OAI-SearchBot | ChatGPT-User | GPTBot |
| Anthropic (Claude) | Claude-SearchBot | Claude-User | ClaudeBot |
| Perplexity | PerplexityBot | Perplexity-User | według Perplexity PerplexityBot nie zbiera treści do trenowania modeli |
| Googlebot (wyszukiwarka i odpowiedzi AI w Google: Przegląd od AI, Tryb AI) | np. Google-Agent; według Google takie roboty zwykle pomijają robots.txt | Google-Extended (sam znacznik w robots.txt, bez osobnego robota) | |
| Apple | Applebot (Spotlight, Siri, Safari) | Apple nie opisuje osobnego robota | Applebot-Extended (sam znacznik, dotyczy danych pobranych przez Applebota) |
Gotowy plik: wyszukiwanie otwarte, trenowanie zamknięte
Poniżej plik dla firmy, która chce być w odpowiedziach asystentów, ale nie chce, żeby jej teksty służyły do trenowania modeli. Linia User-agent podaje nazwę robota. Kilka takich linii pod rząd tworzy jedną grupę ze wspólnymi regułami.
| Linia w pliku | Co znaczy |
|---|---|
User-agent: GPTBot | początek grupy: robot OpenAI do trenowania |
User-agent: ClaudeBot | w tej samej grupie robot Anthropic do trenowania |
User-agent: Google-Extended | znacznik Google dla modeli Gemini |
User-agent: Applebot-Extended | znacznik Apple dla modeli Apple |
Disallow: / | cała strona zamknięta dla tej grupy |
User-agent: * | nowa grupa dla wszystkich innych robotów, także OAI-SearchBot, Claude-SearchBot i PerplexityBot |
Allow: / | cała strona otwarta |
Sitemap: https://twojadomena.pl/sitemap.xml | adres mapy witryny dla wszystkich robotów |
Pięć pułapek, które wyłączają stronę z odpowiedzi AI
- Własna grupa wyłącza grupę ogólną. Dodajesz na przykład
User-agent: OAI-SearchBotz jedną regułąDisallow: /admin/. Ten robot przestaje wtedy czytać grupęUser-agent: *. Reguły, które mają go dotyczyć, przepisz do jego grupy. User-agent: *zDisallow: /zamyka stronę dla wszystkich, także dla Googlebota (robota Google) i robotów wyszukiwania AI. Tak bywa po przeniesieniu wersji testowej strony.- Zapora sieciowa albo ochrona przed botami działa niezależnie od robots.txt. To program na serwerze, który odrzuca podejrzany ruch. Perplexity opisuje, jak przepuścić w niej swoje roboty. OpenAI zaleca nie odrzucać zapytań z adresów IP, które publikuje dla swoich robotów.
- Plik, który zwraca błąd serwera (kod 5xx). Google przez pierwsze 12 godzin wstrzymuje wtedy skanowanie, czyli pobieranie, całej strony.
- Reguły tylko w domenie głównej. Subdomena ze sklepem albo blogiem ma własny plik i nie dziedziczy reguł.
Kiedy blokada robotów AI ma sens
Blokada robotów do trenowania to uczciwa decyzja, np. dla wydawcy, który zarabia na artykułach, albo dla firmy z płatnymi materiałami. Pamiętaj, że działa na przyszłość. Anthropic pisze wprost, że blokada ClaudeBot dotyczy przyszłych materiałów ze strony.
Blokada robotów wyszukiwania oznacza, że znikniesz z odpowiedzi danego asystenta. Jeśli roboty obciążają serwer, lepiej je spowolnić niż blokować. Anthropic obsługuje nieoficjalną regułę Crawl-delay, czyli przerwę między pobraniami. Google tej reguły nie obsługuje.
Jak sprawdzić to samemu
- Otwórz
twojadomena.pl/robots.txt. Brak pliku (błąd 404) oznacza, że roboty mogą czytać całą stronę. - Wyszukaj w pliku nazwy OAI-SearchBot, Claude-SearchBot, Claude-User, PerplexityBot i Googlebot. Przy każdej sprawdź, czy w jej grupie jest
Disallow: /. - Jeśli danej nazwy nie ma, robot stosuje grupę
User-agent: *. Sprawdź, czy tam nie maDisallow: /. - W Search Console, darmowym narzędziu Google dla właścicieli stron, otwórz Ustawienia i raport o pliku robots.txt. Zobaczysz, kiedy Google ostatnio pobrał plik i czy były błędy.
- Po zmianie odczekaj dobę, zanim ocenisz efekt w asystentach.
Co sprawdza bezpłatny skan
- Pobiera /robots.txt i dla 9 robotów ustala, którą grupę reguł stosują: grupę ze swoją nazwą albo
User-agent: *. - Zgłasza blokadę całej strony (
Disallow: /albo/*bezAllow: /). Blokada OAI-SearchBot, ChatGPT-User, Claude-SearchBot, PerplexityBot albo Googlebota to uwaga pilna. - Blokada samych robotów do trenowania (GPTBot, ClaudeBot, Google-Extended, Applebot-Extended) to wskazówka, bo może być Twoim wyborem. Jeśli robots.txt mówi to wprost zapisem
Content-Signal: ai-train=no, skaner uznaje blokadę za świadomą decyzję: nie zgłasza uwagi, tylko wpisuje ją do tego, co działa dobrze. - Reguły dla pojedynczych katalogów, np.
Disallow: /koszyk/, zostawia Twojej ocenie, bo zwykle są celowe. - Sprawdza nagłówek serwera X-Robots-Tag, czyli ukrytą informację wysyłaną razem ze stroną. Noindex albo none wyłącza stronę z wyników Google i Bing, a wpis dla jednego robota, np. googlebot: noindex, tylko z jego wyszukiwarki. Każda taka blokada to uwaga pilna w sekcji SEO. Samo noai albo noimageai to wskazówka w sekcji Widoczność w AI: nieoficjalna prośba do narzędzi AI, której Google i Bing nie stosują.
- Szanuje Twój plik: jeśli robots.txt zamyka stronę dla robota AudytowniaBot albo dla wszystkich robotów (
User-agent: *), skan się nie uruchamia. Komunikat powie wtedy, czy robot Google też jest zablokowany.
Skan sprawdza stronę główną i do 3 podstron. Wynik dostajesz w około minutę.
Kiedy zlecić to komuś: Zmianę w robots.txt zwykle zrobisz sam w kwadrans. Gorzej, gdy strona stoi za zaporą albo ochroną przed botami i nie wiesz, czy roboty AI w ogóle do niej docierają. Wtedy sprawdzę to w Audycie widoczności w AI i wskażę, co zmienić w ustawieniach. Zobacz pełny audyt.
Pytania i odpowiedzi
Czy blokada GPTBot usuwa mnie z ChatGPT?
Nie. GPTBot zbiera teksty do trenowania modeli. O obecności w wyszukiwaniu ChatGPT decyduje OAI-SearchBot. OpenAI pisze, że to dwa niezależne ustawienia.
Czy Google-Extended wyłącza Przegląd od AI w Google?
Nie. Google pisze, że Google-Extended nie wpływa na obecność w wyszukiwarce. Z Przeglądu od AI i Trybu AI wyłączysz stronę ustawieniem Search generative AI w Search Console. Cytowane fragmenty ograniczysz znacznikami nosnippet, max-snippet albo noindex.
Czy muszę mieć plik robots.txt?
Nie. Bez pliku roboty mogą czytać całą stronę. Plik przydaje się, gdy chcesz coś zablokować albo podać adres mapy witryny.
Co z robotami, które ignorują robots.txt?
Plik ich nie zatrzyma. Prywatne pliki chroni hasło, a niechciany ruch zatrzymuje zapora sieciowa. Anthropic dodaje, że blokada samych adresów IP może nie działać trwale. Utrudnia bowiem robotom odczytanie robots.txt.
Źródła
- OpenAI: Overview of OpenAI Crawlers
- Anthropic: jak zablokować roboty ClaudeBot, Claude-User i Claude-SearchBot
- Perplexity: Perplexity Crawlers
- Google: wspólne roboty Google i znacznik Google-Extended
- Google: roboty uruchamiane przez użytkowników (Google-Agent)
- Apple: About Applebot (Applebot-Extended)
- RFC 9309: Robots Exclusion Protocol
- Google: jak Google interpretuje specyfikację robots.txt
- Google Search Central: wprowadzenie do robots.txt
- Pomoc Search Console: raport dotyczący pliku robots.txt