⏳ Время чтения: ~12 минут
Реальный кейс: ботовая атака на сайт клиента в марте 2026 года — как мы её обнаружили, идентифицировали и остановили без потери позиций в долгосрочной перспективе.
Причины атак: откуда берутся боты?
В марте 2026 года мы столкнулись с ситуацией, которую SEO-специалисты боятся пожалуй больше, чем санкций поисковика: на сайт клиента пришли боты — сотнями, имитируя прямые заходы, поднимая показатель отказов и планомерно разрушая поведенческие факторы, которые выстраивались месяцами.
Самое неприятное: Яндекс.Метрика не распознала их как ботов.
Откуда берутся такие боты?
Причин несколько: недобросовестные конкуренты заказывают намеренное ухудшение поведенческих показателей чужого сайта, автоматизированные сканеры попадают на сайт случайно, URL утекает в базы спам-ботов. В нашем случае речь шла о целенаправленной атаке.
Почему поисковики не считают их ботами?
Потому что современные боты умеют хорошо имитировать реального пользователя: они приходят с реальных IP-адресов (часто из IPv6-диапазонов), используют настоящие User-Agent строки Chrome и Яндекс.Браузера, корректно загружают страницу. Яндекс.Метрика, ориентируясь на сигнатуру запроса, засчитывает такие визиты как живые — но для алгоритмов ранжирования это не нейтральные данные, а негативные сигналы о поведении аудитории.
📊
Что такое поведенческие факторы (ПФ)
Поведенческие факторы — совокупность действий пользователя на сайте: время на странице, глубина просмотра, возвраты в поиск (отказы), кликабельность сниппета. Яндекс использует ПФ как один из ключевых сигналов качества сайта. Рост отказов и падение времени на странице алгоритмы расценивают как признак нерелевантности и снижают позиции.
🔍
Как Яндекс получает данные о поведении на сайте
Яндекс собирает поведенческие данные из нескольких источников: через счётчик Яндекс.Метрики, через Яндекс.Браузер (анонимизированные данные), через данные поисковой выдачи — CTR сниппета, возвраты из поиска после перехода. Именно поэтому «скрыть» ботов, просто удалив счётчик или включив фильтр роботов в Метрике, не получится: данные по-прежнему поступают в алгоритмы из других источников.
Как обнаружить ботов в Яндекс.Метрике
Первым сигналом стал аномальный скачок прямых переходов. На протяжении нескольких месяцев сайт показывал стабильную картину — и вдруг в начале марта 2026 года прямые заходы резко выросли: в пиковые дни до 300–350 визитов в сутки при обычных показателях в 20–30.
График прямых переходов из Яндекс.Метрики — аномальный рост в марте 2026
Это первый признак ботовой атаки: резкий, необъяснённый рост именно прямых заходов без соответствующего роста заявок, звонков или других конверсий.
Алгоритм анализа в Вебвизоре
-
1
Перейдите в Вебвизор и примените фильтр Источники → Тип источника → Прямые заходы.
-
2
Добавьте столбец «IP-сеть» через «Настроить столбцы».
-
3
Ищите записи «IPv4 address block not managed by the RIPE NCC»IP-адреса, не зарегистрированные в европейском реестре. Для российских коммерческих сайтов такой источник в норме занимает доли процента. Если таких записей внезапно стало много — это тревожный сигнал.
-
4
Оцените поведение: время на сайте 0:03–0:04 секунды, просмотры — 1 страница, устройство — ПК. Это классическая картина ботовой активности.
Вебвизор — записи с IP-сетью «IPv4 address block not managed by the RIPE NCC», более 80% отказов
В нашем случае более 80% таких визитов — отказы. Время на сайте — секунды. Все заходы строго с одной IP-сети.
В Яндекс.Метрика применяем фильтр «Роботность: Только люди» — то есть явных роботов по User-Agent мы уже отсекли. Эти визиты попали в секцию «только люди»: боты достаточно хорошо маскируются, чтобы пройти первичную фильтрацию.
Ботовая атака успела повлиять на позиции: видимость сайта по ключевым словам (данные Топ Визора) упала с 68% до 42% в пиковый момент.
Топ Визор — падение видимости с 68% до 42% в период ботовой атаки
Анализ серверных логов: находим паттерн атаки
Когда Яндекс.Метрика не даёт полной картины, нужно спускаться на уровень сервера. Логи фиксируют абсолютно всё — в отличие от Метрики, они не поддаются никакой фильтрации.
Стандартный access-лог веб-сервера (Apache, Nginx) записывает каждый запрос: IP-адрес, дату и время, URL, User-Agent, HTTP-статус. Но у него есть минус — много «шума»: загрузки CSS, JS, изображений создают десятки строк на один реальный визит.
Поэтому дополнительно был реализован PHP-логгер — дамп переменной $_SERVER с временной меткой. Это дало чистую картину: только реальные визиты страниц с полной информацией о запросе.
Методика сопоставления данных
-
1
Выгрузить из Вебвизора все визиты с IP-сетью «IPv4 address block not managed by the RIPE NCC» с временными метками.
-
2
Найти в PHP-логах записи за те же временные интервалы (с погрешностью ±1 минута — серверное время и время Метрики могут незначительно расходиться).
-
3
Проверить поле REMOTE_ADDR в логах для совпадающих записей — установить тип IP-адреса (IPv4 или IPv6).
Вывод оказался однозначным: все подозрительные визиты приходили с IPv6-адресов и не содержали поля HTTP_REFERER. Именно сочетание этих двух признаков стало критерием идентификации ботов.
REMOTE_ADDR: 2a04:52c0:101:5f3::1 ← IPv6-адрес
HTTP_REFERER: [пусто] ← нет referrer (прямой заход)
HTTP_USER_AGENT: Mozilla/5.0 (Windows NT 10.0; Win64; x64)...
REQUEST_TIME: 16:38:12
Такую запись видели сотни раз — строго по расписанию, волнами, в интервале с 14:00 до 17:00.
🌐
В чём особенность IPv6
IPv6 — протокол адресации нового поколения. Пространство IPv6-адресов огромно: 2¹²⁸ адресов против 2³² у IPv4. Это делает IPv6-блоки привлекательными для ботоводов: можно генерировать колоссальное количество уникальных IP, практически не повторяясь. Блокировка одного адреса бессмысленна — у атакующего их сотни тысяч. Поэтому классические методы блокировки по IP против IPv6-ботов не работают.
Методы борьбы: типичные ошибки и рабочее решение
Что не поможет
Удалить счётчик Яндекс.Метрики. Яндекс собирает поведенческие данные из множества источников — Яндекс.Браузер, данные поисковой выдачи. Удалив счётчик, вы лишите себя аналитики, но не защитите позиции.
Включить фильтр «Не учитывать роботов» в Метрике. Это влияет только на отображение данных в интерфейсе Метрики — не на алгоритмы ранжирования.
Блокировать конкретные IPv6-адреса. У атакующего практически неограниченный пул адресов. Вы будете добавлять их в чёрный список, но боты меняют IP ежедневно.
Ждать реакции техподдержки Яндекса. Алгоритмы работают автоматически. Ручное вмешательство по жалобам — редкость, рассчитывать на оперативный ответ не стоит.
Рабочий метод: капча для IPv6 без HTTP_REFERER
Решение — не блокировать всех ботов (это невозможно), а создать препятствие, которое они не умеют преодолевать. Таким препятствием стала капча с точечными условиями показа.
Логика решения: реальный пользователь с IPv6 без referrer — редкость, но возможна (корпоративные сети, Tor). Бот с IPv6 без referrer — гарантированно не пройдёт капчу. Потери живого трафика от ложных срабатываний — минимальны.
Функция проверки (реализована на PHP для CMS Webasyst):
// Проверяем два условия: IPv6 + отсутствие referrer
public static function antiBotCheck() {
$is_ipv6 = filter_var($_SERVER['REMOTE_ADDR'],
FILTER_VALIDATE_IP, FILTER_FLAG_IPV6);
$no_referrer = empty($_SERVER['HTTP_REFERER']);
$need_check = $is_ipv6 && $no_referrer;
// Если условия не выполнены или капча уже пройдена — пропускаем
if (!$need_check || !empty($_SESSION['antibot_passed_success'])) {
return false;
}
// Если пользователь отправил форму капчи
if (isset($_POST['anti-bot-check'])) {
if (wa()->getCaptcha()->isValid()) {
$_SESSION['antibot_passed_success'] = 1;
echo "<script>location.href = '"
. $_POST['uri'] . "';</script>";
exit;
}
}
return true; // показать капчу
}
В шаблоне index.html добавлен условный вывод — если функция вернула true, пользователь видит капчу; иначе — стандартный контент сайта.
Как проверили результат
Сразу после внедрения были включены детальные логи, фиксирующие три события: показ капчи, успешное прохождение, заход с уже пройденной капчей.
Итог проверки: из более чем 300 срабатываний капчи — ноль успешных прохождений от ботов. При этом живой пользователь прошёл капчу с первой попытки. Критерий (IPv6 + отсутствие referrer) точно идентифицировал ботов.
Результаты: что изменилось после защиты
После настройки капчи аномальные прямые заходы прекратились практически сразу. На графике из Яндекс.Метрики чётко видна точка излома: с 24–25 марта кривая прямых переходов резко падает до нормальных значений.
ндекс.Метрика — резкое снижение прямых заходов после внедрения капчи (с 24 марта)
-44,07%
Показатель отказов у прямых заходов (снизился с 72% до 40%)
+255%
Время на сайте увеличилось
с 6 сек до 22 сек
-94,71 %
Прямые переходы (упали)
Видимость сайта увеличилась с 42% до 44%, это небольшое улучшение, до исходных 68% ещё далеко, но тренд на восстановление очевиден. Яндекс быстро реагирует на ухудшение поведенческих сигналов, но медленнее — на их улучшение. По нашему опыту, полное восстановление позиций после подобных атак занимает от 4 до 12 недель в зависимости от конкурентности тематики и глубины просадки.
Итог
Ботовая атака через имитацию прямых переходов — один из наиболее коварных инструментов недобросовестной конкуренции в SEO. Сайт технически исправен, санкций нет — есть только постепенное падение позиций без видимой причины.
Алгоритм защиты, который сработал:
- Мониторинг аномалий в Яндекс.Метрике — прямые заходы, IP-сети в Вебвизоре.
- Анализ серверных логов с сопоставлением по времени.
- Идентификация паттерна: IPv6 + отсутствие HTTP_REFERER.
- Точечная капча только для запросов, соответствующих паттерну.
- Верификация результата через логи прохождения капчи.
Этот кейс подтверждает: SEO — это не только контент и ссылки, но и техническая защита сайта от манипуляций извне. Регулярный мониторинг поведенческих метрик и серверных логов — обязательная часть работы SEO-специалиста.
SEO-специалист Easy IT
Екатерина Уколова
Разработчик
Алексей Зимин