Убираем ботов с сайта – Настройка Cloudflare в 2024
В последнее время все больше сайтов сталкиваются с некачественным трафиком. Большое количество “прямых заходов” в Яндекс Метрике сопровождаются высоким процентом отказов и скудной продолжительностью визитов на сайте. Все это со временем мешает качественному SEO-продвижению, влияет на позиции и посещаемость из поисковых систем.
В современном интернете защита от ботов и нежелательного трафика становится всё более важной. Прямые переходы и автоматизированные боты могут негативно влиять на работу сайта, увеличивая нагрузку на сервер и снижая производительность. Одним из эффективных методов защиты является настройка капчи через Cloudflare. В этой статье вы узнаете, как это сделать.
Что такое боты и чем опасен бот-трафик?
Боты — это программы, которые автоматически сканируют и взаимодействуют с вашим сайтом. Существуют полезные боты, такие как поисковые роботы Google и Яндекс, которые индексируют ваш сайт для поиска. Однако существует множество вредоносных ботов, которые могут:
- Увеличивать нагрузку на сервер, замедляя работу сайта;
- Красть контент для использования на других ресурсах;
- Совершать спам-атаки, оставляя ненужные комментарии или заполняя формы;
- Имитировать посещения сайта, что затрудняет анализ реальной активности пользователей.
Настройка Cloudflare для сайта
Шаг 1. Настройка HTTPS
Сначала настраиваем переадресацию на HTTPS:
- В панели Cloudflare переходим в раздел SSL/TLS и выбираем Edge Certificates.
- Включаем опцию Always Use HTTPS.
Шаг 2. Открываем доступ для полезных ботов
Для начала важно создать разрешающее правило для полезных ботов и сервисов, таких как Яндекс, Google и тд. Так как правила имеют приоритетность относительно друг друга, данное правило лучше создать первым.
Настраиваем доступ для полезных ботов:
- В панели Cloudflare заходим в раздел Security => WAF и выбираем Custom Rules.
- Создаем новое правило для полезных ботов.
- Для быстрой настройки правила проще использовать код, который вводим в поле Edit expression:
(cf.client.bot) or (http.user_agent contains "+http://yandex.com/bots") or (http.user_agent contains "Google") or (http.user_agent contains "Telegram") or (http.user_agent contains "Twitter") or (http.user_agent contains "WhatsApp") or (http.user_agent contains "msnbot") or (http.user_agent contains "Mail") or (http.user_agent contains "Applebot") or (http.user_agent contains "Screaming Frog") or (http.user_agent contains "WordPress") or (http.user_agent contains "w3.org") or (http.user_agent contains "vkShare") or (http.user_agent contains "bingbot") or (http.user_agent contains "pingdom") or (http.user_agent contains "SemrushBot") or (http.user_agent contains "Pinterestbot") or (http.user_agent contains "Chrome-Lighthouse") or (http.user_agent contains "AhrefsBot") or (http.user_agent contains "bitrix") or (http.user_agent contains "Bitrix") or (http.user_agent contains "bing") or (http.user_agent contains "facebook") or (http.user_agent contains "ChatGPT") or (http.user_agent contains "1C") or (http.user_agent contains "1c") or (http.request.uri.query contains "doing_wp_cron") or (ip.src eq 213.159.210.11) or (ip.geoip.asnum eq 13238) or (ip.geoip.asnum eq 208722) or (http.user_agent contains "SeznamBot")
- В блоке Take action выбераем Skip.
Это правило будет исполняться первым из всех и позволит таким ботам, как Google, Яндекс, Telegram, WhatsApp и другим полезным сервисам, взаимодействовать с вашим сайтом без ограничений.
Шаг 3. Блокировка старых версий HTTP-протокола
Многие вредоносные боты используют устаревшие версии HTTP-протокола (ниже версии 2, например: HTTP/1.1.)
Настраиваем блокировку устаревших версий HTTP:
- Создаем новое правило в Custom Rules.
- Для быстрой настройки правила используем следующий код:
(not http.request.version in {"HTTP/2" "HTTP/3" "SPDY/3.1"} and not ip.geoip.asnum in {13238 208722}) or (http.referer eq "" and not ip.geoip.asnum in {13238 208722})
- В действиях выбираем: Interactive Challenge (капча, по которой надо кликать) и не забываем про приоритетность правил – это правило должно быть вторым по списку.
Правило отсечет многих ботов, а также покажет капчу всем пользователям, кто заходит на сайт по прямой ссылке.
Шаг 4. Фильтруем IPv6 трафик
Также боты могут использовать IPv6-адреса – это связано с их низкой стоимостью. Чтобы защититься от спамного трафика по IPv6, следует настроить правило, которое будет показывать капчу попроще (JS Challenge) для всех таких переходов.
Как настроить защиту для IPv6 трафика:
- Создаем новое правило в Custom Rules.
- Вставляем код:
(ip.src in {::/0})
- Выбираем действие JS Challenge (капча, которая секунду крутится и пускает на сайт) и сверяемся с приоритетом на скрине:
Это правило заставит всех пользователей с IPv6-адресами проходить минимальную проверку, что помогает остановить ботов.
Заключение
Важно! После применения всех настроек сайт может быть неактивен в течении 24 часов – это нужно учитывать и выбирать подходящее время чтобы не терять заказы и заявки. Порядок правил должен быть как на скрине, так как в сервисе работает приоритетность правил.
Справа на скрине видим количество показанных капч, а в столбце CSR % решенных.
В итоге: Благодаря правильным настройкам нам удалось полностью избавиться от бесполезного спам-трафика.
Важно уточнить, что http запросы с User-agent’ами 1С, битрикс и планировщика cron добавлены в исключения, а значит сервисные задачи CMS/синхронизация с 1С пройдут без проблем.
Свяжитесь с нами
ОСТАВЬТЕ ЗАЯВКУ