Jak sprawdzić, czy strona jest dostępna dla ChatGPT, Claude i Perplexity?

Blog page

Dane strukturalne wdrożone. Treści przepisane pod GEO. W planie jest zdobywanie cytowań w ChatGPT. Jednak wiele osób zapomina o najważniejszym – sprawdzeniu, czy model językowy może w ogóle wejść na stronę i ją odczytać. Zanim więc zaczniemy cokolwiek optymalizować zacznijmy od podstaw i sprawdźmy, czy system AI może naszą treść odkryć, pobrać, odczytać i wykorzystać. Pokażę Ci, jak sprawdzić każdy z nich.

Co to właściwie znaczy, że strona jest dostępna dla AI?

Zwykle sprowadzamy to pytanie do jednego – czy bot nie jest zablokowany. Tyle że blokada w robots.txt to zaledwie jeden z kilku punktów, które mogą stanąć na przeszkodzie w tym by nasze treści trafiały do odpowiedzi modeli konwersacyjnych:

  • Odkrycie – system musi w ogóle poznać adres URL Twojej podstrony.
  • Dostęp – musi ją pobrać i dostać status 200, a nie 403 czy 429.
  • Odczyt – musi zobaczyć właściwą treść w tym, co pobrał.
  • Wykorzystanie – musi mieć prawo użyć tej treści w wygenerowanej odpowiedzi.

Problem polega na tym, że awaria na każdym z tych poziomów wygląda tak samo – nie widać jej. PerplexityBot może od trzech miesięcy dostawać status 403 i nikt się o tym nie dowie, dopóki ktoś nie zajrzy do logów.

Jakie boty AI odwiedzają strony i za co odpowiadają?

Pod hasłem „boty AI” kryją się trzy zupełnie różne zadania. Crawlery dzielą się według tego, po co przychodzą:

  • Wyszukiwanie i indeksowanie – bot buduje własny indeks, z którego system czerpie treści przy odpowiadaniu na pytania. To on decyduje o tym, czy masz szansę na cytowanie.
  • Pobranie strony na żądanie użytkownika – ktoś zadaje pytanie albo wkleja link, a system wchodzi na stronę tu i teraz. Ruch jest pojedynczy, ale prowadzi wprost do konkretnej odpowiedzi.
  • Zbieranie materiału do trenowania modeli – treść trafia do zbioru danych na potrzeby przyszłych wersji modelu. Nie generuje ruchu zwrotnego i nie wpływa na to, czy pojawisz się w dzisiejszych odpowiedziach.

Decyzja „blokujemy AI, bo nie chcemy, żeby uczyli się na naszych treściach” i decyzja „chcemy być cytowani w ChatGPT” dotyczą różnych botów. Można je podjąć niezależnie – i większość firm powinna.

Jeden dostawca korzysta z kilku botów

I tu zaczynają się schody, bo pod jednym szyldem kryje się kilka user-agentów. Poniżej zestawienie tych, które spotkasz najczęściej.

DostawcaUser-agentZadanieCo tracisz po zablokowaniu
OpenAIOAI-SearchBotindeks dla wyszukiwania w ChatGPTobecność w odpowiedziach i cytowaniach ChatGPT
OpenAIChatGPT-Userwejście na stronę na żądanie użytkownikapobranie strony, gdy ktoś poda jej adres
OpenAIGPTBotzbieranie danych do trenowania modeliobecność treści w przyszłych modelach
OpenAIOAI-AdsBotweryfikacja stron docelowych reklammożliwość reklamowania się w ChatGPT
AnthropicClaude-SearchBotindeksowanie treści pod wyszukiwaniewidoczność w odpowiedziach Claude’a
AnthropicClaude-Userwejście na stronę na żądanie użytkownikapobranie strony w trakcie rozmowy
AnthropicClaudeBotzbieranie danych do trenowania modeliobecność treści w przyszłych modelach
PerplexityPerplexityBotindeksowanie pod wyniki Perplexityobecność w wynikach i cytowaniach
PerplexityPerplexity-Userwejście na stronę na żądanie użytkownikapobranie strony w odpowiedzi na pytanie
GoogleGooglebotindeks Googleobecność w wynikach, AI Overviews i AI Mode
GoogleGoogle-Extendedtrenowanie modeli Gemini i grounding w aplikacjach Geminiobecność w Gemini (bez wpływu na Google Search)
Common CrawlCCBototwarty zbiór danych używany m.in. do trenowaniaobecność w zbiorze wykorzystywanym przez wiele podmiotów

