Блог

Мы являемся профессионалами своего дела и часто публикуем полезную информацию

Убираем ботов с сайта – Настройка Cloudflare в 2024

Убираем ботов с сайта – Настройка Cloudflare в 2024

В последнее время все больше сайтов сталкиваются с некачественным трафиком. Большое количество “прямых заходов” в Яндекс Метрике сопровождаются высоким процентом отказов и скудной продолжительностью визитов на сайте. Все это со временем мешает качественному SEO-продвижению, влияет на позиции и посещаемость из поисковых систем. 

В современном интернете защита от ботов и нежелательного трафика становится всё более важной. Прямые переходы и автоматизированные боты могут негативно влиять на работу сайта, увеличивая нагрузку на сервер и снижая производительность. Одним из эффективных методов защиты является настройка капчи через Cloudflare. В этой статье вы узнаете, как это сделать.

Что такое боты и чем опасен бот-трафик?

Боты — это программы, которые автоматически сканируют и взаимодействуют с вашим сайтом. Существуют полезные боты, такие как поисковые роботы Google и Яндекс, которые индексируют ваш сайт для поиска. Однако существует множество вредоносных ботов, которые могут:

  • Увеличивать нагрузку на сервер, замедляя работу сайта;
  • Красть контент для использования на других ресурсах;
  • Совершать спам-атаки, оставляя ненужные комментарии или заполняя формы;
  • Имитировать посещения сайта, что затрудняет анализ реальной активности пользователей.

Настройка Cloudflare для сайта

Шаг 1. Настройка HTTPS

Сначала настраиваем переадресацию на HTTPS:

  1. В панели Cloudflare переходим в раздел SSL/TLS и выбираем Edge Certificates.
  2. Включаем опцию Always Use HTTPS.

Шаг 2. Открываем доступ для полезных ботов

Для начала важно создать разрешающее правило для полезных ботов и сервисов, таких как Яндекс, Google и тд. Так как правила имеют приоритетность относительно друг друга, данное правило лучше создать первым.

Настраиваем доступ для полезных ботов:

  1. В панели Cloudflare заходим в раздел Security => WAF и выбираем Custom Rules.
  2. Создаем новое правило для полезных ботов.
  3. Для быстрой настройки правила проще использовать код, который вводим в поле 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")
  4. В блоке Take action выбераем Skip.

Это правило будет исполняться первым из всех и позволит таким ботам, как Google, Яндекс, Telegram, WhatsApp и другим полезным сервисам, взаимодействовать с вашим сайтом без ограничений.

Шаг 3. Блокировка старых версий HTTP-протокола

Многие вредоносные боты используют устаревшие версии HTTP-протокола (ниже версии 2, например: HTTP/1.1.) 

Настраиваем блокировку устаревших версий HTTP:

  1. Создаем новое правило в Custom Rules.
  2. Для быстрой настройки правила используем следующий код:
    (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})
  3. В действиях выбираем: Interactive Challenge (капча, по которой надо кликать) и не забываем про приоритетность правил – это правило должно быть вторым по списку.

    Правило отсечет многих ботов, а также покажет капчу всем пользователям, кто заходит на сайт по прямой ссылке.

Шаг 4. Фильтруем IPv6 трафик

Также боты могут использовать IPv6-адреса – это связано с их низкой стоимостью. Чтобы защититься от спамного трафика по IPv6, следует настроить правило, которое будет показывать капчу попроще (JS Challenge) для всех таких переходов.

Как настроить защиту для IPv6 трафика:

  1. Создаем новое правило в Custom Rules.

  2. Вставляем код:(ip.src in {::/0})
  3. Выбираем действие JS Challenge (капча, которая секунду крутится и пускает на сайт) и сверяемся с приоритетом на скрине:

    Это правило заставит всех пользователей с IPv6-адресами проходить минимальную проверку, что помогает остановить ботов.

Заключение

Важно! После применения всех настроек сайт может быть неактивен в течении 24 часов – это нужно учитывать и выбирать подходящее время чтобы не терять заказы и заявки. Порядок правил должен быть как на скрине, так как в сервисе работает приоритетность правил.

Справа на скрине видим количество показанных капч, а в столбце CSR % решенных.

В итоге: Благодаря правильным настройкам нам удалось полностью избавиться от бесполезного спам-трафика. 

Важно уточнить, что http запросы с User-agent’ами 1С, битрикс и планировщика cron добавлены в исключения, а значит сервисные задачи CMS/синхронизация с 1С пройдут без проблем.

Свяжитесь с нами

ОСТАВЬТЕ ЗАЯВКУ