Как установить Антибот на сайт и не выпасть из индекса
Антибот ставится за полчаса, а ломает сайт за минуту — если подключить его так, что робот Google увидит страницу проверки вместо контента. Разбираем три способа подключения, требования к серверу, порядок установки и шесть мест, где ошибаются почти все. Материал собран по официальному FAQ разработчика и практике настройки на боевых сайтах.
Что делает Антибот и почему это вопрос SEO
Антибот — PHP-скрипт, который встаёт перед вашим сайтом и проверяет каждого посетителя до того, как отдать ему страницу. Живой человек проходит проверку за 1–3 секунды и чаще всего её не замечает. Подозрительный получает кнопку «я не робот» или капчу. Парсер, спамер и накрутчик поведенческих не проходят вовсе.
Ключевой для нас момент — как скрипт обходится с поисковыми роботами. Googlebot, YandexBot и Bingbot проверку не проходят: их пропускают без неё. Подлинность подтверждается схемой IP-PTR-IP — по адресу запрашивается обратная DNS-запись, а по ней снова прямая. Совпало — робот настоящий, пропускаем. Не совпало — это парсер, который представился Googlebot, и он получает блокировку.
Отсюда и цена ошибки. Настроили верно — робот вообще не видит, что на сайте стоит защита. Настроили неверно — робот получает страницу проверки: один и тот же HTML на всех адресах, без текста и ссылок. Для поисковика это не «сайт под защитой», а «сайт, где все страницы стали одинаковыми и пустыми». Дальше — выпадение из индекса и обвал трафика, причём не мгновенный: между ошибкой и падением проходят дни, и связать одно с другим потом трудно.
Антибот — это про безопасность или про SEO? И про то, и про другое, но рискуете вы именно позициями. Сломанный антибот не «сделает сайт менее защищённым» — он выкинет вас из выдачи. Поэтому установку принимает SEO-специалист, а не только админ: проверять надо не «сайт открывается», а «робот видит контент».
Требования к серверу: проверьте до покупки
Скрипт работает на PHP 5.6–8.5.2 и требует набор расширений. Проверьте их наличие до оплаты — на дешёвом shared-хостинге чаще всего не хватает SQLite3 и GMP, а без них установка встанет на первом шаге.
| Что нужно | Зачем это скрипту | Как проверить |
|---|---|---|
| PHP 5.6–8.5.2 | Сам скрипт, любая ветка в этом диапазоне | php -v в консоли или phpinfo() |
| SQLite3 | Локальная база логов и кэша проверок — отдельный MySQL не нужен | php -m | grep sqlite3 |
| Mbstring | Работа с UTF-8 в правилах и шаблонах | php -m | grep mbstring |
| GMP | Арифметика больших чисел при работе с диапазонами IP, в том числе IPv6 | php -m | grep gmp |
| cURL, OpenSSL | Запросы к облачному серверу проверки и HTTPS | php -m | grep -E "curl|openssl" |
| GD, ZIP | Генерация капчи и распаковка обновлений | php -m | grep -E "gd|zip" |
Второе требование — не техническое, но важнее первого. Разработчик прямо пишет: настройка требует компетенций веб-мастера, программиста или системного администратора. Это честная оговорка, и её стоит принять всерьёз. Если вы не понимаете, чем PHP-FPM отличается от mod_php, установку лучше заказать — ошибка стоит дороже платной настройки.
Три способа подключения — какой ваш
Скрипт должен запускаться раньше кода сайта. Способ подключения выбирается не по вкусу, а по тому, как на сервере работает PHP.
| Способ | Когда подходит | Что прописать | Риск |
|---|---|---|---|
| .user.ini | PHP-FPM, nginx — самая частая связка | auto_prepend_file = "/home/admin/site.com/antibot/code/include.php" | Файл должен принадлежать пользователю PHP, не root |
| .htaccess | Apache + mod_php или LiteSpeed | php_value auto_prepend_file "/home/admin/site.com/antibot/code/include.php" | На nginx директива молча не работает |
| require в коде CMS | Закрытый код, нестандартный хостинг, выборочная защита | Подключение include.php в точке входа CMS | Пропустите точку входа — часть сайта останется без защиты |
Первые два способа лучше третьего принципиально: они закрывают все PHP-запросы разом, включая те, о которых вы забыли, — админку, ajax-обработчики, файлы загрузки. Третий способ оставляет дыры ровно там, где вы не дописали строку. Точные инструкции по каждому — в FAQ: через .user.ini, через .htaccess, через PHP в зависимости от CMS.
Хостинг не даёт менять auto_prepend_file — что делать? Остаётся третий способ: подключение через код CMS. Он рабочий, но требует дисциплины — надо найти все точки входа. Если хостинг вдобавок запрещает SQLite3, меняйте хостинг: на таком тарифе скрипт не заведётся вообще.
При подключении через .user.ini добавьте в правила ALLOW путь /.well-known/acme-challenge/ — иначе Let’s Encrypt не сможет подтвердить домен, и у вас в ближайшие 90 дней молча протухнет SSL-сертификат.
Установка по шагам
- Зарегистрируйте аккаунт и скачайте архив скрипта. Облачная проверка работает по лицензии, привязанной к домену.
- Загрузите папку antibot в корень сайта. Владелец файлов — тот же пользователь, от которого работает PHP. Если залить от root, веб-сервер их не прочитает, и вы получите ошибку 500 на всём сайте.
- Подключите скрипт одним из трёх способов выше. Путь в директиве — абсолютный, от корня файловой системы сервера, а не от корня сайта.
- Откройте админ-панель скрипта и пройдите установщик: задайте пароль, включите нужные правила, выберите облачную или локальную проверку.
- Настройте cron для удаления старых записей лога и кэша. Без него база SQLite растёт бесконечно и однажды упирается в лимиты диска.
- Пройдите официальный чеклист установки и только после него считайте работу законченной.
Отдельно про облачную и локальную проверку. Локальная считает всё на вашем сервере — быстрее, но правила обновляете вы сами. Облачная сверяется с сервером разработчика, где база подозрительных сетей общая по всем клиентам, и ловит новые волны ботов раньше. Плата за это — внешняя зависимость: недоступен облачный сервер, недоступна и проверка. Что выбрать, зависит от того, что для вас дороже — автономность или скорость реакции.
Что ломается чаще всего
Ошибки повторяются от сайта к сайту. Вот те, что встречаются чаще остальных, и механика каждой.
- Плагины кэширования WordPress. WP Fastest Cache и W3 Total Cache несовместимы, WP Rocket — частично. Причина в механике: плагин кэша отдаёт готовый HTML напрямую, минуя PHP, а вместе с PHP минуется и антибот. Итог — либо защита не работает, либо посетителю прилетает закэшированная страница проверки вместо контента.
- Заголовок Cache-Control: max-age на стороне сервера. Тот же эффект: страница проверки уходит в кэш браузера или прокси и живёт там, пока не истечёт срок.
- Bitrix и зацикленный редирект. Собственная система редиректов CMS конфликтует со страницей проверки, посетитель попадает в петлю. Лечится настройкой по отдельной инструкции.
- Владелец файлов — root. PHP не может прочитать собственные файлы скрипта, сайт отдаёт 500. Самая обидная ошибка: диагностируется за минуту, а ищут её часами.
- Забытый cron. Проявляется не сразу — через месяцы, когда лог занял весь диск.
- Директива в .htaccess на nginx. Файл лежит, строка в нём есть, эффекта ноль: nginx .htaccess не читает. Проверять надо не наличие файла, а факт срабатывания скрипта.
Сайт на WordPress с кэш-плагином — придётся выбирать между скоростью и защитой? По сути да, и выбор решается в пользу защиты: кэш-плагин отключают либо заменяют серверным кэшированием, которое умеет пропускать проверку. Держать одновременно WP Fastest Cache и Антибот нельзя — вы получите не компромисс, а неработающие оба.
Как проверить, что вы не убили индексацию
Проверять «сайт открывается в моём браузере» бесполезно: вы прошли проверку и получили cookie. Смотреть надо глазами робота.
- Search Console → «Проверка URL» → «Проверить страницу на сайте» → посмотреть отрендеренный HTML. Там должен быть текст статьи, а не страница проверки.
- Яндекс.Вебмастер → «Инструменты» → «Проверка ответа сервера». Отдельно проверьте главную и любую внутреннюю.
- curl с User-Agent робота и без него — сравнить ответы. Разный HTML при одинаковом коде 200 в данном случае норма: робот получает контент, аноним — проверку.
- Лог запросов в админке скрипта: найдите там визиты Googlebot и YandexBot и убедитесь, что они помечены как пропущенные, а не заблокированные.
- Через сутки после установки — отчёт «Индексирование страниц» в Search Console. Всплеск «Страница с переадресацией» или «Ошибка сервера 5xx» означает, что робот упёрся в проверку.
Не полагайтесь на то, что робот «сам разберётся». В Яндекс.Вебмастере неверная настройка выглядит как «Фатальная ошибка. Не удалось загрузить страницу» — у разработчика на этот случай есть отдельная страница FAQ. Если увидели такую ошибку — установка сделана неправильно, а не «Яндекс капризничает».
Ошибки, которые стоят трафика
- Ставить антибот в пятницу вечером. Ошибка проявится за выходные, а увидите вы её в понедельник — на графике падения.
- Проверять установку из своего браузера. Вы уже прошли проверку, вам покажут нормальный сайт. Робот увидит другое.
- Включить максимум правил сразу. Агрессивные правила режут не только парсеров: под нож попадают Telegram-превью, PageSpeed Insights, RSS-читалки и сервисы мониторинга. Начинайте с рекомендованного набора и добавляйте по одному.
- Забыть про acme-challenge и потерять SSL через три месяца.
- Не завести cron и упереться в диск.
- Считать, что антибот заменяет работу с качеством трафика. Он режет ботов на входе, но не чинит ни накрутку в чужих руках, ни ваши отказы: если люди уходят с сайта за пять секунд, это не боты, а посадочная страница.
И последнее, что стоит держать в голове: разработчик сам публикует страницу «Ограничения и недостатки». Прочтите её до покупки. Инструмент, у которого честно описаны границы применимости, обычно надёжнее того, у которого одни достоинства.
- Официальный FAQ разработчика — [antibot.cloud/FAQ](https://antibot.cloud/FAQ/), раздел закрывает 95% вопросов по настройке
- Подключение через .user.ini — [antibot.cloud/FAQ/user-ini.html](https://antibot.cloud/FAQ/user-ini.html)
- Подключение через .htaccess (Apache + mod_php, LiteSpeed) — [antibot.cloud/FAQ/apache-and-mod-php.html](https://antibot.cloud/FAQ/apache-and-mod-php.html)
- Подключение через PHP в зависимости от CMS — [antibot.cloud/FAQ/cms.html](https://antibot.cloud/FAQ/cms.html)
- Чеклист проверки установки — [antibot.cloud/FAQ/check-list.html](https://antibot.cloud/FAQ/check-list.html)
- Ограничения и недостатки скрипта — [antibot.cloud/FAQ/limitations-and-disadvantages.html](https://antibot.cloud/FAQ/limitations-and-disadvantages.html)
- Настройка на WordPress и несовместимые плагины кэша — [antibot.cloud/FAQ/wordpress.html](https://antibot.cloud/FAQ/wordpress.html)
Загружаем комментарии…