Zwróć uwagę na jedną rzecz. Sama blokada GPTBota nie wypisuje Cię z ChatGPT – i odwrotnie, otwarcie go nie wystarczy, żeby się tam pojawić. To osobne decyzje i osobne wpisy w robots.txt.

Powstaje jednak pytanie, czy blokada bota trenującego faktycznie kosztuje coś w wynikach. Teoretycznie nie powinna, bo to osobne systemy. Dane sugerują jednak inaczej. W lipcowym badaniu cloro na 1058 domenach mediana serwisu blokującego GPTBota zbierała 0,003 cytowania w ChatGPT na jedną posiadaną pozycję w Google – wobec 0,417 u serwisów, które go wpuszczały. Co istotne, efekt trzymał się konkretnego dostawcy.

Nie traktowałbym tego jak dowodu na przyczynowość, bo autorzy sami przed tym przestrzegają. Inne analizy pokazują zresztą, że duże serwisy informacyjne pojawiają się w cytowaniach mimo blokad – po prostu model zna je z wielu innych źródeł. Warto jednak znać możliwe konsekwencje. 

Jak krok po kroku sprawdzić dostępność strony dla AI?

[do uzupełnienia]

Sprawdź, skąd systemy AI mają poznać Twoje adresy

Zanim sprawdzimy czy boty AI mogą wejść na stronę to muszą jakoś na nią trafić. Do żadnego z modeli językowych obecnie nie jesteśmy w stanie zgłosić adresów URL ręcznie tak jak można to zrobić np. w Google Search Console. Musimy polegać na tym, że w procesie nauki natrafią oni na nasze adresy, które chcemy promować i uznają je za wartościowe – podobnie jak w klasycznych wyszukiwarkach. 

Prowadzą do tego trzy drogi:

  • mapa witryny XML – zgłoszona w robots.txt dyrektywą sitemap:, bo to jedyne miejsce, w którym crawler AI jej poszuka, 
  • linkowanie wewnętrzne – bot wchodzi na stronę główną i idzie dalej za odnośnikami, 
  • linki z innych serwisów – oraz dane od zewnętrznych dostawców wyszukiwania, z których część systemów korzysta obok własnego indeksu.

Podstrona osierocona, do której nie prowadzi żaden link i której nie ma w mapie witryny, dla modelu językowego nie istnieje. Nie dlatego, że coś ją blokuje – po prostu nigdy crawler na nią nie trafił. 

Co zatem sprawdzić? 

  • czy robots.txt zawiera linię Sitemap: z aktualnym adresem mapy, 
  • czy mapa witryny zwraca status 200 i faktycznie zawiera kluczowe podstrony, 
  • czy w mapie nie ma adresów przekierowanych, usuniętych albo z noindex
  • czy na stronie nie ma “sierotek” czyli podstron bez linków wewnętrznych. 

Sprawdź robots.txt

Poprzednio sprawdzaliśmy plik robots.txt pod kątem linku do sitemapy – teraz zrobimy to pod kątem reguł blokujących boty AI. Jest to najczęstsza przyczyna problemów. 

Otwórz adres https://twojadomena.pl/robots.txt i poszukaj trzech rzeczy: 

  • reguł dla konkretnych botów AI – czy któryś z user-agentów z tabeli wyżej ma Disallow: /, 
  • reguł zbiorczych – niektóre wtyczki i konfiguracje CDN dopisują całe grupy botów AI jednym kliknięciem, często bez wyraźnego komunikatu, 
  • reguły User-agent: * z szerokim Disallow – blokada katalogu, w którym leżą Twoje najważniejsze treści, działa na wszystkich. 

OpenAI zwraca na to uwagę w swoim FAQ dla wydawców. Jeśli chcesz, aby Twoje treści trafiały do podsumowań i cytowań w ChatGPT, OAI-SearchBot musi mieć dostęp do strony. Po zmianie w robots.txt systemy OpenAI potrzebują około doby, żeby to uwzględnić. 

Sprawdź, co faktycznie zwraca serwer

Nie zawsze blokady są widoczne w pliku robots.txt – czasem są one nałożone z poziomu serwera bądź przez rozwiązania sieciowe takie jak Clodflare. Dlatego zawsze warto zweryfikować co faktycznie zwraca serwer. Najprościej jest sprawdzić to przy pomocy terminala. Polecenie curl wykonasz w macOS, Linuksie i w Windowsie.

Zacznij od zwykłego zapytania: 

