Если открыть access.log любого сайта, больше всего строк оставят не посетители и не атакующие, а боты: SEO-сервисы, которые строят базы ссылок, и краулеры, которые собирают тексты для обучения нейросетей. На серверах, которые мы проверили, они дали около 23,5 тысячи запросов от тысячи адресов за сутки. Это не атака, и блокировать их или нет — решение владельца сайта. Разберём, кого можно блокировать без потерь, а кого трогать нельзя.
Сколько их
Цифры с серверов, где работает анализ журналов KIPBan, за сутки на 9 октября 2026 года:
| Кто | Запросов | Адресов | Серверов |
|---|---|---|---|
| Агрессивные SEO-боты | 20 007 | 638 | 4 |
| Краулеры для обучения ИИ | 3 458 | 401 | 5 |
Для сравнения: перебор паролей SSH на всех 13 серверах дал за те же сутки около 19 тысяч попыток. Боты SEO-сервисов на четырёх серверах сделали больше запросов, чем перебор паролей SSH на всех тринадцати.
Три разных вида ботов ИИ
Главная ошибка — блокировать всё, где в User-Agent есть «GPT» или «Claude». У крупных компаний разные боты делают разные вещи:
| Компания | Обучение моделей | Поиск в ИИ-ассистенте | Запрос по просьбе пользователя |
|---|---|---|---|
| OpenAI | GPTBot | OAI-SearchBot | ChatGPT-User |
| Anthropic | ClaudeBot | Claude-SearchBot | Claude-User |
| Perplexity | — | PerplexityBot | Perplexity-User |
| Common Crawl | CCBot | — | — |
| Meta | meta-externalagent | — | meta-externalfetcher |
- Обучающие краулеры забирают тексты в датасеты. Если их заблокировать, ваши тексты не попадут в следующие версии моделей. На видимость сайта сегодня это не влияет.
- Поисковые боты ИИ строят индекс, из которого ассистент отвечает на вопросы со ссылками на источники. Если заблокировать их, сайт пропадёт из таких ответов, а это уже растущий источник переходов.
- Запросы пользователя — это человек, который попросил ассистента открыть вашу страницу. Блокировать их — всё равно что не пускать посетителя.
С Perplexity есть тонкость. По описанию самой Perplexity, PerplexityBot собирает индекс для ответов Perplexity, а не данные для обучения. Многие списки, в том числе шаблон KIPBan, относят его к краулерам. Если вам важна видимость в Perplexity, учитывайте это, прежде чем включать блокировку краулеров.
SEO-боты
Боты сервисов анализа ссылок и конкурентов: AhrefsBot, SemrushBot, MJ12bot (Majestic), DotBot (Moz), BLEXBot, MegaIndex. Сюда же часто относят Bytespider от ByteDance. Они обходят сайт целиком и часто, и пользы для владельца сайта от них нет, если он сам не пользуется этими сервисами. Если пользуется, например смотрит свой сайт в Ahrefs, бот этого сервиса блокировать не стоит.
Поисковые системы к ним не относятся. Googlebot, YandexBot и Bingbot трогать нельзя ни при каких настройках, иначе сайт выпадет из поиска.
Способ 1. robots.txt
Начинать стоит с robots.txt. Его соблюдают все крупные компании, а запрет для обучающего краулера не мешает поисковому боту той же компании:
User-agent: GPTBot
Disallow: /
User-agent: ClaudeBot
Disallow: /
User-agent: CCBot
Disallow: /
User-agent: meta-externalagent
Disallow: /
User-agent: Google-Extended
Disallow: /
User-agent: AhrefsBot
Disallow: /
User-agent: SemrushBot
Disallow: /
Google-Extended — не отдельный бот, а только метка для robots.txt. Сайт продолжает обходить обычный Googlebot, а метка запрещает использовать тексты для обучения Gemini. В журнале её не увидеть и по журналу не заблокировать.
Минус robots.txt в том, что это просьба. Боты, которые его игнорируют, продолжат ходить, а честным понадобятся часы или дни, чтобы перечитать файл.
Способ 2. Отказ по User-Agent в nginx
map $http_user_agent $blocked_bot {
default 0;
~*(GPTBot|ClaudeBot|CCBot|meta-externalagent|AhrefsBot|SemrushBot|MJ12bot|DotBot|BLEXBot|MegaIndex|Bytespider) 1;
}
server {
# ...
if ($blocked_bot) { return 403; }
}
Это работает сразу и точно, но каждый запрос всё равно доходит до nginx, а боты, получив 403, обычно продолжают стучаться.
Способ 3. Бан по журналу
Самый жёсткий вариант: jail fail2ban, который банит адрес на брандмауэре после первого же запроса с таким User-Agent. Запросы перестают доходить до сервера совсем. Здесь нужна аккуратность со списком: одна лишняя строка в регулярном выражении, например bot без уточнения, и в бан уйдёт Googlebot.
Как это сделано в KIPBan
В каталоге шаблонов KIPBan есть два шаблона, которые владелец включает по своему выбору: «Агрессивные SEO-боты» и «Краулеры для обучения ИИ». Мы не называем их защитой от атак, это настройка. Оба шаблона банят с первого запроса, и оба не трогают:
- поисковики: Google, Яндекс, Bing;
- превью ссылок в мессенджерах и соцсетях;
- ИИ-поиск и запросы по просьбе пользователя:
ChatGPT-User,OAI-SearchBot,Claude-SearchBot,Perplexity-User.
Ни один шаблон KIPBan не блокирует curl, Wget и python-requests: ими ходят мониторинг, вебхуки и платёжные уведомления.
Анализ журналов сначала показывает, сколько таких ботов приходит на сервер, а jail включается в режиме наблюдения: он считает, кого забанил бы, и ничего не блокирует. Так видно, что именно вы отрежете, до того как отрежете. Учтите одно: в режиме бана адреса уходят в общую базу KIPBan, в том числе по этим двум шаблонам.
Что выбрать
- Не хотите, чтобы тексты шли в обучение, но хотите оставаться в ответах ассистентов: robots.txt для обучающих краулеров, поисковых ботов ИИ не трогать.
- Боты нагружают сервер: бан по журналу для SEO-ботов, которыми вы не пользуетесь, и для обучающих краулеров.
- Сайт живёт за счёт поиска: ничего, что касается Google, Яндекса и Bing, никаких широких масок вроде
botилиcrawler.
Вопросы
Выпадет ли сайт из ChatGPT, если заблокировать GPTBot?
Нет. GPTBot собирает данные для обучения. За поиск в ChatGPT отвечает OAI-SearchBot, а за открытие страниц по просьбе пользователя ChatGPT-User. Пока они не заблокированы, сайт может появляться в ответах ChatGPT.
Можно ли заблокировать Google-Extended в nginx?
Нет. Google-Extended не отдельный бот, а метка для robots.txt. Страницы обходит обычный Googlebot, а запрет в robots.txt только не даёт использовать их для обучения моделей Google.
Соблюдают ли ИИ-краулеры robots.txt?
Боты OpenAI, Anthropic, Google, Common Crawl и Meta заявляют, что соблюдают. Некоторые другие боты его игнорируют, для них нужен отказ по User-Agent или бан по журналу.