Как защитить сайт от ботов, накрутки ПФ и скликивания рекламы

Как защитить сайт от ботов? SEO

В последний год значительно усилились наплывы ботов на успешные сайты с хорошей репутацией. Обычно, боты приходят на сайт с двумя целями — просадить поведенческие факторы (далее — ПФ), либо же, для прогрева самого бота (имитация насмотренности страниц сайтов, чтобы профиль бота выглядел максимально естественно в глазах поисковых систем).

В обоих случаях данное явление негативное — боты и в том, и в другом случае портят поведенческие факторы, дают большие отказы, снижают статистику конверсии и т.д. Поэтому, лучше от них избавляться. Как? — Давайте разберёмся!

Настраиваем защиту от ботов на Cloudflare

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

В общем, в подавляющем большинстве случаев, чтобы защититься от ботов нам хватит сервиса Cloudflare «за глаза». Более того, применять его очень и очень легко. Нам даже не нужно вносить какой-либо дополнительный код или фалы на свой сайт. Cloudflare подключается максимально просто:

  • Регистрируемся на сервисе;
  • Добавляем домен своего сайта;
  • Выбираем тарифный план (чаще всего это бесплатный — Free);
  • Вносим все DNS, по которым доступен наш сайт или его сервисы. Обычно, они указаны на нашем хостинге в разделе DNS (зачастую Cloudflare сам их и находит);
  • Меняем NS домена на те, которые даёт нам Cloudflare. Делается это на сайте регистратора домена, либо же на своём хостинге (если получали домен через него) в разделе Настройки доменов.
Добавляем NS-записи серверов предоставленные нам Cloudflare
Добавляем NS-записи серверов предоставленные нам Cloudflare на свой хостинг или на регистратор домена

Если вам кажется всё вышеперечисленное чем-то сложным, то поверьте, вам только кажется. На практике всё очень просто. Начнёте делать — убедитесь сами. Мы же переходим к настройке защиты от ботов и созданию правил фильтрации трафика.

Для отсечения большинства мусорного трафика достаточно включить функцию Bot Fight Mode в разделе Security > Bots. Обычно, после её включения сильно проседает ботовый трафик и значительно уменьшается показатель отказов. Иногда, этого уже достаточно. Но современные боты — накрутчики ПФ умеют обходить простые фильтры и даже Bot Fight Mode от них не спасает. Приходится переходить к более сложным мероприятиям.

Создаём кастомные правила фильтрации трафика на Cloudflare

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

Для создания правила на Cloudflare переходим в раздел Security и выбираем вкладку WAF, а в ней нажимаем на кнопку + Create rule.

После нажатия кнопки перед нами откроется редактор правил. В поле Rule name вводим произвольное название нашего правила (можно и кириллицей), затем нажимаем на ссылку Edit expression справа и в поле вводим код шаблона, примеры которых вы найдёте ниже. Далее, в форме Choose action выбираем действие, которое мы применим к отловленным ботам. Вот пример добавления правила:

Добавляем правило в Cloudflare
Добавляем правило в Cloudflare

Даём жизнь поисковым ботам. Первым делом нам нужно дать допуск на сайт ботам поисковых систем, таких как Яндекс, Гугл, Майкрософт, Мэил, Рамблер и Бинг. Можете прописать сколько угодно поисковых систем по данному шаблону, используйте его как пример:

(cf.client.bot) or (http.user_agent contains "Mail.RU_Bot") or (http.user_agent contains "; +http://yandex.com/bots") or (http.user_agent contains "StackRambler") or (http.user_agent contains "msnbot") or (http.user_agent contains "Googlebot")or (http.user_agent contains "bingbot")

После добавления кода шаблона нам нужно выбрать применяемое к отловленным ботам действие. Для поисковых ботов выбираем действие Skip (пропустить), а ниже, ставим галочки везде, чтобы нигде не учинять им препятствий. Выставив галочки нажимаем на кнопку Save as Draft и идём создавать новое правило.

Пропускаем поисковых роботов
Пропускаем поисковых роботов

Защищаемся от ботов с IPv6. Следующее правило — создаём ограничение на вход по IPv6. IPv6 — это протокол сетевого взаимодействия. Примечателен он тем, что прокси на него стоят сущие копейки, поэтому и используются ботофермами. А вот реальные пользователи в 99 процентов случаев переходят к нам по протоколу IPv4. Поэтому, отличным способом защититься от ботов будет отсев доступа на сайт по IPv6.

(ip.src in {::/0} and not ip.geoip.asnum in {13238}) or (not ssl and not ip.geoip.asnum in {13238})

После ввода кода правила выбираем действие, которое будем применять к ботам. Здесь рекомендуется выбрать Interactive Challenge. Interactive Challenge — это капча. Выбираем его на тот случай, если всё же по IPv6 к нам зайдёт живой человек. Он просто введёт капчу и продолжит просмотр сайта.

Ловим устаревший HTTP и прямые заходы. По устаревшим протоколам HTTP ходят по сети в основном боты, все мало-мальски современные браузеры уже давно «живут» по протоколам HTTP2 и выше. Так же, отлавливаем и прямые заходы. Боты — «отказники» в основном ломятся на сайт напрямую. Поэтому, будем озадачивать их капчой.

(not http.request.version in {"HTTP/2" "HTTP/3" "SPDY/3.1"} and not ip.geoip.asnum in {13238}) or (http.referer eq "" and not ip.geoip.asnum in {13238})

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

Блокируем популярные User agent известных назойливых ботов. Данный список периодически стоит обновлять, но на данный момент и этого будет достаточно.

(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 "hloader") or (http.user_agent contains "httplib") or (http.user_agent contains "HTTrack") 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")

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