curl -I https://twojadomena.pl/

A potem podszyj się pod konkretne boty: 

curl -I -A „OAI-SearchBot” https://twojadomena.pl/
curl -I -A „PerplexityBot” https://twojadomena.pl/
curl -I -A „Claude-SearchBot” https://twojadomena.pl/

Flaga -I pobiera same nagłówki, a -A podmienia user-agenta. Porównaj wyniki. Jeżeli zwykłe zapytanie zwraca 200, a to z nazwą bota 403 to znak, że natrafia on na blokadę. 

Porównanie odpowiedzi serwera dla zwykłego zapytania i dla bota OpenAI. Tak wygląda prawidłowy wynik.

Na co zwrócić uwagę w statusach: 

  • 200 – w porządku, strona się pobiera.
  • 301 / 302 – przekierowanie. Dodaj flagę -L, żeby sprawdzić, gdzie ostatecznie prowadzi i czy łańcuch nie ma pięciu ogniw.
  • 401 / 403 – blokada. Zwykle serwer, WAF albo wtyczka bezpieczeństwa.
  • 429 – przekroczony limit zapytań. Ten status jest wyjątkowo podstępny, bo strona działa normalnie dla ludzi, a bot dostaje odmowę i po prostu odpuszcza.
  • 503 – tryb „under attack” lub przeciążenie serwera.

Sprawdź nie tylko stronę główną. Blokady bardzo często dotyczą konkretnych katalogów – bloga, sklepu, bazy wiedzy. Czyli dokładnie tych miejsc, które chcesz pokazać.

Sprawdź Cloudflare, WAF i zabezpieczenia antybotowe

To dziś najczęstsza przyczyna problemów z widocznością w odpowiedziach modeli językowych. Jest ona przy tym często wdrażana “po cichu” przez dział IT, który chce ograniczyć ruch botów na stronie. Nawet Cloudflare – jedno z najpopularniejszych rozwiązań do ochrony sieciowej domyślnie proponuje ich blokadę. Jeżeli więc ktoś w firmie klikał przez kreator konfiguracji, nie czytając, Twoja strona może być zamknięta w ten sposób dla AI. 

Po stronie Clouflare warto znać dodatkowo moduł AI Crawl Control (wcześniej AI Audit). Pozwala on osobno monitorować i blokować crawlery AI oraz podejrzeć, które z nich respektują Twoje reguły. 

Na co więc zwrócić uwagę w panelu Cloudflare:

  • zakładka AI Crawl Control – czy któryś z botów ma ustawioną akcję “Block”,
  • managed rules i zbiorcze przełączniki typu „Block AI bots” – jedno kliknięcie zamyka wszystko naraz,
  • custom rules w WAF – reguły oparte na user-agencie, kraju czy ASN,
  • Bot Fight Mode i tryb „Under Attack” – potrafią serwować botom stronę z wyzwaniem zamiast treści,
  • rate limiting – to on odpowiada za wspomniane wyżej 429,
  • logi – sprawdzisz w nich, ile żądań od danego bota skończyło się blokadą.

Moduł AI Crawl Control w panelu Cloudflare – przy każdym crawlerze widać kategorię i akcję ustawioną dla jego ruchu.

Gdzie jeszcze mogą siedzieć blokady?

Cloudflare to tylko jedna z warstw. Kolejne bywają rozrzucone po całej infrastrukturze i rzadko ktokolwiek pamięta o nich wszystkich naraz:

  • reguły WAF u dostawcy hostingu – najczęściej ModSecurity, blokujący zapytania po user-agencie albo po liczbie żądań,
  • wtyczki bezpieczeństwa w CMS – Wordfence i podobne mają gotowe listy „złych botów”, na których lądują też te pożądane,
  • CAPTCHA i strony z wyzwaniem – bot ich nie przejdzie, więc zamiast treści dostaje pustą stronę ze statusem 200, co jest wyjątkowo trudne do wychwycenia,
  • blokady geograficzne – crawlery AI wychodzą zwykle z amerykańskich adresów IP, a niejeden sklep ma zamknięty ruch spoza Europy,
  • limity zapytań na serwerze – ustawione bez wyjątku dla botów odsyłają je ze statusem 429.

Sprawdź, czy właściwa treść znajduje się w HTML

Załóżmy, że bot dostał status 200. Pytanie brzmi – jakie informacje on ze sobą niósł? 

