Przeskocz do treści
Ostoia Prześwietlenie za 0 zł

Artykuł · 9 sierpnia 2026 · Maciek, VIAM Agency

Trzy strony, które odsyłały roboty AI. Kod 403, którego nikt nie widział

Sprawdziliśmy dziewięć stron prawdziwym zapukaniem pod adres, podszywając się kolejno pod cztery roboty. Trzy firmy odsyłały roboty AI błędem 403, a Googlebotowi oddawały stronę normalnie. Blokada siedziała po stronie firmy, która trzyma serwer i nie dało się jej zdjąć z naszej strony. Pomiar z 9 sierpnia 2026, dziewięć adresów, cztery roboty.

Zero linków to nie jest mało linków

Szóstego sierpnia robiłem coś zupełnie innego. Zastanawialiśmy się nad nawigacją wstrzykiwaną JavaScriptem — takim menu, które w kodzie strony nie istnieje, a pojawia się dopiero, kiedy przeglądarka uruchomi skrypt. Chciałem policzyć, ile linków widzi na stronie głównej robot, który nie odpala skryptów. Dziewięć adresów, dziesięć minut, nudna robota na koniec dnia.

Gabinet weterynaryjny pokazał zero linków. Salon wykończeń wnętrz — też zero. Przeglądarce te same strony oddawały trzynaście i dziewiętnaście.

I tu jest cała rzecz, bo te dwie liczby wyglądają podobnie, a znaczą coś zupełnie innego. Trzy linki to jest „mało linków”. Zero linków to jest „nie dostałem strony”. Nie ma takiej strony, na której nie byłoby ani jednego odnośnika. Skoro robot nie zobaczył żadnego, to znaczy, że nie zobaczył niczego.

Zajrzałem w kod odpowiedzi. I wtedy zrobiło się ciekawie.

Cztery kody obok siebie

Ten sam adres. Ta sama minuta. Jedyna różnica jest w jednym wierszu nagłówka żądania, w miejscu, w którym program przedstawia się serwerowi.

odpowiedź serwera · 2026-08-09
$ curl -A "GPTBot"        https://gabinet-weterynaryjny.pl   →  403
$ curl -A "ClaudeBot"     https://gabinet-weterynaryjny.pl   →  403
$ curl -A "PerplexityBot" https://gabinet-weterynaryjny.pl   →  403
$ curl -A "Googlebot"     https://gabinet-weterynaryjny.pl   →  200
$ curl                             https://gabinet-weterynaryjny.pl   →  200
# 403 = „odmawiam". 200 = „proszę bardzo".

Strona działała. Telefon dzwonił. Wizytówka w Google świeciła. Klienci wchodzili, czytali, umawiali wizyty. Wszystko było w porządku — poza tym, że dla ChatGPT, Claude'a i Perplexity ta strona fizycznie nie istniała.

Sprawdziłem pozostałe siedem. Trzeci przypadek okazał się ciekawszy od dwóch pierwszych i wymaga precyzji, bo tu bardzo łatwo powiedzieć o jedno słowo za dużo.

Kody odpowiedzi serwera na żądania czterech robotów, pomiar 9 sierpnia 2026
FirmaGPTBotClaudeBotPerplexityBotGooglebot
gabinet weterynaryjny403403403200
salon wykończeń wnętrz403403403200
pogotowie wod-kan 24h200403200200
pozostałych sześć firm200200200200

Przesuń tabelę w bok →

Pomiar 2026-08-09, prawdziwe zapukanie pod adres, nie odczyt deklaracji z pliku. Nazwy firm zamienione na branże, liczby bez zmian.

Trzy firmy odsyłały roboty AI błędem 403. Dwie z nich blokowały wszystkie trzy roboty naraz. Trzecia blokowała wyłącznie ClaudeBota — GPTBot i PerplexityBot dostawały u niej normalne 200.

Ta różnica ma znaczenie i dlatego stoi tu osobno, w trzech zdaniach zamiast w jednym. Napisanie „trzy firmy odsyłały ChatGPT błędem 403” byłoby krótsze, ładniejsze i nieprawdziwe. Pierwsza wersja tej strony, którą napisaliśmy, miała dokładnie takie zdanie — i dwa akapity niżej sama sobie zaprzeczała tabelą.

