Jak zablokować roboty AI w WordPress (bez ściemniania)
Aby powstrzymać GPTBot przed indeksowaniem witryny WordPress, dodaj te linijki do pliku robots.txt:
Opublikowano
Aby powstrzymać GPTBot przed indeksowaniem witryny WordPress, dodaj te linijki do pliku robots.txt:
User-agent: GPTBot
Disallow: /
To cała naprawa w przypadku dobrze zachowujących się robotów. Ale bądź ze sobą szczery co do tego, co właśnie zrobiłeś: robots.txt to prośba, a nie płot. GPTBot od OpenAI pobiera plik i się do niego stosuje. Scraper, który nie respektuje standardu, pobiera ten sam plik i ignoruje każdą jego linijkę. Miej to rozróżnienie przed oczami, zanim poświęcisz całe popołudnie na dopracowywanie tego.
Jeśli chcesz jednym ruchem objąć najważniejsze roboty AI, oto typowe tokeny user-agent:
User-agent: GPTBot
Disallow: /
User-agent: Google-Extended
Disallow: /
User-agent: CCBot
Disallow: /
User-agent: ClaudeBot
Disallow: /
User-agent: PerplexityBot
Disallow: /
User-agent: Bytespider
Disallow: /
GPTBot to robot treningowy OpenAI, CCBot to Common Crawl (na którym pośrednio trenuje wiele modeli), ClaudeBot to Anthropic, Google-Extended to token Google służący do trenowania AI, a Bytespider należy do ByteDance. Zwróć uwagę, że dwa z nich już łamią model uprzejmej prośby: Bytespider i PerplexityBot zostały publicznie udokumentowane podczas indeksowania witryn, które im tego zabraniały. Wypisanie ich nadal pomaga wobec uczciwych botów; nie daje natomiast nic wobec tych, które już kłamią na temat swojej tożsamości.
Jak WordPress faktycznie serwuje robots.txt
To właśnie tutaj edycje większości ludzi po cichu nie robią nic. Jeśli w katalogu głównym witryny nie ma fizycznego pliku robots.txt, WordPress generuje go w locie. Żądanie obsługuje funkcja do_robots() w pliku wp-includes/functions.php, a wynik przechodzi przez filtr robots_txt. Zaznaczenie opcji „Proś wyszukiwarki o nieindeksowanie tej witryny” w Ustawienia → Czytanie przełącza opcję blog_public, co sprawia, że ten wirtualny plik zwraca Disallow: /.
Możesz więc dołączać reguły dla robotów AI programowo:
add_filter( 'robots_txt', function ( $output, $public ) {
$output .= "User-agent: GPTBot\nDisallow: /\n";
return $output;
}, 10, 2 );
A oto haczyk, który pożera godziny: w momencie, gdy w katalogu głównym witryny istnieje statyczny plik robots.txt, Apache lub nginx serwuje go bezpośrednio, a WordPress w ogóle się nie uruchamia. Filtr robots_txt, edytor robots.txt w Yoast/Rank Math, ustawienie w sekcji Czytanie — wszystko zostaje pominięte. Jeśli edytowałeś robots.txt we wtyczce, a plik na serwerze się nie zmienił, to prawie zawsze właśnie dlatego. Sprawdź https://twojawitryna.com/robots.txt w oknie prywatnym i porównaj to z tym, co według Ciebie ustawiłeś. Jeśli na dysku jest prawdziwy plik, edytuj ten plik; filtr nie ma tu znaczenia.
Naprawa, po kolei
Najpierw napisz czyste reguły. Zadbaj o poprawną składnię i listę robotów, żeby przez przypadek nie zablokować Googlebota. Nasz generator robots.txt tworzy za Ciebie blok reguł dla robotów AI i pokazuje dokładny plik do wklejenia, co pozwala obejść zamieszanie wirtualny-kontra-fizyczny, bo na końcu masz jeden miarodajny plik.
Po drugie, potwierdź, że działa na żywo. Pobierz adres URL bezpośrednio. Nie ufaj podglądowi we wtyczce.
Po trzecie, jeśli potrzebujesz wymuszenia zamiast uprzejmej prośby, wejdź wyżej w stos technologiczny. robots.txt działa na warstwie aplikacji i zależy od dobrej woli bota. Aby faktycznie odmówić połączenia, blokuj po user-agencie na poziomie serwera. W pliku .htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (GPTBot|CCBot|ClaudeBot|Bytespider) [NC]
RewriteRule .* - [F,L]
</IfModule>
To zwraca kod 403 wszystkiemu, co wysyła te user-agenty. Nasz generator .htaccess potrafi złożyć taką regułę. Zrozum jednak jej ograniczenie: user-agenty można trywialnie sfałszować, więc zatrzymuje to jedynie boty na tyle uczciwe, że się przedstawiają — czyli te same boty, które już i tak respektują robots.txt. Naprawdę solidną opcją jest CDN lub WAF, który blokuje na podstawie zweryfikowanej tożsamości robota lub zakresu adresów IP. Reguła zarządzana Cloudflare „Block AI Scrapers and Crawlers”, uruchamiana jednym kliknięciem, to najmniej pracochłonna wersja tego rozwiązania i działa na brzegu sieci, zanim żądanie w ogóle dotrze do WordPressa.
Czego nie robić
Nie blokuj Google-Extended, sądząc, że trzyma Cię to z dala od AI Overviews. To nieporozumienie warte sprostowania. Google-Extended to token produktowy, a nie robot. Kontroluje jedynie to, czy Twoje treści są używane do trenowania i osadzania modeli Gemini. Zgodnie z własną dokumentacją Google nie ma to żadnego wpływu na to, jak Twoje strony są indeksowane, katalogowane ani pozycjonowane w wyszukiwarce Google. A AI Overviews są budowane ze zwykłego indeksu wyszukiwania, który indeksuje Googlebot — a nie z Google-Extended. Zablokowanie Google-Extended nie usunie Cię z AI Overviews i nie będzie Cię kosztować ani jednej pozycji w wyszukiwarce. Jedynym sposobem, by trzymać się z dala od AI Overviews, jest zablokowanie Googlebota lub oznaczenie strony jako noindex, co jednocześnie całkowicie usuwa Cię z wyszukiwarki. To prawie nigdy nie jest opłacalna zamiana.
Nie traktuj robots.txt jako mechanizmu zabezpieczeń. Jest on publiczny i ma charakter doradczy. Wypisanie w nim /wp-admin/ albo prywatnej ścieżki tylko publikuje mapę tego, gdzie szukać. Chroń prawdziwe punkty końcowe uwierzytelnianiem, a nie linijką disallow.
Nie polegaj na metatagach noai / noimageai. Zostały zaproponowane, ale nie ustandaryzowane, i honoruje je tylko garstka platform. Nie stanowią ogólnej obrony.
Nie zakładaj, że wtyczka „blokująca AI” zrobiła coś więcej niż zapisanie robots.txt. Większość z nich zapisuje te same linijki, które napisałbyś ręcznie, i dziedziczy to samo ograniczenie. Zanim jej zaufasz, sprawdź, co ta wtyczka faktycznie zmieniła.
Nadal utknąłeś?
Jeśli Twoje zmiany się nie pojawiają, odpowiedzią prawie zawsze jest zabłąkany fizyczny plik robots.txt w katalogu głównym witryny, który nadpisuje ten wirtualny z WordPressa — pobierz adres URL bezpośrednio i sprawdź. Jeśli boty przestrzegające zasad zniknęły, ale scrapery wciąż Cię nękają, dotarłeś do granicy możliwości robots.txt, a kolejnym krokiem jest reguła WAF lub CDN, która blokuje na podstawie zweryfikowanej tożsamości, a nie uprzejmej prośby.