Jeżeli Twoja strona buduje treść po stronie przeglądarki, w surowym HTML może nie być prawie nic. Googlebot renderuje JavaScript i zwykle sobie z tym poradzi. W przypadku crawlerów AI nie mamy takich gwarancji i bezpieczniej przyjąć, że renderowania się nie wykonają.

Sprawdzisz to jednym poleceniem – poszukaj w pobranym kodzie fragmentu swojego tekstu: 

curl -s -A „OAI-SearchBot” https://twojadomena.pl/podstrona/ | grep -c „fragment Twojego tekstu”

Zero oznacza, że tego zdania nie ma w HTML. Możesz też porównać samą objętość odpowiedzi: 

curl -s https://twojadomena.pl/podstrona/ | wc -c
curl -s -A „OAI-SearchBot” https://twojadomena.pl/podstrona/ | wc -c

Duża różnica to sygnał, że serwer podaje botom coś innego niż ludziom. Czasem to celowa optymalizacja, czasem efekt uboczny cache’u albo systemu personalizacji. Zawsze jednak warto to zweryfikować. 

Sprawdź przy okazji, czy w HTML znajdują się rzeczy, które faktycznie chcesz pokazać: treść główna, nagłówki, dane kontaktowe, ceny, opisy produktów. Zwróć szczególną uwagę na elementy strony znajdujące się w rozwijanej zakładce, która pokazuje treść po kliknięciu. 

Sprawdź, czy sam nie blokujesz wykorzystania treści

Tu wchodzimy w czwarty warunek. Bot może stronę pobrać i odczytać, a mimo to nie mieć prawa użyć jej w odpowiedzi – bo sam mu tego zabroniłeś.

Odpowiadają za to dwa mechanizmy: 

  • meta robots – znacznik w sekcji <head> dokumentu HTML, 
  • X-Robots-Tag – nagłówek zwracany przez serwer, obejmuje też pliki inne niż HTML, np. PDF’y. 

Nagłówek sprawdzisz tak: 

curl -sI https://twojadomena.pl/podstrona/ | grep -i „x-robots-tag”

A znacznik w kodzie tak: 

curl -s https://twojadomena.pl/podstrona/ | grep -i „name=\”robots\””

Czego szukać? Przede wszystkim statusów noindex. OpenAI wskazuje go w swoim FAQ jako sposób na to, żeby ChatGPT nie pokazywał nawet samego linku z tytułem – czyli czyta ten znacznik i się do niego stosuje. 

Sprawdź też nosnippet i max-snippet:0. Nie blokują crawlowania ani indeksowania, więc strona dalej rankuje w klasycznych wynikach. Wypada za to z AI Overviews i AI Mode – Google wymaga, żeby strona kwalifikowała się do wyświetlenia we fragmencie z opisem. 

Zajrzyj do logów serwera

Wszystkie poprzednie kroki pokazały, w jaki sposób sprawdzić, czy boty AI nie mają nałożonych blokad na dostęp do Twojej strony. Na koniec warto jednak zweryfikować od środka, czy faktycznie tak jest. W tym celu zajrzyj do logów serwera.

Dostęp do nich zależy od tego, gdzie stoi Twoja strona. Na hostingu współdzielonym znajdziesz je zwykle w panelu klienta, w sekcji „Logi” lub „Statystyki” – czasem trzeba je najpierw włączyć, bo domyślnie bywają wyłączone. Na własnym serwerze szukaj plików access.log w katalogu /var/log/nginx/ albo /var/log/apache2/. Jeżeli korzystasz z Cloudflare, część ruchu zobaczysz tylko po jego stronie – w zakładce z analityką albo bezpośrednio w AI Crawl Control.

Jeśli logi masz wyłączone, włącz je już teraz. Nie da się przeanalizować czegoś, czego nikt nie zapisał, a przy diagnozie problemów z AI zwykle interesuje nas ostatnich kilka tygodni.

Podstawowe zestawienie: 

grep -Ei „OAI-SearchBot|GPTBot|ChatGPT-User|Claude-SearchBot|ClaudeBot|Claude-User|PerplexityBot|Perplexity-User” access.log | wc -l

A potem sprawdź, jakie statusy dostają: 

grep -Ei „OAI-SearchBot|PerplexityBot|Claude-SearchBot” access.log | awk ‚{print $9}’ | sort | uniq -c | sort -rn

