Test widoczności dla botów AI odpowiada na dwa osobne pytania: czy asystenci AI mogą pobrać Twoją stronę i czy wolno im wykorzystać jej treść w odpowiedzi. To nie to samo — strona z całkowicie otwartym plikiem robots.txt potrafi być systematycznie pomijana w odpowiedziach, bo wycina ją pojedyncza dyrektywa w nagłówku HTTP. Narzędzie sprawdza obie warstwy naraz i pokazuje boty w podziale na role, bo blokada crawlera treningowego znaczy coś zupełnie innego niż blokada crawlera odpowiadającego za cytowania.
Sprawdź, czy ChatGPT, Claude i Perplexity mogą pobrać Twoją stronę i zacytować ją w odpowiedzi.
Crawler treningowy a crawler cytujący — dwie różne role
Boty AI nie są jednorodną grupą i nie wolno ich oceniać wspólną regułą. Ten sam dostawca prowadzi zwykle kilku agentów o rozłącznych zadaniach: jeden zbiera treści do trenowania modeli, drugi buduje indeks pod funkcję wyszukiwania, trzeci wchodzi na stronę dopiero wtedy, gdy poprosi o to użytkownik w rozmowie. OpenAI zapisuje to w dokumentacji wprost: ustawienia dla poszczególnych agentów są od siebie niezależne, więc można dopuścić OAI-SearchBot, żeby strona pojawiała się w wynikach, i równocześnie zablokować GPTBot, żeby treść nie trafiła do trenowania modeli (dokumentacja OpenAI).
| Rola | Przykładowe nazwy | Co daje blokada w robots.txt |
|---|---|---|
| Wyszukiwanie i cytowania | OAI-SearchBot, Claude-SearchBot, PerplexityBot | Strona przestaje pojawiać się w odpowiedziach z odsyłaczem — to bezpośrednia utrata ruchu |
| Trenowanie modeli | GPTBot, ClaudeBot, CCBot, meta-externalagent, Amazonbot | Treść nie zasila zbiorów treningowych; obecność w cytowaniach pozostaje bez zmian |
| Wejście na żądanie użytkownika | ChatGPT-User, Claude-User, Perplexity-User | Asystent nie otworzy strony, o którą poprosi użytkownik w rozmowie. Wyjątek: wedle dokumentacji Perplexity agent Perplexity-User zwykle nie stosuje się do robots.txt, więc reguła może go nie zatrzymać |
| Kontrola użycia (to nie są roboty) | Google-Extended, Applebot-Extended | Nie zatrzymuje żadnego pobrania — zmienia wyłącznie dozwolone użycie już pobranej treści |
Każda nazwa w tabeli pochodzi z dokumentacji właściciela bota, a narzędzie pokazuje przy wyniku datę ostatniej weryfikacji tej listy. To ma znaczenie praktyczne: lista agentów zmienia się w czasie, a poradniki krążące po sieci potrafią latami powielać nazwy, które dawno straciły aktualność.
Dlaczego blokada crawlera treningowego nie odbiera cytowań
Zablokowanie agenta treningowego nie usuwa strony z odpowiedzi asystenta, bo za obecność w odpowiedziach odpowiada inny agent. Wedle dokumentacji OpenAI GPTBot pobiera treści, które mogą posłużyć do trenowania modeli, natomiast za pokazywanie witryn w wynikach wyszukiwania ChatGPT odpowiada OAI-SearchBot — i to dopiero wypisanie się spod tego drugiego sprawia, że strona nie będzie pokazywana w odpowiedziach wyszukiwania. Analogiczny podział ról ma Anthropic: ClaudeBot zbiera treści na potrzeby trenowania, a Claude-SearchBot analizuje strony pod kątem trafności wyników wyszukiwania w Claude.
Konsekwencja jest odwrotna, niż zakłada popularna intuicja „skoro blokuję AI, to blokuję wszystko”. Decyzja o niewpuszczaniu crawlerów treningowych jest wyborem licencyjnym i nie kosztuje ruchu. Kosztowna jest dopiero pomyłka przy jej wdrażaniu: dopisanie do tej samej grupy w robots.txt agenta wyszukującego „dla porządku”, bo nazwa wygląda podobnie. Efektem jest witryna, która znika z odpowiedzi z odsyłaczem, choć właściciel chciał tylko nie oddawać treści na trening.
Trzecia kategoria: wejście na żądanie użytkownika
Osobną grupę stanowią agenci, którzy nie crawlują witryn z własnej inicjatywy, tylko otwierają konkretny adres, gdy poprosi o to człowiek w rozmowie z asystentem. Należą do niej ChatGPT-User, Claude-User i Perplexity-User. Blokada tej grupy nie zmienia niczego w indeksach ani w zbiorach treningowych — sprawia natomiast, że użytkownik, który wkleja asystentowi Twój adres, nie dostanie odpowiedzi opartej na treści strony.
Jeden przypadek wymaga tu ostrożności w wyciąganiu wniosków. Dokumentacja Perplexity zaznacza, że Perplexity-User zwykle nie stosuje się do robots.txt właśnie dlatego, że działa na wyraźne żądanie człowieka. Reguła wpisana do pliku może więc w jego przypadku nie zostać uwzględniona i raport z tego narzędzia mówi to wprost, zamiast pokazywać takiego agenta jako „skutecznie zablokowanego”. Deklaracja w robots.txt jest prośbą, a nie zabezpieczeniem technicznym — realne odcięcie wymaga reguły po stronie serwera lub CDN.
Dlaczego nosnippet wycina stronę z odpowiedzi AI mimo otwartego robots.txt
Bo robots.txt reguluje pobranie, a dyrektywy snippetów regulują użycie już pobranej treści. To dwie niezależne warstwy i zamknięcie drugiej z nich nie zostawia w pierwszej żadnego śladu. Dyrektywa nosnippet zabrania pokazywania fragmentu tekstu w wynikach, a Google podaje, że dotyczy to wszystkich form wyników — łącznie z AI Overviews i AI Mode — oraz że uniemożliwia wykorzystanie treści jako bezpośredniego wsadu do tych odpowiedzi (dokumentacja znacznika meta robots). Strona zostaje w indeksie i jest normalnie pobierana, ale nie ma z czego zbudować odpowiedzi.
Ten sam skutek daje max-snippet:0, które Google opisuje jako równoważne dyrektywie nosnippet. Wartość max-snippet:-1 działa odwrotnie — pozostawia wyszukiwarce swobodę w doborze długości fragmentu. Warto sprawdzić, skąd wartość na stronie pochodzi, bo bywa dziedziczona z globalnego ustawienia wtyczki SEO, którego nikt świadomie nie wybierał.
Najczęściej przeoczaną drogą podania tych dyrektyw jest nagłówek HTTP. Google zaznacza, że każdą regułę zapisywaną w znaczniku meta robots można równie dobrze wysłać jako nagłówek X-Robots-Tag — a nagłówka nie widać w źródle strony, więc nie znajdzie go ani podgląd kodu w przeglądarce, ani wtyczka analizująca HTML. Ustawia go zwykle konfiguracja serwera lub warstwa CDN i potrafi zostać po środowisku testowym. Dlatego to narzędzie czyta nagłówki odpowiedzi, a nie tylko treść dokumentu.
Google-Extended i Applebot-Extended to nie są roboty
Te dwie nazwy nie pobierają niczego — są wyłącznie przełącznikami dozwolonego użycia treści, którą pobrał zwykły robot wyszukiwarki. Google podaje, że Google-Extended nie wpływa na obecność witryny w wyszukiwarce ani nie jest sygnałem rankingowym; steruje tym, czy treść może posłużyć do trenowania modeli Gemini i do uzupełniania nimi odpowiedzi. Apple formułuje to jeszcze ostrzej: Applebot-Extended nie crawluje stron, a witryny, które go blokują, nadal mogą pojawiać się w wynikach wyszukiwania.
Dlatego raport pokazuje je w osobnej sekcji, a nie we wspólnej tabeli botów. Wrzucenie ich między crawlery produkuje fałszywy alarm w rodzaju „bot zablokowany” tam, gdzie nic nie zostało zablokowane, i jest jednym z częstszych błędów narzędzi tej klasy. Podobny niuans dotyczy Amazona, który wedle własnej dokumentacji respektuje dodatkowo znacznik noarchive jako sygnał zakazu wykorzystania strony do trenowania — czyli klasyczna dyrektywa indeksowania pełni tam funkcję kontroli użycia.
Czym jest llms.txt i czy jest potrzebny
llms.txt to plik w formacie Markdown umieszczany pod adresem /llms.txt, który podaje modelom językowym uporządkowaną listę najważniejszych zasobów witryny w czystym tekście, z pominięciem nawigacji, reklam i skryptów. Propozycję ogłosił Jeremy Howard we wrześniu 2024 roku, a jej autorzy uzasadniają ją tym, że strony HTML są budowane dla ludzi i odzyskanie z nich czystego tekstu bywa trudne i nieprecyzyjne (llmstxt.org).
Trzeba przy tym uczciwie powiedzieć, czym llms.txt nie jest. To propozycja — tak nazywają ją sami autorzy — a nie norma pokroju RFC 9309 ani element dokumentacji wyszukiwarek. Publikowanie takiego pliku jest już dość powszechne i mają go między innymi dokumentacje techniczne OpenAI, Anthropic i Google Gemini, ale to nie czyni z niego mechanizmu o gwarantowanym skutku. Narzędzie sprawdza wyłącznie, czy plik istnieje i odpowiada kodem 200, i tak też opisuje wynik: brak pliku nie jest błędem. Przede wszystkim jednak llms.txt niczego nie odwraca — jeśli treść jest zablokowana w robots.txt albo wycięta dyrektywą nosnippet, dodanie pliku nie przywróci jej do odpowiedzi. Kolejność prac jest więc odwrotna niż w większości poradników: najpierw dostęp i dyrektywy użycia, dopiero potem dodatki.
Co ten test mierzy, a czego nie mierzy
Test pobiera badany adres kilka razy, za każdym razem podając inny nagłówek User-Agent, i zestawia wyniki z regułami z robots.txt, treścią surowego HTML oraz dyrektywami z meta i nagłówków. Wszystko, co pokazuje raport, jest pomiarem, a nie oceną — narzędzie nie wystawia punktacji „gotowości na AI”, bo nie istnieje wzorzec, wobec którego dałoby się taką liczbę zweryfikować.
- Nagłówek to nie tożsamość — sprawdzamy, czy serwer odrzuca żądanie po samym nagłówku User-Agent. Systemy ochrony weryfikują boty także po adresie IP i podpisie, więc wynik negatywny jest dowodem blokady, ale wynik pozytywny nie jest dowodem dostępu.
- Bez wykonywania JavaScriptu — raport podaje, ile słów znaleźliśmy w HTML-u z serwera. Tyle właśnie zobaczy crawler, który skryptów nie uruchamia; nie orzekamy natomiast, czy strona „wymaga JS”, bo tego nie zmierzyliśmy.
- Nieudane sprawdzenie to nie jest wynik czysty — gdy pobranie się nie powiedzie lub przekroczy budżet czasu, warstwa dostaje status „nie udało się sprawdzić”, a raport jawnie mówi, że jest niepełny.
- Nie mierzymy cytowań — tego, czy asystent faktycznie przywołał Twoją stronę w konkretnej odpowiedzi, nie da się ustalić z zewnątrz.
Jeśli interesuje Cię sama poprawność pliku i składnia reguł, użyj testera robots.txt — działa na tym samym silniku, ale ustawia w pierwszej kolejności roboty wyszukiwarek i analizę składni pliku. Szerzej o tym, jak przygotować treść pod odpowiedzi generowane przez AI, piszemy w przewodniku o SEO pod AI. Sposób, w jaki weryfikujemy fakty i aktualizujemy treści, opisujemy na stronie Metodologia.
Najczęstsze pytania
Czy zablokowanie GPTBota usunie moją stronę z odpowiedzi ChatGPT?
Nie. GPTBot zbiera treści na potrzeby trenowania modeli, a za pokazywanie witryn w wynikach wyszukiwania ChatGPT odpowiada osobny agent OAI-SearchBot. OpenAI podaje w dokumentacji, że ustawienia dla poszczególnych agentów są od siebie niezależne — można dopuścić OAI-SearchBot, żeby strona pojawiała się w wynikach, i jednocześnie zablokować GPTBota. Obecność w odpowiedziach z odsyłaczem tracisz dopiero wtedy, gdy zablokujesz agenta odpowiedzialnego za wyszukiwanie.
Dlaczego strona nie trafia do odpowiedzi AI, choć robots.txt jest otwarty?
Najczęściej dlatego, że blokuje ją dyrektywa użycia, a nie dyrektywa dostępu. Dyrektywy nosnippet oraz max-snippet:0 zabraniają pokazywania fragmentu treści, a Google podaje, że dotyczy to również AI Overviews i AI Mode oraz uniemożliwia wykorzystanie treści jako bezpośredniego wsadu do tych odpowiedzi. Dyrektywa może być podana nie w kodzie strony, lecz w nagłówku HTTP X-Robots-Tag, którego nie widać w źródle — dlatego warto sprawdzać nagłówki odpowiedzi, a nie tylko HTML.
Czy muszę dodać plik llms.txt, żeby AI widziało moją stronę?
Nie. llms.txt to propozycja ogłoszona przez Jeremy’ego Howarda we wrześniu 2024 roku — tak nazywają ją sami autorzy — a nie norma czy wymóg wyszukiwarek, więc brak tego pliku nie jest błędem. Plik nie zastępuje też dostępnej treści: jeśli strona jest zablokowana w robots.txt albo wycięta dyrektywą nosnippet, dodanie llms.txt niczego nie zmieni. Najpierw warto uporządkować dostęp i dyrektywy użycia.