Отсекаем по гео. Если вас донимают боты из других стран, то смело можете применять код этого фильтра. Указанные в нём страны — это те, откуда мы допускаем трафик БЕЗ препятствий. Все те, которые в него НЕ внесены — будут проходить испытание от Cloudflare. В примере ниже допущен будет трафик из России, Белоруссии и Казахстана.

(ip.geoip.country ne "RU" and ip.geoip.country ne "BY" and ip.geoip.country ne "KZ")

Применяемое действие — Managed Challenge. Это означает что Cloudflare сам будет решать, кого озадачивать проверкой, кого блокировать, а кого пропускать.

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

Активные кастомные правила Cloudflare
Активные кастомные правила Cloudflare

Подобные настройки позволят очень хорошо защитить свой сайт от нашествия ботов, портящих ПФ. Но Cloudflare — не панацея. Он защитит от массового бота, но если вас парсят или если кто-то натравливает на ваш сайт современных технологичных ботов, Cloudflare не справится. К примеру, сайт под защитой Cloudflare может спарсить любой начинающий парсер с помощью модуля Selenium и нескольких вспомогательных библиотек. Поэтому, для серьёзной защиты понадобятся меры покруче.

Используем сервис Antibot Cloud для защиты от современных ботов

Сервис Antibot Cloud
Сервис Antibot Cloud

AntiBot Cloud — универсальное решение «из коробки», которое не требует какой-либо точной настройки — оно работает сразу и защищает от любых ботов, будь то «прогулочные» боты, парсеры, кликеры, браузерные боты портящие ПФ и т.д. Но данный сервис — платный. Стоимость использования — 10 долларов в месяц. Есть бесплатная версия, но она работает локально и не защищает от современных ботов.

Подключить AntiBot Cloud довольно просто:

  • Сначала проверяем свой сервер на соответствие системным требованиям скрипта AntiBot (они минимальные, все современные платные сервера им соответствуют);
  • Затем, заходим в личный кабинет и скачиваем оттуда сам скрипт;
  • Скрипт размещаем в корневом каталоге своего сайта через FTP-клиент (Менеджер файлов на хостинге);
  • Далее, процесс активации скрипта зависит от вашей CMS, но в принципе всё просто. Подробная пошаговая инструкция вам будет предоставлена при подключении.

В целом, если вы решите покупать защиту от AntiBot Cloud, то Cloudflare можете не использовать, скорее всего AntiBot покроет потребность в защите сайта полностью.

Защита от ботов с помощью файла htaccess

Небольшой лайфхак, как защититься в случае примитивного наката ботов с других сайтов. Если вы вдруг обнаружили пришествие ботов со сторонних сайтов и у вас нет желания ставить Cloudflare или AntiBot, то можно защититься по-быстрому.

Заходим в файл .htaccess, или если его нет, то создаём его в корневом каталоге (в названии пишем .htaccess обязательно с точкой в начале!). Далее, в файле прописываем:

  • RewriteEngine On #Если создали файл впервые
  • RewriteCond %{HTTP_REFERER} https://site.click/ [NC] #Указываем сайт в отношении которого хотим произвести действие с помощью значения REFERER
  • RewriteRule ^ — [F] #Запрещаем доступ с данного сайта на наш — при попытке перехода будет отдана ошибка 403 — доступ запрещён.

В файле запись должна выглядеть так:

Запрещаем переход с сайта на наш сайт в файле htaccess

В .htaccess мы можем прописать и другие способы защиты, например, запрет для некоторых IP или User agent, но это будет самая примитивная защита от самых примитивных ботов, которых на данный момент практически и не встретить. Поэтому, в случае пришествия на сайт ботов я настоятельно рекомендую обратиться к более серьёзной защите.

Чего делать категорически нельзя при наплыве ботов

Бездействовать. Ждать, что ботам надоест донимать ваш сайт — плохая идея. Им не надоест.

Он не устанет, Гомер, и боты не устанут
«Он не устанет, Гомер!» ..и боты не устанут.

Со временем, даже от наплыва «гуляющих» ботов начинают проседать позиции в поиске, так как они делают много отказов и мало времени проводят на сайте. В общем, просаживают ПФ. Через пару-тройку месяцев бездействия можно сильно потерять позиции в выдаче как у Яндекса, так и у Гугла.

Закрывать доступ IP адресам, по которым заходят боты. Ещё несколько лет назад это был вполне рабочий способ. Сейчас же так действовать категорически нельзя! Почему? Потому что раньше боты в основном использовали дешёвые прокси, а сейчас в основном используются IP адреса операторов связи и другие реальные IP, по которым приходит живой трафик. Если вы будете блокировать их, то заблокируете доступ к сайту и множеству реальных пользователей, что навредит серьёзнее, чем деятельность самих ботов. Это как стрелять себе в ногу увидев на ней муху.

Закрывать прямой доступ по ссылке на сайт. Часто боты «ломятся» на сайт путём прямых заходов (переход по прямой ссылке) и владелец сайта думает: «Дай-ка я закрою прямой доступ через .htaccess!» и пытается использовать код для закрытия доступа значением REFERER, указывая в нём свой сайт. Таким образом он не только запрещает всем вход по прямой ссылке, но и вызывает гнев у поисковых систем, за что может получить фильтр на сайт, что само по себе гораздо большая проблема, чем боты.

Вообще, любые ограничения доступа на сайт должны быть максимально тщательно продуманы, а все их последствия — просчитаны до их применения. Если вы не являетесь специалистом в данной области у вас нет программиста в штате, то лучше всего доверить бремя защиты от ботов указанным статье сервисам или их аналогам.

Оцените статью
Добавить комментарий