
Универсальная начальная инструкция для защиты сайта от ботов, накруток, сканирующих ботов, парсинга контента. Разработана для бесплатного тарифа Cloudflare. Пригодится в том случае, если вы пока еще плохо понимаете, что такое Cloudflare, как его настраивать, но уже успели почитать в Интернете пару статей или посмотреть Youtube видео от тех, кто также как и вы ничего в этом не смыслит, но умеет с уверенным видом нести любую пургу.
Как правило, все подобные инструкции ведут свои корни из статей Ивана Зимина и Артёма Акулова, которые те в свое время разместили на сайте VC. После чего целая толпа желающих попиариться, начала распространять один и тот же набор неработающих правил, но уже под своим именем.
Причисляя им различные небылицы, наподобие того, что этот чудо набор эффективно борется с поведенческими ботами, поносом, геморроем и прыщами в разных местах.
Поэтому статью построим так: сначала тот самый набор правил от классиков, на котором прыгали (и будут прыгать) по граблям целые поколения вебмастеров, а потом - как я вижу набор правил Cloudflare для начинающих.
Статья объемная, написана по результатам огромного количества исправления настроек фильтрации на клиентских сайтах, после слепого применения ими рекомендаций тех, кто сам почти ничего не понял в Cloudflare, но смог красиво упаковать свои ошибки в готовый текст для начинающих искателей.
Правила фильтрации трафика Cloudflare настраиваются в разделе Security - WAF. Всего доступно 5 ячеек (в бесплатном тарифе). В каждую ячейку можно добавить скомбинировать несколько разных условий и фильтров, ваша фантазия ограничена только количеством символов в каждой ячейке - до 4096.
К каждому правилу можно выбрать одно из действий - от пропуска без проверки, до блокировки.
В Cloudflare важен порядок расположения правил. Те что выше, имеют приоритет над теми, что располагаются ниже в списке.
Skip - пропустить не проверяя. Распространяется на все ниже расположенные совпадения. Если в первом правиле вы разрешаете например проход ботам Biterika, то сколько не блокируйте их в других правилах, расположенных ниже - все они беспрепятственно зайдут на сайт.
JS Challenge - автоматическая проверка Cloudflare. Никакого действия не требуется. На несколько секунд появится промежуточная страница, Cloudflare убедится в том, что вы обращаетесь с реальным браузером, после чего откроется сайт. Это самая простая проверка, которую пройдет любой поведенческий бот, ведь у него точно такой же браузер, как и у вас. Эта проверка эффективна только для ботов без браузера: краулеры, сканеры, парсеры, - те переходы что не отображаются в Яндекс метрике.
Managed Challenge - тип проверки выбирает сам Cloudflare. В зависимости от количества внутренних баллов, которые система выставила по сумме параметров (браузер, User-Agent, AS подсеть, IP адрес, протокол, чистота IP адреса и проч) - это может быть и переход без проверки, автоматическая JS проверка, или окно с необходимостью поставить галочку "я не бот" (капча) в соответствующем поле.
Interactive Challenge (CAPTCHA) - нужно нажать - я не бот. Большинство ботов эту проверку пройти не смогут.
Порядок расположения правил можно менять перетаскиванием.
В рамках одной ячейки с правилами можно разместить несколько условий. Отдельные условия отделяются друг от друга с помощью OR. Если должно соблюдаться несколько условий, их нужно отделить друг от друга с помощью AND.
Для добавления правила нужно нажать на синюю кнопку Create Rule, дать ему название, условия срабатывания, и действие - из описанных выше.
В наборе 5 основных правил. Примите как аксиому - несмотря на рекламу и придание этому скромненькому набору каких-то чудодейственных свойств, он не имеет никакого отношения к поведенческим ботам (основной беде Рунета, если не считать бедой поиск от Яндекса), и его применение может привести к дальнейшему падению позиций сайта в поисковых системах.
Cloudflare allow white bots. В этом правиле открывается доступ для "хороших ботов". Под хорошими ботами подразумеваются как поисковые пауки, краулеры Yandex, Google, Bing, так и различные сканеры наподобие AmazonBot, Claudebot, AhrefsBot и прочие подобные боты, которые израсходуют на вашем сервере все лимиты по нагрузке.
В правой части скриншота вы видите еле заметную надпись - Edit expression. После ее нажатия - туда можно внести уже готовый код, вместо того, чтобы набирать его самостоятельно.
|
1 |
(cf.client.bot) or (http.user_agent contains "Mail.RU_Bot") |
Архаизм с Mail.RU_Bot появился еще в Древнем Египте, тогда когда Cloudflare НЕ считал поискового бота mailru полезным ботом. С тех пор много воды утекло, mailru отказался от собственной поисковой системы (в пользу Яндекс), а этот кусочек кода до сих пор встречается во всех наборах от гуру настройки Cloudflare. Естественно, ни один гуру не сможет объяснить, откуда и зачем в "его" наборе правил Cloudflare это предлагается. Карго-культ он такой.
Предполагается, что нужно открыть метрику, посмотреть из каких стран на ваш сайт приходят посетители. После чего поставить под капчу всех остальных. Совместно с правилом пропуска хороших ботов Known Bots в этом есть некоторый смысл, вы не заблокируете GoogleBot.
Мысль о том, что это он лично забанил Google, таким деятелям никогда в голову не приходит. Они, как правило, сообщают о том, что Cloudflare сам по себе глючный, и пытаются найти альтернативу. Ну т.е. ищут грабли, покрашенные в другой цвет.
Создается правило с названием BLOCK GEO, в него вносятся (кроме) Russian Federation, Belarus, Kazakhstan. Действие - Block.
Предлагается вот такое правило.
|
1 |
(ip.geoip.country ne "RU" and ip.geoip.country ne "BY" and ip.geoip.country ne "KZ") |
В целом, в фильтрации именно по странам нет ничего плохого, но точно нельзя блокировать все подряд. Да и вообще - бездумно блокировать.
Создаем правило, называем его IPV6 / SSL.
Код для правила
|
1 |
(ip.src in {::/0}) or (not ssl) |
Показывать будем капчу, поэтому действие - Interactive Challenge (CAPTCHA).
Данное правило было написано во времена фараона Тутанхамона, когда протокол IPV6 вообще не использовался в наших краях. Поэтому раз или даже два в те древние времена это правило могло сработать. Сейчас же, когда практически все провайдеры выдают своим клиентам адреса IPV6 - это правило сродни тому, что вы зачем-то подсовываете капчу каждому второму своему посетителю с мобильным телефоном.
Правило HTTP / Direct.
В те доисторические времена, все боты ходили по протоколам HTTP1 и HTTP1.1. Поэтому предполагалось, что стоит только поставить JS Challenge проверку в Cloudflare, как волшебным образом исчезнут все поведенческие боты, прекратятся ДДОС атаки, разное непотребство и говноботы.
Также показываем проверку всем, кто заходит на сайт напрямую, через ввод адреса в адресной строке браузера.
Правило кодом.
|
1 |
(not http.request.version in {"HTTP/2" "HTTP/3" "SPDY/3.1"}) or (http.referer eq "") |
Также стоит иметь в виду, что бездумное применение этого правило приведет к тому, что часть функционала вашего сайта просто перестанет работать, и вы сможете пополнить армию тех, кто ругает Cloudflare за то, что тот сломал ему сайт.
Создаем правило BLOCK BAD CRAWLER. Вставляем в него бессмысленный набор надерганных из интернетов UserAgent различных музейных ботов. Не забываем удивляться тому, что все основные краулеры игнорируют это правило, несмотря на присутствие в этом списке. Вспоминаем первое правило, в котором вы же и поставили их в исключения.
В оригинальном наборе есть еще одно такое же бессмысленное полотно, но проблема в том, что ваш лимит ячеек под правила для Cloudflare уже исчерпан, это пятое.
|
1 |
(http.user_agent contains "Abonti") or (http.user_agent contains "AspiegelBot") or (http.user_agent contains "aggregator") or (http.user_agent contains "AhrefsBot") or (http.user_agent contains "Aport") or (http.user_agent contains "asterias") or (http.user_agent contains "Baiduspider") or (http.user_agent contains "BDCbot") or (http.user_agent contains "bidswitchbot") or (http.user_agent contains "Birubot") or (http.user_agent contains "BLEXBot") or (http.user_agent contains "BUbiNG") or (http.user_agent contains "BuiltBotTough") or (http.user_agent contains "Bullseye") or (http.user_agent contains "BunnySlippers") or (http.user_agent contains "Butterfly") or (http.user_agent contains "ca-crawler") or (http.user_agent contains "CamontSpider") or (http.user_agent contains "CCBot") or (http.user_agent contains "Cegbfeieh") or (http.user_agent contains "CheeseBot") or (http.user_agent contains "CherryPicker") or (http.user_agent contains "coccoc") or (http.user_agent contains "CopyRightCheck") or (http.user_agent contains "cosmos") or (http.user_agent contains "crawler") or (http.user_agent contains "Crescent") or (http.user_agent contains "CyotekWebCopy/1.7") or (http.user_agent contains "CyotekHTTP/2.0") or (http.user_agent contains "DataForSeoBot") or (http.user_agent contains "DeuSu") or (http.user_agent contains "discobot") or (http.user_agent contains "DittoSpyder") or (http.user_agent contains "DnyzBot") or (http.user_agent contains "DomainCrawler") or (http.user_agent contains "DotBot") or (http.user_agent contains "Download Ninja") or (http.user_agent contains "EasouSpider") or (http.user_agent contains "EmailCollector") or (http.user_agent contains "EmailSiphon") or (http.user_agent contains "EmailWolf") or (http.user_agent contains "EroCrawler") or (http.user_agent contains "Exabot") or (http.user_agent contains "ExtractorPro") or (http.user_agent contains "Ezooms") or (http.user_agent contains "FairShare") or (http.user_agent contains "Fasterfox") or (http.user_agent contains "FeedBooster") or (http.user_agent contains "Foobot") or (http.user_agent contains "Genieo") or (http.user_agent contains "GetIntent Crawler") or (http.user_agent contains "Gigabot") or (http.user_agent contains "gold crawler") or (http.user_agent contains "GrapeshotCrawler") or (http.user_agent contains "grub-client") or (http.user_agent contains "Harvest") or (http.user_agent contains "hloader") or (http.user_agent contains "httplib") or (http.user_agent contains "HTTrack") or (http.user_agent contains "humanlinks") or (http.user_agent contains "HybridBot") or (http.user_agent contains "ia_archiver") or (http.user_agent contains "ieautodiscovery") or (http.user_agent contains "Incutio") or (http.user_agent contains "InfoNaviRobot") or (http.user_agent contains "InternetSeer") or (http.user_agent contains "IstellaBot") or (http.user_agent contains "Java") or (http.user_agent contains "Java/1.") or (http.user_agent contains "JamesBOT") or (http.user_agent contains "JennyBot") or (http.user_agent contains "JS-Kit") or (http.user_agent contains "k2spider") or (http.user_agent contains "Kenjin Spider") or (http.user_agent contains "Keyword Density/0.9") or (http.user_agent contains "kmSearchBot") or (http.user_agent contains "larbin") or (http.user_agent contains "LexiBot") or (http.user_agent contains "libWeb") or (http.user_agent contains "libwww") or (http.user_agent contains "Linguee") or (http.user_agent contains "LinkExchanger") or (http.user_agent contains "LinkextractorPro") or (http.user_agent contains "linko") or (http.user_agent contains "LinkScan/8.1a Unix") or (http.user_agent contains "LinkWalker") or (http.user_agent contains "LinkpadBot") or (http.user_agent contains "lmspider") or (http.user_agent contains "LNSpiderguy") or (http.user_agent contains "ltx71") or (http.user_agent contains "lwp-trivial") or (http.user_agent contains "lwp-trivial") or (http.user_agent contains "magpie") or (http.user_agent contains "Mata Hari") or (http.user_agent contains "MaxPointCrawler") or (http.user_agent contains "MegaIndex") |
Плохие боты опасны для вашего сайта тем, что они создают неоправданно высокую нагрузку на хостинг. Сканирующие боты в режиме 24/7 генерируют запросы к каждой странице, каждому изображению вашего сайта. Они не видны в метрике, и большинство вебмастеров даже не догадываются об их существовании. Догадывается только ваш хостер, когда выставляет вам повышенный счет за хостинг в очередном месяце.
Поведенческие боты создают все увеличивающееся количество прямых заходов, и со временем это приводит к таким перекосам, как 50 000 прямых заходов при 100 переходах из поиска. Соответственно, хостер или заблокирует ваш аккаунт по причине фейковой ДДОС атаки, или предложит перейти на VPS.
Некоторые поведенческие боты, в своем кривом алгоритме заполнения всех форм обратной связи на сайте, забивают ваш почтовый ящик несуществующими лидами.
Различные сканеры уязвимостей перебирают пароли в административную панель вашего сайта, костыли, которые наплодили разработчики вашего сайта, и однажды ваш белый и пушистый проект превратится в заглушку с каким-нибудь чужим текстом, который вам не понравится.
Это же относится к используемой вами версии PHP и прочего софта. На момент написания этой статьи последняя версия PHP - 8.
Однако, до сих пор находятся экстремалы, которые держат трупы своих замерших в прошлом сайтов на таких же древних версиях программного обеспечения (тот же PHP5). Именно они - первые кандидаты на рукопожатие с призраком Байдена.
Подключение Cloudflare в данной статье рассматривать не будем, будем считать, что вы с этим вопросом справились самостоятельно.
В отличие от бессмысленного действия по показу CAPTHA для мобильных посетителей вашего сайта, в Cloudflare предусмотрен более щадящий вариант, который действительно перекроет доступ на сайт для плохих ботов, но при этом НЕ создаст никаких неудобств для реальных посетителей.
Этот способ описан в статье Как отключить IPv6 в Cloudflare для блокировки поведенческих ботов.
В одно простое действие вы навсегда закроете доступ к своему проекту десяткам тысяч бессмысленных подключений для накрутчиков поведенческих ботов, активно использующих следующие ASN:
Просто по причине того, что у реальных посетителей с мобильных устройств ваш сайт будет открываться по IPV4, а у ботоферм такой альтернативы просто нет. У них миллионы разных адресов нового протокола, и единичное количество классических адресов. На которых ботоферма не может работать, так как "спалится" уже с первых секунд.
Напомню, что у вас всего 5 ячеек, и в каждой из них вы можете добавить до 4096 символов. Поэтому использовать целое правило для того, чтобы разместить в нем одну строчку - это крайне расточительно.
Т.е. пока Cloudflare не начнет ругаться и показывать красное поле с ошибкой при попытке сохранения правила. Подсчет количества символов удобно вести в сторонней программе, наподобие Notepad++.
В некоторые правила, уже в процессе совершенствования вашего набора правил - можно и нужно вносить исключения. Какие именно вносить - вы выясните по результатам анализа блокировок по конкретному правилу. Просто открываете все что в нем остановило, и внимательно просматриваете каждый переход.
Создайте правило, назовите его "Плохие боты".
Именно в этом правиле мы будем блокировать те переходы, которые гарантированно являются нежелательными.
Обычно блокируют по следующим параметрам: ASN, User-Agent, страна.
|
1 |
(ip.geoip.asnum in {35048 204490 44812}) or (http.user_agent contains "Amazonbot") or (http.user_agent contains "ClaudeBot") or (http.user_agent contains "nginx-ssl") |
Например, можно спокойно заблокировать AS35048 (Biterika), плюс те AS, что вы видите в списке чуть выше (IPSERVER, RACKTECH и так далее).
Парсеры нейросетей можно забанить по User-Agent. Причем, это могут быть не только известные краулеры, но и определенные идентификаторы различных скриптов, например "nginx-ssl".
Ссылка на примеры таких юзерагент:
С недавних пор в Cloudflare можно выбрать категорию для блокировки, например - Verified Bot Category, или даже несколько штук. Чтобы не ловить схожие типы ботов отдельно.
Общий принцип вы поняли.
Создайте правило, назовите его "Хорошие боты".
Именно здесь, после блокировки в первом правиле всякого разного лишнего, можно довериться Cloudflare и кого-нибудь пропустить.
Код для правила. Это начальный код, сюда же в правило вы можете добавить какие-то свои дополнительные условия.
|
1 |
(cf.client.bot) |
После активации этого правила, вам необходимо будет к нему вернуться, и пересмотреть каждый переход, который был записан в лог. Кроме поисковых ботов Yandex, Google и прочих действительно нужных ботов, вы найдете множество нежелательных ботов, которых Cloudflare пропускает (AhrefsBot и прочие подобные, список огромный).
Вам нужно будет дополнительно внести все нежелательное в первое правило, с блокировкой или UserAgent, или сразу категорией. И только после этого, вы сможете гарантированно пропускать на сервер полезных ботов, и блокировать всех остальных. Речь идет о сканирующих ботах, не о поведенческих. До последних мы еще не добрались.
Либо, вы можете отойти от шаблонов, и вставить в правило только это, вместо кода выше.
Код:
|
1 |
(cf.verified_bot_category eq "Search Engine Crawler") |
Создается правило с названием Сканирующие боты и ВПН. Действие - Managed Challenge или Interactive Challenge.
В него будем ставить под проверку переходы с HTTP1, а также переходы с IP адресов хостингов. Например,
Скриншот правила
Код правила
|
1 |
(http.request.version in {"HTTP/1.0" "HTTP/1.1" "HTTP/1.2"}) or (ip.geoip.asnum in {24940 49505 16276}) |
Еще раз повторюсь, это основа, самые начальные строки. Сюда вы самостоятельно внесете именно те ASN хостингов, с которых приходят запросы на ваш сервер.
Поведенческие боты заходят через реальный браузер, по тем же протоколам (HTTP2, HTTP3), что и обычные, настоящие посетители сайта. User-agent у поведенческих ботов тоже обычный, как у всех. Например
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36
Больше всего жалоб идет на прямые переходы в Яндекс метрике. В ней слишком много поведенческих ботов, со временем количество прямых переходов становится больше, чем переходов из поиска. Что при нормальном состоянии трафика - невозможно.
Некоторые тешат себя иллюзиями о том, что кому-то массово понравился их сайт... Но я вас разочарую - это просто поведенческие боты, которые нагуливают свой профиль. А вот вашему сайту кроме падения позиций в поиске, и потешить чувство ЧСВ владельца цифрами - толку ноль.
Ознакомьтесь со следующими статьями:
Ставим под проверку прямые переходы с различных AS сетей, чаще всего используемых накрутчиками. Это как провайдеры стационарного интернета, так и мобильные провайдеры.
В третьем правиле, на выбор, ставится действие Managed Challenge или Interactive Challenge. Правило назовём - Поведенческие боты.
Скриншот правила
Код правила
|
1 |
(http.referer eq "" and ip.geoip.asnum in {31415 50214 47165 8359 42610 25513 29285 12714 8402}) |
Это начальный набор сетей ботов. По результатам оценки трафика сайта, вы можете его расширить именно с учетом своей специфики.
В это правило добавляются остальные опции, которые также помогут вам уменьшить количество ботных переходов на сайт.
Ознакомьтесь со следующими статьями:
Название правила: Разные проверки.
Действие: Managed Challenge.
В этом правиле мы проверяем заход в случаях:
Скриншот правила
Код правила
|
1 |
(cf.threat_score ge 14) or (http.request.uri contains "/wp-admin/admin-ajax.php" and http.request.method eq "POST" and not http.referer contains "site.ru") or (http.request.uri contains "/wp-comments-post.php" and http.request.method eq "POST" and not http.referer contains "site.ru") or (ip.geoip.country in {"BR" "T1" "ID"}) |
Только не забудьте заменить site.ru на адрес своего собственного сайта.
UPD (для тех, кто читает не только наискосок - директива cf.threat_score в марте 2025 года исключена Cloudflare как устаревшая).
Если вы смогли дочитать до этих строк, то будьте уверены - все у вас будет хо-ро-шо. Лишь немногие люди способны воспринять многотекста.
Набор правил фильтрации трафика, представленный выше - это костяк, к которому вы сможете добавить специфику именно вашего сайта. Не бывает универсальных решений из разряда один раз скопировал / подсмотрел / украл где-то там, и оно работает годами. Работать придется вам. К счастью, отправная точка у вас уже есть, выше. Удачи!
Cloudflare окончательно заблокирован в РФ ещё летом 2025 года.
Функцию фильтрации ботов Cloudflare взял на себя российский антибот Killbot.
Принцип работы отличается от привычного, отслеживаются не знакомые всем при настройке других антибот решений параметры (входящие IP адреса, AS подсети ботов, User Agent и прочее, всё это легко подделывается), а уникальные для каждого набора браузеров слепки.
По отличию оригинального браузера от модифицированного, тот или иной заход определяется либо как заход реального посетителя, либо как заход бота.
Чтобы не повторяться - расписывал более подробно в статьях:
Попробовать бесплатно. При регистрации в Killbot введите промокод
promo13
и получите месяц тестирования платного тарифа Killbot (фильтрация трафика, 1000 руб) и Ads (отключение показа рекламы поведенческим ботам, 1000 руб) в качестве бонуса. Этого вам хватит на то, чтобы понять, подходит вам данное решение, или нет. На данный момент - в Рунете нет более достойной альтернативы, по соотношению цена-качество. Срок действия промокода ограничен по времени, куда-то записывать его нет смысла. В следующий раз промокод уже будет другой, поэтому использовать его нужно сейчас, когда вы читаете этот текст. Промокод действует только в форме регистрации. Если аккаунт уже создан - создайте новый, на другой почте, и при регистрации в последнем поле введите промокод.
Подпишитесь на Telegram канал / MAX для того, чтобы всегда быть в курсе последних новостей и обновленных настроек для защиты от ботов, а также оперативно получать новые материалы, выходящие на antibot24.ru

Автор статей: Сергей (AntiBot24). Эксперт в области фильтрации поведенческого трафика, настройки антибот систем. Высший рейтинг на Kwork, более 680 отзывов, 100% заказов успешно сдано, 56% повторных заказов. Пишу подробные статьи, инструкции по фильтрации ботов в своем блоге antibot24.ru
Всегда нужно иметь в виду, что те советы, которые вы прочли в статьях - это лишь часть настроек, которые я делаю при профессиональной экспертной настройке фильтрации поведенческих ботов. Все остальное - это непубличные профессиональные секреты. Любая информация, становящаяся общедоступной - достаточно быстро устаревает и перестает быть эффективной.
Если вы столкнулись с повышенной роботностью в Яндекс метрике, увеличением числа прямых заходов, увеличением количества отказов - вы всегда можете заказать у меня настройку Killbot.