Показувати ціни в:
whois
До блогу
25.04.2026

Захист сайту від ботів за допомогою LiteSpeed і reCAPTCHA

Боти можуть створювати зайве навантаження на сайт, сканувати сторінки без користі для власника, надсилати автоматичні запити, перевіряти форми або просто витрачати ресурси хостингу. Якщо сайт працює на веб-сервері LiteSpeed, для частини таких випадків можна використовувати додаткову перевірку відвідувачів через reCAPTCHA без внесення змін у код самого сайту.

Що дає захист від ботів

Не кожен бот є шкідливим. Пошукові системи також використовують ботів для індексації сайту, і їх зазвичай не потрібно блокувати. Але існують і небажані автоматизовані запити: парсери, сканери, сумнівні SEO-боти, боти для підбору форм, автоматичні перевірки вразливостей або програми, які створюють високе навантаження на сайт.

Такі запити можуть призводити до декількох проблем:

  • збільшення навантаження на процесор, пам’ять і базу даних;
  • повільнішої роботи сайту для реальних відвідувачів;
  • зайвого споживання ресурсів хостингу;
  • засмічення статистики відвідувань;
  • автоматичного сканування форм, сторінок авторизації або пошуку;
  • підвищеного ризику атак на CMS, плагіни або адміністративні розділи.

Тому в окремих випадках доцільно не одразу блокувати відвідувача, а спочатку показати йому перевірку reCAPTCHA. Якщо це реальна людина — вона зможе пройти перевірку і продовжити роботу з сайтом. Якщо це автоматизований бот — найчастіше він не зможе пройти перевірку або припинить подальші запити.

Як працює перевірка через LiteSpeed

На хостингу з веб-сервером LiteSpeed можна використовувати спеціальні правила в файлі .htaccess. Вони дозволяють визначити, для яких запитів потрібно увімкнути додаткову перевірку reCAPTCHA.

Для цього використовується змінна:

RewriteRule .* - [E=verifycaptcha]

Таке правило не змінює адресу сторінки і не виконує редирект. Воно лише передає LiteSpeed вказівку, що для запиту потрібно застосувати перевірку captcha.

Також можна не показувати перевірку, а одразу заблокувати небажаного бота:

RewriteRule .* - [E=blockbot:1]

У такому випадку запит буде заблоковано без можливості пройти reCAPTCHA.

Важливо: перед внесенням правил у .htaccess бажано зробити резервну копію файлу. Помилка в правилах може призвести до некоректної роботи сайту.

Коли варто використовувати reCAPTCHA для ботів

Перевірку reCAPTCHA через LiteSpeed варто використовувати не для всіх відвідувачів підряд, а точково. Наприклад, коли ви бачите у статистиці або логах, що певні боти створюють підозріло багато запитів або навантажують сайт.

Найчастіші сценарії використання:

  • перевірка окремих ботів за User-Agent;
  • перевірка відвідувачів з країн, які не є цільовою аудиторією сайту;
  • захист сторінок авторизації, пошуку або форм;
  • обмеження небажаних SEO-ботів і парсерів;
  • тимчасовий захист під час підвищеного навантаження або атаки.

Не рекомендується без потреби вмикати captcha для всіх відвідувачів. Це може погіршити користувацький досвід і зменшити кількість звернень або замовлень на сайті.

Приклад 1. Перевірка ботів за User-Agent

Якщо певний бот створює високе навантаження на сайт і не приносить користі, його можна відправити на перевірку reCAPTCHA за значенням User-Agent.

Наприклад, так можна увімкнути перевірку для ботів MJ12bot та AhrefsBot:

<IfModule LiteSpeed>
    RewriteEngine On

    RewriteCond %{HTTP_USER_AGENT} MJ12bot [OR]
    RewriteCond %{HTTP_USER_AGENT} AhrefsBot
    RewriteRule .* - [E=verifycaptcha]
</IfModule>

У цьому прикладі, якщо запит надходить від User-Agent, який містить MJ12bot або AhrefsBot, LiteSpeed застосує перевірку reCAPTCHA.

Такий підхід зручний, коли потрібно обмежити конкретних ботів, але не чіпати звичайних користувачів сайту.

Приклад 2. Перевірка відвідувачів не з України

Якщо сайт орієнтований переважно на відвідувачів з України, можна зробити так, щоб користувачі з України відкривали сайт без додаткових перевірок, а відвідувачі з інших країн проходили reCAPTCHA.

<IfModule LiteSpeed>
    RewriteEngine On
    GeoIPEnable On

    RewriteCond %{ENV:GEOIP_COUNTRY_CODE} !^(UA)$
    RewriteRule .* - [E=verifycaptcha]
