Вот рабочие варианты - от простого к радикальному.
robots.txt: база, но не панацея
Классика. В корень сайта кладёте файл с запретами. Список AI-ботов обновляется постоянно рекомендую репозиторий ai.robots.txt (ищите на гитхабе), там собраны все: GPTBot, ClaudeBot, CCBot, Bytespider, PerplexityBot, Google-Extended, DeepSeekBot и ещё пара сотен:
| Код |
|---|
User-agent: GPTBot Disallow: / User-agent: ClaudeBot Disallow: / User-agent: PerplexityBot Disallow: / User-agent: CCBot Disallow: / User-agent: Bytespider Disallow: / User-agent: DeepSeekBot Disallow: / User-agent: Google-Extended Disallow: / |
Нюанс: robots.txt рекомендация, а не приказ. Порядочные боты подчиняются, наглые игнорируют.
Nginx хардблок роботов на уровне сервера
Если сайт на Nginx (что скорее всего), добавляете в server-блок:
| Код |
|---|
set $block 0;
if ($http_user_agent ~* "(GPTBot|ClaudeBot|Claude-User|PerplexityBot|CCBot|Bytespider|DeepSeekBot|Google-Extended|GoogleOther|anthropic-ai|Amazonbot|Applebot-Extended|FacebookBot|TikTokSpider|YouBot)") {
set $block 1;
}
if ($request_uri = "/robots.txt") {
set $block 0;
}
if ($block) {
return 403;
} |
Бот приходит, сверяется с User-Agent, получает 403. Googlebot в списке нет - поисковая выдача не страдает. Полный конфиг на ~150 ботов в ai.robots.txt
Apache — .htaccess
Для Apache аналогично:
| Код |
|---|
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (GPTBot|ClaudeBot|PerplexityBot|CCBot|Bytespider) [NC]
RewriteRule ^ - [F,L] |
Проверка кто всё ещё лезет
| Код |
|---|
grep -E "(GPTBot|ClaudeBot|Bytespider)" /var/log/nginx/access.log \
| awk '{print $1}' \
| sort | uniq -c | sort -rn |
Если кто-то долбится, невзирая на запреты — добавляете IP в iptables или fail2ban.