Co zobaczysz w wynikach i jak to czytać: 

  • brak wpisów dla danego bota – system nie zna Twoich adresów albo blokada działa na wcześniejszym etapie, po stronie Cloudflare czy WAF’u. Wracasz wtedy do pierwszego warunku i sprawdzasz mapę witryny oraz linkowanie, 
  • przewaga statusów 403 – blokada po stronie serwera, wtyczki bezpieczeństwa lub reguł WAF, 
  • przewaga statusów 429 – limity zapytań ustawione zbyt ostro, 
  • pojedyncze wizyty raz na kilka tygodni – bot ma dostęp, ale rzadko wraca, więc zmiany w treści trafią do systemu z dużym opóźnieniem, 
  • regularne wizyty ze statusem 200 – wszystko działa i możesz przejść do optymalizacji treści. 

Sprawdź przy tym, które podstrony bot odwiedza. Jeśli zatrzymuje się na stronie głównej i nie schodzi głębiej, przyczyna zwykle leży w linkowaniu wewnętrznym albo braku tych adresów w mapie witryny. 

A co z plikiem llms.txt? 

Plik llms.txt narobił w sieci sporego zamieszania. Zarówno specjaliści SEO jak i narzędzia czy wtyczki SEO od razu zasygnalizowały jego wdrożenie. Tymczasem wbrew powszechnej opinii – llms.txt nie jest odpowiednikiem pliku robots.txt i absolutnie nie jest warunkiem pojawienia się w AI Search. Wiele testów potwierdza, że plik ten jest całkowicie pomijany przez boty. 

Jeśli masz plik llms.txt, nie usuwaj go. Nie jest on szkodliwy i może kiedyś się faktycznie przyda. Jeśli nie masz, jego brak nie blokuje Ci jednak niczego i na tą chwilę nie ma sensu się nim zajmować. 

Checklista – czy Twoja strona jest dostępna dla AI? 

Poniższą listę przejdziesz w kwadrans i od razu zobaczysz, na którym warunku strona się zatrzymuje. Punkty ułożyłem w tej samej kolejności co kroki wyżej – od odkrycia adresów po weryfikację w logach.

  • robots.txt zawiera aktualny adres mapy witryny, a mapa zwraca status 200,
  • kluczowe podstrony są w mapie witryny i prowadzą do nich linki wewnętrzne, 
  • robots.txt nie blokuje OAI-SearchBot, Claude-SearchBot ani PerplexityBot, 
  • curl -I z podmienionym user-agentem zwraca ten sam status, co zwykłe zapytanie – dla strony głównej i kluczowych katalogów,
  • w Cloudflare lub WAF żaden bot AI nie ma ustawionej akcji „Block”,
  • wtyczki bezpieczeństwa, blokady geograficzne i CAPTCHA nie odcinają botów po cichu,
  • rate limiting nie odsyła botów ze statusem 429, 
  • właściwa treść znajduje się w surowym HTML, bez renderowania JavaScriptu, 
  • serwer podaje botom to samo, co użytkownikom,
  • meta robots i X-Robots-Tag nie zawierają noindex, nosnippet ani max-snippet:0 tam, gdzie nie powinny,
  • logi serwera potwierdzają wizyty botów AI i zwracane im statusy. 

Dostępność to dopiero pierwszy etap GEO

Na koniec małe przypomnienie – dostępność strony to warunek konieczny, ale nie wystarczający. To dopiero wstęp do budowania widoczności w modelach konwersacyjnych takich jak ChatGPT, Claude, Gemini czy Perplexity. 

Przejście przez wszystkie punkty tej checklisty nie sprawi, że ChatGPT zacznie cytować Twoją stronę. Daje mu tylko taką możliwość. O tym, czy faktycznie po nią sięgnie, decydują treść, autorytet, struktura informacji i to, czy odpowiadasz na intencję użytkownika

Traktuj więc ten artykuł jak audyt techniczny przed dalszą pracą. Nudny, mało efektowny, trudny do pokazania na slajdach. Jednak bez niego cała reszta może okazać się stratą czasu.

W kolejnym tekście z serii zejdziemy na poziom treści. Sprawdzimy, co odróżnia stronę, którą model wybiera jako źródło, od takiej, którą pomija, choć obie mówią o tym samym.

Wojciech Tumiel

Specjalista SEO, dla którego praca stała się pasją. Zawsze na bieżąco z najnowszymi trendami, z zamiłowaniem do testowania nowych narzędzi. Ceni innowacyjność i nieustannie dąży do doskonalenia swoich umiejętności. Poza biurem, jest zapalonym fanem sportu, ze szczególnym uwzględnieniem angielskiej Premier League.