Dlaczego nasza własna kontrola świeciła na zielono

Teraz najbardziej niewygodna część.

Mieliśmy narzędzie, które sprawdzało dostępność stron dla robotów AI. Chodziło regularnie, obejmowało wszystkich klientów i meldowało zielone „w porządku” dla wszystkich dziewięciu firm. Także dla tych trzech.

Bo sprawdzało robots.txt.

Robots.txt to plik tekstowy, w którym właściciel strony wypisuje, których robotów sobie życzy, a których nie. Wszystkie trzy strony miały w nim grzeczne User-agent: * / Allow: /, czyli „wchodźcie wszyscy”. Narzędzie odczytywało tę deklarację, porównywało z listą nazw i stawiało zieloną plakietkę.

Tylko że robots.txt to prośba. Serwer to bramkarz. Można mieć na drzwiach tabliczkę „zapraszamy wszystkich”, a przy drzwiach ochroniarza, który nie wpuszcza trzech konkretnych osób. Tabliczka nie kłamie. Ona po prostu nie ma nic do gadania.

To jest podręcznikowy przykład tego, co u siebie nazywamy cichym fałszywym sukcesem: system melduje „sprawdzone, wszystko gra”, bo sprawdził wyłącznie to, co potrafi sprawdzić. Nie skłamał. Odpowiedział na inne pytanie niż to, które mu zadaliśmy.

Skąd wzięła się ta blokada

Pierwsza hipoteza była taka, że ktoś kiedyś coś wpisał w plikach strony. Sprawdziliśmy przez FTP: w .htaccess obu stron nie ma ani jednej reguły odwołującej się do nazwy robota. Nikt tego nie wpisywał.

Druga hipoteza okazała się trafna. Kod 403 generował serwer, zanim żądanie zdążyło dotknąć jakiegokolwiek pliku. Obie te firmy stoją u innego operatora serwera niż reszta naszych klientów, a tam blokada robotów AI jest włączona domyślnie — jako element zabezpieczeń. Nikt jej nie włączał u siebie. Nikt o niej nie wiedział. Nikt nie mógł jej zobaczyć, patrząc na stronę.

Z punktu widzenia właściciela gabinetu wygląda to dokładnie tak: nic się nie stało. Żadnego alertu, żadnego maila, żadnego objawu.

Próba naprawy, która nie zmieniła nic

Siódmego sierpnia sprawdziliśmy, czy da się to obejść z naszej strony. Wybraliśmy jednego klienta, zrobiliśmy kopię zapasową pliku, ustawiliśmy automatyczne cofnięcie zmiany i dopisaliśmy do .htaccess regułę jawnie przepuszczającą te trzy roboty.

Wynik: 403 przed, 403 po, 403 po cofnięciu.

Blokada działa wyżej, niż sięgają nasze pliki. Reguła w .htaccess jest przetwarzana przez serwer dopiero po tym, jak żądanie przejdzie przez warstwę zabezpieczeń — a ono do tego momentu nie dochodzi. Zostaje jedna droga: zgłoszenie u operatora serwera i pilnowanie go do skutku.

Dlatego w naszej ofercie nie ma słowa „naprawiamy”. Jest „wykrywamy” i „prowadzimy sprawę”. Ta różnica kosztowała nas jeden wieczór testów i jest warta każdej minuty, bo alternatywą było sprzedawanie czegoś, czego nie umiemy zrobić.

Jak sprawdzić to u siebie, dziś, za darmo

Nie potrzebujesz do tego żadnego narzędzia ani żadnego dostępu. Potrzebujesz terminala — na Macu to program Terminal, na Windowsie PowerShell — i adresu własnej strony. Wklej to, podmieniając adres:

skopiuj, podmień adres, wklej
# pięć pytań do Twojego serwera, jedno po drugim
for UA in GPTBot ClaudeBot PerplexityBot OAI-SearchBot Googlebot; do
  echo -n "$UA: "
  curl -s -o /dev/null -w "%{http_code}\n" -A "$UA" https://twojafirma.pl
done

# wynik, którego chcesz:
GPTBot: 200
ClaudeBot: 200
PerplexityBot: 200
OAI-SearchBot: 200
Googlebot: 200