</IfModule>

У цьому прикладі перевірка застосовується до всіх відвідувачів, країна яких не визначена як UA. Це може бути корисно для локальних сайтів, які працюють тільки з українською аудиторією.

Водночас потрібно враховувати, що частина реальних користувачів може заходити з-за кордону, використовувати VPN або мобільні мережі з нетиповою маршрутизацією. Тому перед використанням такого правила варто оцінити, чи не завадить воно вашим реальним клієнтам.

Як додати пошукового бота у білий список

Якщо ви використовуєте перевірку за країною або іншими загальними умовами, важливо не заблокувати корисних ботів пошукових систем. Наприклад, можна додати виняток для Googlebot.

<IfModule LiteSpeed>
    RewriteEngine On
    GeoIPEnable On

    RewriteCond %{HTTP_USER_AGENT} !^Googlebot
    RewriteCond %{ENV:GEOIP_COUNTRY_CODE} !^(UA)$
    RewriteRule .* - [E=verifycaptcha]
</IfModule>

У цьому прикладі для Googlebot перевірка не застосовується, навіть якщо запит не визначений як український.

Але потрібно пам’ятати, що User-Agent можна підробити. Тому для критично важливих сценаріїв одного лише User-Agent недостатньо. Якщо потрібно точно перевіряти пошукових ботів, варто використовувати додаткові методи перевірки, наприклад reverse DNS lookup.

Приклад 3. Перевірка відвідувачів з окремих країн

Можна застосувати reCAPTCHA тільки до відвідувачів з певних країн. Наприклад, якщо з окремих регіонів надходить багато автоматизованих запитів, можна додати перевірку саме для них.

<IfModule LiteSpeed>
    RewriteEngine On
    GeoIPEnable On

    RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^(CN|US)$
    RewriteRule .* - [E=verifycaptcha]
</IfModule>

У цьому прикладі перевірка reCAPTCHA буде застосована до відвідувачів, які визначені як користувачі з Китаю або США.

Такий підхід краще використовувати обережно. Якщо ваш сайт може бути корисним для міжнародної аудиторії, не варто без аналізу обмежувати цілі країни. Більш правильний варіант — спочатку перевірити журнали відвідувань і зрозуміти, звідки саме надходить небажане навантаження.

Як заблокувати бота без reCAPTCHA

Якщо ви точно знаєте, що певний бот є небажаним і не повинен отримувати доступ до сайту, можна не показувати йому reCAPTCHA, а одразу заблокувати запит.

<IfModule LiteSpeed>
    RewriteEngine On

    RewriteCond %{HTTP_USER_AGENT} BadBot
    RewriteRule .* - [E=blockbot:1]
</IfModule>

У цьому прикладі запити від User-Agent BadBot будуть заблоковані.

Повне блокування варто використовувати тільки тоді, коли ви впевнені, що не обмежите реальних користувачів або корисні сервіси. Для сумнівних випадків краще спочатку застосувати reCAPTCHA, а не жорстке блокування.

Практичні рекомендації

Щоб захист від ботів працював коректно і не заважав реальним відвідувачам, варто дотримуватися декількох простих правил:

  • спочатку аналізуйте логи сайту, а вже потім додавайте правила;
  • не вмикайте captcha для всіх відвідувачів без реальної потреби;
  • додавайте винятки для важливих пошукових систем;
  • обережно використовуйте обмеження за країнами;
  • після зміни .htaccess перевіряйте роботу сайту в браузері;
  • зберігайте резервну копію робочого файлу .htaccess;
  • якщо сайт працює на CMS, додатково оновлюйте саму CMS, теми та плагіни;
  • не розглядайте reCAPTCHA як повну заміну комплексного захисту сайту.

Захист від ботів найкраще працює тоді, коли він застосовується точково: до конкретних ботів, підозрілих країн, окремих сторінок або періодів підвищеного навантаження.

Висновок

LiteSpeed дозволяє гнучко керувати перевіркою відвідувачів через reCAPTCHA за допомогою правил у файлі .htaccess. Це зручний інструмент для зменшення навантаження від небажаних ботів без внесення змін у код сайту.

За допомогою таких правил можна перевіряти окремих ботів за User-Agent, застосовувати captcha для відвідувачів з певних країн, додавати винятки для пошукових систем або повністю блокувати небажані автоматизовані запити.

Головне — використовувати ці можливості обережно. Надмірна кількість перевірок може заважати реальним користувачам, а занадто жорстке блокування може випадково обмежити корисний трафік. Тому найкращий підхід — аналізувати логи, визначати джерела небажаного навантаження і застосовувати правила саме там, де вони справді потрібні.

Інші статті