Widoczność w AI

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.

DostawcaWyszukiwanie i odpowiedziNa prośbę użytkownikaTrenowanie modeli
OpenAI (ChatGPT)OAI-SearchBotChatGPT-UserGPTBot
Anthropic (Claude)Claude-SearchBotClaude-UserClaudeBot
PerplexityPerplexityBotPerplexity-Userwedług Perplexity PerplexityBot nie zbiera treści do trenowania modeli
GoogleGooglebot (wyszukiwarka i odpowiedzi AI w Google: Przegląd od AI, Tryb AI)np. Google-Agent; według Google takie roboty zwykle pomijają robots.txtGoogle-Extended (sam znacznik w robots.txt, bez osobnego robota)
AppleApplebot (Spotlight, Siri, Safari)Apple nie opisuje osobnego robotaApplebot-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 plikuCo znaczy
User-agent: GPTBotpoczątek grupy: robot OpenAI do trenowania
User-agent: ClaudeBotw tej samej grupie robot Anthropic do trenowania
User-agent: Google-Extendedznacznik Google dla modeli Gemini
User-agent: Applebot-Extendedznacznik 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.xmladres 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-SearchBot z 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: * z Disallow: / 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

  1. Otwórz twojadomena.pl/robots.txt. Brak pliku (błąd 404) oznacza, że roboty mogą czytać całą stronę.
  2. Wyszukaj w pliku nazwy OAI-SearchBot, Claude-SearchBot, Claude-User, PerplexityBot i Googlebot. Przy każdej sprawdź, czy w jej grupie jest Disallow: /.
  3. Jeśli danej nazwy nie ma, robot stosuje grupę User-agent: *. Sprawdź, czy tam nie ma Disallow: /.
  4. 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.
  5. 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 /* bez Allow: /). 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

  1. OpenAI: Overview of OpenAI Crawlers
  2. Anthropic: jak zablokować roboty ClaudeBot, Claude-User i Claude-SearchBot
  3. Perplexity: Perplexity Crawlers
  4. Google: wspólne roboty Google i znacznik Google-Extended
  5. Google: roboty uruchamiane przez użytkowników (Google-Agent)
  6. Apple: About Applebot (Applebot-Extended)
  7. RFC 9309: Robots Exclusion Protocol
  8. Google: jak Google interpretuje specyfikację robots.txt
  9. Google Search Central: wprowadzenie do robots.txt
  10. Pomoc Search Console: raport dotyczący pliku robots.txt

Przewodnik napisał Jonasz Jankowski, JFlow Labs Jonasz Jankowski. Robię strony z SEO, aplikacje webowe i automatyzacje AI dla firm z całej Polski.