Pięć razy 200 i temat jest zamknięty. Jedno 403 znaczy, że masz problem, o którym nie wiedziałeś.

Dwie rzeczy warto przy tym wiedzieć. Po pierwsze, ten test pyta wyłącznie o stronę główną. Blokada założona na jeden katalog nam umknie i to jest ograniczenie także naszego narzędzia — piszemy o tym również na stronie Puchacza. Po drugie, wynik z jednego dnia jest wynikiem z jednego dnia. Ustawienia hostingu bywają zmieniane bez ogłoszenia, a stary robots.txt potrafi wrócić przy aktualizacji WordPressa.

Co zrobić, jeśli u Ciebie też jest 403

  1. Sprawdź, czy Googlebot dostaje 200. Jeśli tak, Twoja strona działa i nie ma awarii. To zawęża sprawę do jednej rzeczy: blokady wymierzonej w roboty AI.
  2. Zajrzyj do własnego robots.txt pod adresem twojafirma.pl/robots.txt. Jeśli są tam nazwy robotów przy słowie Disallow, sprawa jest prosta i kończy się na jednym pliku.
  3. Jeśli robots.txt jest czysty, napisz do hostingu. W zgłoszeniu podaj konkret: adres, nazwę robota, kod odpowiedzi i datę pomiaru. Poproś o wyłączenie blokady robotów AI na Twoim koncie. Ogólne „coś nie działa” utknie na pierwszej linii wsparcia.
  4. Po odpowiedzi hostingu zapukaj jeszcze raz. Deklaracja, że zmiana została wprowadzona, nie jest tym samym, co kod 200 na ekranie. To jest dokładnie ten sam błąd, który popełniliśmy my, ufając plikowi zamiast serwerowi.

Czy w ogóle warto się tym przejmować

Uczciwa odpowiedź brzmi: dziś ten kanał jest mały. U wszystkich naszych klientów razem ruch z asystentów AI to 21 sesji przez 28 dni, wszystkie z ChatGPT. U dwóch firm to około 2,6–2,7% wszystkich wejść, u reszty ułamek procenta, u trzech dokładnie zero.

Gdyby ktoś sprzedawał Ci dziś „ruch z AI” jako źródło klientów, pokaż mu tę liczbę i poproś o jego własną.

A mimo to sprawdzamy to przy każdym pomiarze i uważamy, że warto. Z jednego powodu: zamknięte drzwi zostają zamknięte. Blokada z lipca będzie działać w grudniu, jeśli nikt do nich nie zapuka. Koszt sprawdzenia to kilka sekund. Koszt niesprawdzenia jest nieznany, bo nie widać go w żadnym raporcie — a to jest najgorszy rodzaj kosztu.

I jeszcze jedno, mniej oczywiste. Ta sama warstwa zabezpieczeń, która odsyła GPTBota, odsyła też sporo innych rzeczy: narzędzia do sprawdzania szybkości, walidatory, podglądy linków w komunikatorach. Jeśli ktoś wklei Twój adres na Messengerze i nie wyświetli się żaden podgląd, to bywa ten sam problem.

Robots.txt to prośba, nie przepustka. I nikt tego nie sprawdza, dopóki nie zapuka.

Zaczęliśmy od liczenia linków, a skończyliśmy na tym, że przez tygodnie trzech naszych klientów było dla ChatGPT nie do pobrania, a nasze narzędzie meldowało, że wszystko gra. Nie dlatego, że narzędzie było złe. Dlatego, że pytało o deklarację zamiast o rzeczywistość.

Cały moduł Puchacz powstał z tego jednego wieczoru.

Nie chcesz otwierać terminala

Podaj adres, zapukam za Ciebie i odeślę cztery kody odpowiedzi z datą i godziną pomiaru. Bez karty, bez rozmowy sprzedażowej i bez żadnego dostępu do Twoich systemów.

Sprawdź, czy ChatGPT może pobrać Twoją stronę

Jeśli wszystko jest w porządku, napiszę to jednym zdaniem i nie będę Ci niczego sprzedawał.

Nazwy robotów i sposób ich rozpoznawania podają sami dostawcy: OpenAI · Anthropic · Google.

Wersja robocza — układ i teksty do akceptacji.