Перейти к содержимому
SEO и краулеры

Как заблокировать AI-краулеры в WordPress (честно)

Чтобы GPTBot перестал обходить сайт на WordPress, добавьте в robots.txt такие строки:

Опубликовано

Чтобы GPTBot перестал обходить сайт на WordPress, добавьте в robots.txt такие строки:

User-agent: GPTBot
Disallow: /

Это всё, что нужно для послушных краулеров. Но давайте честно про то, что вы только что сделали: robots.txt — это просьба, а не забор. GPTBot от OpenAI скачивает файл и подчиняется ему. Скрапер, которому плевать на стандарт, скачивает тот же файл и игнорирует в нём каждую строку. Держите это различие в голове, прежде чем потратить полдня на его настройку.

Если хотите закрыть основные AI-краулеры за один заход, вот распространённые токены 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 — обучающий краулер OpenAI, CCBot — это Common Crawl (на данных которого потом обучаются многие модели), ClaudeBot — Anthropic, Google-Extended — токен Google для обучения ИИ, а Bytespider — это ByteDance. Обратите внимание: два из них уже нарушают модель вежливой просьбы — Bytespider и PerplexityBot неоднократно ловили на обходе сайтов, которые их запретили, и это публично задокументировано. Перечислить их всё равно полезно против честных ботов; но против тех, кто уже врёт о том, кто они, это не даёт ничего.

Как WordPress на самом деле отдаёт robots.txt

Именно здесь правки большинства людей молча ни на что не влияют. Если в корне сайта нет физического файла robots.txt, WordPress генерирует его на лету. Запрос обрабатывает функция do_robots() в wp-includes/functions.php, а вывод проходит через фильтр robots_txt. Галочка «Попросить поисковые системы не индексировать сайт» в разделе Настройки → Чтение переключает опцию blog_public — именно она заставляет этот виртуальный файл выдавать Disallow: /.

Так что правила для AI-краулеров можно дописать программно:

add_filter( 'robots_txt', function ( $output, $public ) {
    $output .= "User-agent: GPTBot\nDisallow: /\n";
    return $output;
}, 10, 2 );

А вот подвох, который съедает часы: как только в корне сайта появляется статический файл robots.txt, Apache или nginx отдаёт этот файл напрямую, и WordPress вообще не запускается. Фильтр robots_txt, редактор robots в Yoast/Rank Math, настройка Чтения — всё это обходится стороной. Если вы редактировали robots.txt в плагине, а живой файл так и не изменился, почти наверняка причина в этом. Откройте https://yoursite.com/robots.txt в приватном окне и сравните с тем, что, как вам кажется, вы задали. Если на диске лежит реальный файл — правьте именно его; фильтр здесь ни при чём.

Как это исправить, по порядку

Сначала напишите корректные правила. Правильно составьте синтаксис и список краулеров, чтобы случайно не заблокировать Googlebot. Наш правильный robots.txt для WordPress собирает блок AI-краулеров за вас и показывает готовый файл для вставки — это снимает путаницу «виртуальный против физического», потому что в итоге у вас один авторитетный файл.

Второе — убедитесь, что он живой. Запросите URL напрямую. Не доверяйте окну предпросмотра в плагине.

Третье — если вам нужно принуждение, а не вежливая просьба, поднимитесь выше по стеку. robots.txt живёт на уровне приложения и зависит от доброй воли бота. Чтобы действительно отказать в соединении, блокируйте по user-agent на уровне сервера. В .htaccess:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (GPTBot|CCBot|ClaudeBot|Bytespider) [NC]
RewriteRule .* - [F,L]
</IfModule>

Это возвращает 403 всему, что присылает такие user-agent. Наш генератор .htaccess может собрать это правило. Но поймите его ограничение: user-agent элементарно подделывается, поэтому так вы остановите только тех ботов, которые достаточно честны, чтобы представиться, — а это те же боты, которые и так соблюдают robots.txt. По-настоящему надёжный вариант — это CDN или WAF, который блокирует по проверенной личности краулера или диапазону IP. Готовое правило Cloudflare в один клик «Block AI Scrapers and Crawlers» — самый малозатратный вариант такого подхода, оно работает на границе сети, ещё до того, как запрос вообще доходит до WordPress.

Чего делать не стоит

Не блокируйте Google-Extended в надежде, что это уберёт вас из AI Overviews. Вот заблуждение, которое стоит развеять. Google-Extended — это продуктовый токен, а не краулер. Он управляет только тем, используется ли ваш контент для обучения и обоснования моделей Gemini. По собственной документации Google, он никак не влияет на то, как ваши страницы обходятся, индексируются и ранжируются в поиске Google. А AI Overviews строятся на основе обычного поискового индекса, который обходит Googlebot, — а не Google-Extended. Блокировка Google-Extended не уберёт вас из AI Overviews и не будет стоить вам ни одной позиции в поиске. Единственный способ не попадать в AI Overviews — заблокировать Googlebot или поставить странице noindex, что заодно полностью удалит вас из поиска. А это почти никогда не тот размен, который вам нужен.

Не относитесь к robots.txt как к средству защиты. Он публичный и носит рекомендательный характер. Указав в нём /wp-admin/ или приватный путь, вы просто публикуете карту того, где искать. Защищайте реальные эндпоинты аутентификацией, а не строкой disallow.

Не полагайтесь на мета-теги noai / noimageai. Их предложили, но не стандартизировали, и их соблюдает лишь горстка платформ. Это не универсальная защита.

Не думайте, что плагин «блокировки ИИ» сделал что-то большее, чем запись в robots.txt. Большинство из них пишут те же самые строки, что вы могли бы написать руками, и наследуют то же ограничение. Прежде чем доверять плагину, посмотрите, что он на самом деле изменил.

Всё ещё не выходит?

Если ваши правки не появляются, ответ почти всегда в том, что случайный физический robots.txt в корне сайта перекрывает виртуальный файл WordPress — запросите URL напрямую и проверьте. Если послушные боты пропали, а скраперы продолжают вас долбить, значит, вы упёрлись в потолок возможностей robots.txt, и следующий шаг — правило WAF или CDN, которое блокирует по проверенной личности, а не по вежливой просьбе.