Современный интернет заполнен не только полезными поисковыми роботами (вроде Googlebot или Яндекс.Робот), но и агрессивными парсерами, нейросетями (AI), которые собирают контент для обучения, а также нежелательными ботами, ворующими данные или накручивающими статистику.
Если вы заметили возросшую нагрузку на сервер или подозрительную активность в логах, лучший способ защитить ресурс — настроить блокировку через файл .htaccess. Это самый быстрый способ закрыть доступ к сайту на уровне веб-сервера Apache без установки лишних плагинов.
В этой статье мы разберем, как происходит блокировка ботов по User Agent, IP, реферерам, а также как правильно составить правила (RewriteCond) для фильтрации трафика.
- Зачем блокировать AI ботов и парсеры
- Где находится файл htaccess и как его редактировать
- Блокировка по User-Agent (самый эффективный способ)
- Блокировка по IP и диапазонам адресов
- Ограничение доступа по стране (GeoIP)
- Защита от ботов, которые маскируются под браузеры
- Использование SetEnvIfNoCase для гибкой блокировки
- Чего нельзя делать: важные нюансы
- Альтернативы и комбинирование
- Заключение
Зачем блокировать AI ботов и парсеры
Многие владельцы сайтов сталкиваются с проблемой, когда неизвестные боты начинают красть уникальный контент для обучения нейросетей (AI) или для создания зеркал. Это приводит к:
- Росту нагрузки на сервер (сервер тратит ресурсы на отдачу страниц ботам, которые не приносят клиентов).
- Искажению статистики в счетчиках.
- Краже контента, что может негативно сказаться на поисковой выдаче вашего сайта.
Использование файла htaccess позволяет точечно ограничить доступ к вашему ресурсу, не дожидаясь, пока боты «съедят» весь лимит трафика хостинга.
Где находится файл htaccess и как его редактировать
Файл .htaccess (обратите внимание на точку в начале имени) обычно лежит в корневой папке вашего сайта. Если его нет, создайте пустой текстовый документ и назовите его .htaccess.
Важно: Перед внесением изменений сделайте резервную копию файла. Ошибки в синтаксисе могут привести к ошибке 500 Internal Server Error.
Блокировка по User-Agent (самый эффективный способ)
Чтобы заблокировать ботов, которые содержат в своем названии определенные ключи (например, GPTBot, Bytespider, CCBot), используется модуль mod_rewrite.
Добавьте в начало файла следующие строки:
# Ultimate AI Block List v1.8 20260105
# https://perishablepress.com/ultimate-ai-block-list/
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (\.ai|-ai|_ai|ai\.|ai-|ai_|ai=|AddSearchBot|Agentic|AgentQL|Agent\ 3|Agent\ API|Agent-|AI\ Agent|AI\ Article\ Writer|AI\ Assistant|AI\ Chat|AI\ Content\ Detector|AI\ Detection|AI\ Dungeon) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (AI\ Journalist|AI\ Legion|AI\ RAG|AI\ Search|AI\ SEO\ Crawler|AI\ Training|AI\ Web|AI\ Writer|AI2|AIBot|aiHitBot|AIMatrix|Airesearch|AISearch|AITraining|Alexa|Alice\ Yandex|AliGenie|AliyunSec|Alpha\ AI) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (AlphaAI|Amazon|Amelia|AndersPinkBot|AndiBot|Anomura|Anonymous\ AI|Anthropic|AnyPicker|Anyword|Applebot|Aria\ AI|Aria\ Browse|Articoolo|Ask\ AI|Atlassian|AutoGen|Automated\ Writer|AutoML|Autonomous\ RAG) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (AutoRAG|Awario|AWS\ Trainium|Azure|BabyAGI|BabyCatAGI|BardBot|Basic\ RAG|Bedrock|Big\ Sur|Bigsur|Botsonic|Brightbot|Browser\ MCP\ Agent|Browser\ Use|BuddyBot|Bytebot|ByteDance|Bytespider|CarynAI) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (CatBoost|CC-Crawler|CCBot|Chai|Channel3Bot|Character|Charstar\ AI|Chatbot|Chatsonic|ChatUser|Chinchilla|Claude|ClearScope|Clearview|Cognitive\ AI|Cohere|Common\ Crawl|CommonCrawl|Compass|Content\ Harmony) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (Content\ King|Content\ Optimizer|Content\ Samurai|ContentAtScale|ContentBot|Contentedge|ContentShake|Conversion\ AI|Copilot|CopyAI|Copymatic|Copyscape|CoreWeave|Corrective\ RAG|Cotoyogi|CRAB|Crawl4AI|CrawlQ\ AI|Crawlspace|Crew\ AI) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (CrewAI|Crushon\ AI|Cypex|DALL-E|DarkBard|DarkBERT|DataFor|DataProvider|Datenbank\ Crawler|DeepAI|Deep\ AI|DeepL|DeepMind|Deep\ Research|DeepResearch|DeepSeek|Devin|Diffbot|Dolma|Doubao\ AI) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (DuckAssistBot|DuckDuckGo\ Chat|DuckDuckGo-Enhanced|Echobot|Echobox|Elixir|FacebookBot|FacebookExternalHit|Factset|Falcon|FIRE-1|Firebase|Firecrawl|Flyriver|Frase\ AI|FriendlyCrawler|Gato|Gemini|Gemma|Gen\ AI) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (GenAI|Generative|Genspark|Gentoo-chat|Ghostwriter|GigaChat|GLM|GodMode|Goose|GPT|Grammarly|Grendizer|Grok|Groq|GT\ Bot|GTBot|GTP|Hemingway\ Editor|Hetzner|Hugging) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (Hunyuan|Hybrid\ Search\ RAG|Hypotenuse\ AI|iAsk|IbouBot|ICC-Crawler|Ideogram|ImageGen|Imagen|ImagesiftBot|ImageSpider|img2dataset|imgproxy|INK\ Editor|INKforall|Instructor|IntelliSeek|Inferkit|ISSCyberRiskCrawler|Janitor\ AI) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (Jasper|Jenni\ AI|Julius\ AI|Kafkai|Kaggle|Kangaroo|Keyword\ Density\ AI|Kimi|Klaviyo|Knowledge|KomoBot|Kruti|KunatoCrawler|LAIONDownloader|LangChain|Langfuse|Language\ AI|Le\ Chat|Lensa|Leonardo) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (Lightpanda|LightRAG|LinerBot|LinkupBot|LLaMA|LCC|LLM|Local\ RAG\ Agent|Lovable|Magistral|magpie-crawler|MAI-Image|Manus|MarketMuse|MBZUAI|Meltwater|Meta-AI|Meta-External|Meta-Webindexer|Meta\ AI) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (MetaAI|MetaTagBot|Middleware|Midjourney|Mini\ AGI|MiniMax|Mintlify|Mistral|Mixtral|model-training|Molmo|Monica|Nano|Narrative|NeevaBot|netEstate|Neural\ Text|NeuralSEO|NinjaAI|NodeZero) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (NotebookLM|Nova\ Act|NovaAct|Nytheon|OAI-SearchBot|OAI\ SearchBot|OASIS|Olivia|OLM|Omgili|Onyx|Open\ AI|Open\ Interpreter|OpenAGI|OpenAI|OpenBot|OpenInterpreter|OpenPi|OpenRouter|OpenText\ AI) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (Operator|Outwrite|OVHcloud|Owlin|Page\ Analyzer\ AI|PaLM\ 2|PanguBot|Panscient|Paperlibot|Paraphraser\.io|peer39_crawler|Perflexity|Perplexity|Petal|Phind|PiplBot|Pixmo|Playwright|PoeBot|PoeSearchBot) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (Poggio|Poseidon|ProWritingAid|Proximic|PulsarRPA|Puppeteer|Python\ AI|Python\ lxml|PyTorch|Qualified|Quark|QuillBot|Qopywriter|Qwen|RAG\ Agent|RAG\ Azure\ AI|RAG\ Chatbot|RAG\ Database|RAG\ IS|RAG\ Pipeline) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (RAG\ Search|RAG\ with|RAG-|RAG_|Raptor|React\ Agent|Reasoning|Redis\ AI\ RAG|Reka\ Flash|Replicate|RobotSpider|RunPod|Rytr|SaplingAI|SBIntuitionsBot|Scala|Scalenut|Scrap|ScriptBook|Seekr) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (SEObot|SEO\ Content\ Machine|SEO\ Robot|SemrushBot|Sentibot|Serper|ShapBot|Sidetrade|Simplified\ AI|Sitefinity|Skydancer|Skyvern|SlickWrite|SmartBot|Sonic|Sora|Spider/2|SpiderCreator|Spin\ Rewrite|Spinbot) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (Stability|Stable\ Diffusion|StableDiffusionBot|Stagehand|Stealth|Sudowrite|SummalyBot|Super\ Agent|Superagent|SuperAGI|Surfer\ AI|Taiko|TavilyBot|TerraCotta|Text\ Blaze|TextCortex|Thinkbot|Thordata|TikTokSpider|Timpibot) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (Tinybird|Together|Traefik|Tulu|Tülu|TurnitinBot|TwinAgent|uAgents|UI-TARS|VelenPublicWebCrawler|Venus\ Chub\ AI|Vidnami\ AI|Vision\ RAG|WARDBot|WebSurfer|WebText|WebVoyager|Webzio|WeChat|Whisper) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (WordAI|Wordtune|WPBot|Writecream|WriterZen|Writescope|Writesonic|WRTNBot|xAI|Xanthorox|xBot|XLNet|YaK|YaML|YandexAdditional|YouBot|Zanista|Zendesk|Zero|Zhipu) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (Zhuque\ AI|Zimm) [NC]
RewriteRule (.*) - [F,L]
</IfModule>Взято отсюда https://perishablepress.com/
Как это работает:
RewriteEngine On— включает механизм перенаправления.RewriteCond %{HTTP_USER_AGENT}— проверяет заголовок User-Agent, который отправляет бот.(GPTBot|ChatGPT|...)— список строк, которые будут заблокированы. Символ|означает логическое «или».[NC]— делает проверку без учета регистра.RewriteRule .* - [F,L]— запрещает доступ (код 403 Forbidden) и останавливает обработку правил.
Вы можете расширить список, добавив названия других плохих ботов, которые встречаются в логах вашего сервера.
Блокировка по IP и диапазонам адресов
Если вы видите, что нежелательные запросы приходят с одного IP-адреса или подсети, поможет директива Deny from. Существует два синтаксиса: старый (Order Allow,Deny) и современный (Require). Рекомендуется использовать универсальный вариант:
Order Allow,Deny Allow from all # Блокировка конкретного IP Deny from 123.123.123.123 # Блокировка диапазона (подсети) Deny from 192.168.1
Если ваш хостинг поддерживает модуль mod_authz_core (Apache 2.4+), используйте синтаксис Require:
<RequireAll>
Require all granted
Require not ip 123.123.123.123
Require not ip 192.168.1.0/24
</RequireAll>Ограничение доступа по стране (GeoIP)
Бывает так, что боты приходят из стран, где ваша целевая аудитория не живет. Чтобы ограничить доступ по country code, необходимо, чтобы на сервере был установлен модуль mod_geoip. Если он есть, можно закрыть доступ для целых стран:
GeoIPEnable On # Запрещаем доступ для стран China (CN) и Russia (RU) SetEnvIf GEOIP_COUNTRY_CODE CN BlockCountry SetEnvIf GEOIP_COUNTRY_CODE RU BlockCountry Deny from env=BlockCountry
Защита от ботов, которые маскируются под браузеры
Некоторые скрипты подделывают User-Agent, выдавая себя за Chrome или Firefox. Но их выдает отсутствие заголовков реферера или специфическая манера запросов (например, только HEAD или POST без перехода со страниц). Для блокировки таких ботов используйте связку условий:
RewriteEngine On
# Если это POST запрос без заголовка Referer (пришел не с вашей страницы)
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{HTTP_REFERER} !^https?://([^/]+\.)?ваш-домен\.com [NC]
RewriteRule .* - [F,L]
# Блокировка запросов, содержащих спам в query string
RewriteCond %{QUERY_STRING} (spam|eval|base64) [NC]
RewriteRule .* - [F,L]Использование SetEnvIfNoCase для гибкой блокировки
Модуль mod_setenvif позволяет задать переменные окружения на основе заголовков. Это удобно, если вы хотите не просто отдать ошибку, а перенаправить бота или просто запретить ему доступ к определенным типам файлов.
# Блокируем ботов по User-Agent и закрываем им доступ к php файлам
SetEnvIfNoCase User-Agent "GPTBot" ai_bot
SetEnvIfNoCase User-Agent "CCBot" ai_bot
<FilesMatch "\.(php|wp-admin|xml)$">
Deny from env=ai_bot
</FilesMatch>Чего нельзя делать: важные нюансы
- Не блокируйте поисковых роботов (Yandex, Googlebot), если вы хотите оставаться в поисковой выдаче. Используйте для них robots.txt file, а не htaccess. Полная блокировка в htaccess приведет к исчезновению страниц из индекса.
- Обратите внимание на порядок правил. Директивы
RewriteCondобрабатываются сверху вниз. Если вы случайно заблокируете свой IP, вы потеряете доступ к сайту. Всегда проверяйте правила перед применением. - Боты могут менять User-Agent. Некоторые инструменты (например,
python requests) позволяют подставлять любой заголовок. Поэтому полагаться только на User-Agent нельзя, лучше комбинировать методы: IP + User-Agent + поведенческий анализ.
Альтернативы и комбинирование
Файл .htaccess — это первый уровень защиты. Однако, если ботов становится слишком много, и они создают высокую нагрузку на сервер Apache, имеет смысл использовать более глубокие методы защиты:
- Настройка на уровне конфигурации сервера (если есть доступ к
httpd.conf). - Использование сторонних сервисов (Cloudflare и аналоги) для фильтрации трафика до того, как он достигнет вашего хостинга.
- Комбинация htaccess и robots.txt (хотя умные боты игнорируют robots.txt, глупая блокировка на сервере работает безоговорочно).
Заключение
Блокировка AI ботов и нежелательных парсеров через htaccess — это обязательная мера для поддержания стабильной работы вашего сервера. Используя директивы rewritecond http user agent, deny from и SetEnvIf, вы сможете точечно ограничить доступ к ресурсу, снизить нагрузку на CPU и сохранить контент для реальных посетителей.
Помните: защита сайта — это постоянный процесс. Регулярно проверяйте логи сервера, добавляйте новые User-Agent в список блокировки, и ваш сайт будет работать быстро и надежно.



