8 признаков поведенческих ботов на сайте: как вычислить атаку за 15 минут
Резкий рост визитов в Яндекс Метрике, отказы под 90%, странные регионы и график трафика, похожий на ЭКГ — у трёх из пяти сайтов, которые приходят к нам на аудит, причина одна: поведенческие боты. По нашим оценкам в BotHunt, в 2026 году от 8 до 40% трафика из Яндекса на коммерческих запросах создают именно они — конкуренты, накрутчики, спам-сети, AI-парсеры под видом пользователей.
Все восемь признаков, по которым опознаётся бот, можно увидеть глазами — но только если знать, куда смотреть. В этой статье собран рабочий чек-лист: каждый признак с пороговыми значениями, инструментами проверки и описанием того, что именно бот делает, чтобы остаться незамеченным. Без воды — только то, что наши агенты ежедневно фиксируют в дашбордах клиентов.

Что такое поведенческие боты и почему обычная аналитика их не видит
Поведенческие боты — это автоматизированные посетители, которые не парсят страницу и не атакуют форму, а имитируют живого человека: открывают сайт в реальном Chrome, скроллят, кликают, переходят между страницами. Их задача — оставить «правильный» отпечаток поведения в Яндекс Метрике, чтобы повлиять на ранжирование сайта в выдаче. Чаще всего на ваш — в минус, на сайт конкурента — в плюс.
Ещё пять лет назад это были простые скрипты на Python с десятка серверных IP. К 2026 году рынок собрался в индустрию: BAS (Browser Automation Studio), ZennoPoster и специализированные сервисы за 5–15 тысяч рублей в месяц предлагают «реалистичных ботов» с движением мыши, паузами и переходами по внутренним ссылкам. Подробно технологию мы разбирали в статье «Как бот имитирует пользователя».
Хорошая новость: даже самые продвинутые боты оставляют технические следы. Плохая — стандартная Яндекс Метрика фильтрует только базовые сценарии и обычно показывает в отчёте «Роботы» лишь 5–15% от реальной доли ботов. Остальное прячется в основных отчётах под видом нормального трафика.
Подключите BotHunt на 14 дней бесплатно — и за час увидите реальную долю ботов в своём трафике. Запустить защиту →
Признак 1. Скорость скролла и движения мыши вне человеческой нормы
Реальный пользователь скроллит рывками: пролистнул блок, остановился, прочитал, снова прокрутил. Скорость колеблется от 80 до 400 пикселей в секунду, есть микропаузы. Курсор перемещается дугой, иногда уходит за пределы окна, останавливается «не там».
Бот двигается иначе. Базовые сценарии в BAS и ZennoPoster, которые мы видим чаще всего, выдают одну из трёх характерных картин:
Идеальная равномерная прокрутка — точно по 200 пикселей каждые 500 мс, без вариации.
Мгновенный скролл к концу страницы за один-два кадра.
Дёрганые скачки по 800–1000 пикселей с фиксированной паузой между ними.
Курсор в дешёвых сценариях двигается по прямой линии от левого верхнего угла к нужному элементу. В дорогих — по сглаженной кривой Безье, но всё равно слишком плавно: настоящий человек не водит мышью без дрожаний и поправок.
Где смотреть: Вебвизор Яндекс Метрики (бесплатно), Hotjar или Plerdy (платно). Откройте 10 случайных сессий из подозрительных регионов или ночного времени. Если хотя бы три выглядят «как по линейке» — это уже признак атаки.
Признак 2. Аномальные тайминги между событиями
Это второй критичный признак, который мы в BotHunt отдельно учитываем в скоринге. Реальный человек ведёт себя так:
Делает паузу перед кликом — 200–800 мс, чтобы прицелиться курсором.
Заполняет поле формы 2–8 секунд, с ошибками и backspace.
Между загрузкой страницы и первым скроллом проходит 1–4 секунды на ознакомление с экраном.
Бот ведёт себя по таймеру:
Пауза перед кликом 0–50 мс или ровно 1000 мс — типовое значение
sleep(1)в скриптах.Поле заполняется мгновенно (paste из переменной) или строго по 100 мс на символ — фиксированный ритм.
Скролл стартует ровно через 2 или 5 секунд после загрузки — настройка из BAS-сценария.
В отчёте «Глубина и время на сайте» в Метрике это видно как аномально ровные показатели: тысячи сессий ровно по 35 секунд или ровно по 2 минуты. У реальных пользователей время распределено по нормальному закону, у ботов — слипается в столбцы вокруг конкретных значений.
Таблица: типичные тайминги человека и бота
Событие | Реальный пользователь | Поведенческий бот |
|---|---|---|
Время до первого клика | 1.5–6 сек | 0–0.3 сек или ровно 1.0/2.0 сек |
Заполнение поля имени | 1.8–4 сек, с правками | 0 сек (paste) или 100 мс/символ |
Длина сессии | разброс 10–600 сек | кластер вокруг одного значения |
Пауза перед кликом по CTA | 300–900 мс | 0–50 мс |
Скорость скролла | 80–400 пикс/сек, рваный | равномерно 200 пикс/сек |
Признак 3. Miss-click и «нарезание кругов» вокруг элементов
Этот признак почти невозможно сымитировать качественно — и поэтому он самый надёжный. Сценарий бота, который ходит по сайту, обычно реализуется так: «найди ссылку с текстом X, переведи курсор, нажми». Если в HTML появляется выпадающее меню или плавающий блок — координаты сдвигаются. Бот промахивается, после чего исправляется: щёлкает ещё раз рядом, делает несколько кругов вокруг кнопки, иногда кликает по соседней ссылке.
Что искать в Вебвизоре:
Курсор «нарезает круги» вокруг кнопки или анкора — характерное поведение фреймворков селективного клика.
Клик попадает в пустое место рядом с CTA-кнопкой, после чего идёт повторный успешный клик в радиусе 5–20 пикселей.
В развёрнутом меню курсор уходит «выше» нужной ссылки и потом резко вниз — попадание не с первого раза.
Курсор появляется сразу в координатах элемента (телепортируется), а не подходит к нему.
В BotHunt этот сигнал отдельно учитывается в скоринге как cursor_misalignment. В среднем 60% подозрительных сессий из ночного трафика на проектах клиентов имеют его в высокой степени. Как мы разбираем такие сессии в боевых атаках — в материале «Накрутка ПФ конкурентами: как определить атаку».

Признак 4. Дубликаты fingerprint у разных «пользователей»
Браузер каждого реального пользователя уникален: набор шрифтов, версия GPU, разрешение экрана, плагины, рендеринг canvas — всё вместе даёт хеш, который повторяется реже, чем 1 на 100 000 человек.
У ботов всё иначе. Дешёвые сценарии работают на одной сборке Chromium на одной машине → fingerprint у тысяч «разных пользователей» совпадает байт в байт. Средние сценарии используют ротацию профилей через Multilogin или AdsPower, но даже там пул профилей конечный: мы видим, как один и тот же canvas-hash появляется у 50–500 сессий за сутки с разных IP-адресов.
Что проверять: на стороне сервера или CDN — собирать canvas, WebGL и font-fingerprint у всех визитов и считать уникальность. Если у одного хеша больше 10 визитов в сутки с разных IP — это почти наверняка ботнет. Подробно технология описана в статье «Browser fingerprinting: как сервисы защиты опознают ботов».
Признак 5. Несоответствие User-Agent и TLS/JA3-отпечатка
Любой User-Agent в HTTP-заголовке можно подделать одной строкой. Боты этим активно пользуются: представляются «Chrome 132 на Windows», но соединение по TLS открывают так, как это делает curl, python-requests или старый headless Chromium.
JA3 — это хеш набора параметров, которыми клиент устанавливает TLS-соединение: версии TLS, набор cipher suites, расширения. У настоящего Chrome этот хеш стабильный и хорошо известный. У python-requests, golang net/http, curl — другой и тоже известный. Когда User-Agent говорит одно, а JA3 — другое, у нас в системе срабатывает однозначный сигнал «бот».
В обычных логах Nginx без модулей этого не видно — нужен специализированный антибот, WAF или агент. Пошаговый разбор технологии — в статье «TLS/JA3-fingerprinting: как сеть палит ботов до HTTP».
Хотите проверить долю JA3-несоответствий на своём сайте? Подключите BotHunt и получите детальный отчёт за 24 часа →
Признак 6. Подозрительная география и ASN
Здесь два разных сюжета.
Сюжет А — датацентровые IP. Бот ходит с серверов DigitalOcean, OVH, Hetzner, Aeza, Selectel — это датацентры, не жилые сети. ASN таких провайдеров известен и публично доступен. Если у вас сайт регионального бизнеса в Перми, а 30% трафика приходит с ASN AS14061 (DigitalOcean) — это однозначно не клиенты.
Сюжет Б — резидентные прокси. Дорогие боты ходят через 911.re, BrightData, Iproyal — пулы реальных IP домашних роутеров и мобильных операторов. Здесь ASN выглядит «чисто», но появляются другие сигналы: десктопный User-Agent на мобильном IP, странная связка «частный IP в Сибири + Chrome для Linux 96», скачкообразная смена IP в рамках одной сессии.
Таблица: что считать нормой по географии и ASN
Параметр | Норма для RU-сайта | Признак бота |
|---|---|---|
Доля датацентровых ASN | менее 1% | свыше 5% |
Доля иностранного трафика | 1–3% | свыше 15% |
Доля одного города | 5–15% | свыше 40% (часто — Москва) |
Mobile-IP + desktop-UA | 0% | 5–30% |
Смена IP внутри сессии | 0–1% | свыше 10% |
Подробно про резидентные прокси и фильтрацию по ASN — в статье «Резидентные прокси и ASN: как боты маскируют IP».
Признак 7. Аномалии в Яндекс Метрике и Вебмастере
Метрика — самый доступный инструмент диагностики. Что смотреть в первую очередь:
Отчёт «Роботы». Стандартные → Мониторинг → Роботы. Если доля > 5% — это уже много, > 15% — серьёзная атака. Подробнее про методику — в официальной справке Яндекса.
Прямые заходы. Доля 70%+ при коммерческой тематике — почти всегда боты, маскирующиеся под прямой трафик.
Глубина просмотра + время на сайте. Аномалия: 5–10 страниц за 10–15 секунд. Реальный человек так не читает.
Отказы. Свыше 60% при средней раньше 25–30% и без изменений на сайте — фейковый трафик.
Аффинити-индекс. Резкий рост >150% по нерелевантным интересам (например, «жители Бразилии» на сайте российских окон) — пул ботов прокачивает аффинити.
В Яндекс Вебмастере параллельно проверьте раздел «Безопасность и нарушения» — там появляется предупреждение о подозрительной активности, если Яндекс зафиксировал накрутку. Подробный разбор — в статье «Яндекс Вебмастер прислал предупреждение о накрутке: что делать».

Признак 8. Логи сервера: типовые сессии и всплески по таймеру
Если у вас есть доступ к access.log Nginx или Apache — это самый честный источник правды. Метрику и Вебвизор бот при желании может обмануть, логи — нет: он там обязательно оставляет след в виде запросов на статические ресурсы и последовательностей URL.
На что смотреть в логах:
Всплески по таймеру. 100 запросов ровно каждые 30 секунд с разных IP, но с одинаковым набором URL — типичный признак скриптовой накрутки.
Цепочки URL длиной 2–3 страницы. Бот заходит на главную → карточку товара → контакты, и так в каждой сессии. Реальные пользователи ходят хаотичнее.
Совпадающие User-Agent — например, тысячи сессий с одной редкой версией Chrome без обновлений минорной версии.
Пустой Referer при глубине 5+ страниц. В норме внутренние переходы дают Referer на ваш же домен.
Отсутствие подгрузки CSS и JS. Лёгкие боты дёргают только HTML — в логе у такого «пользователя» один запрос на страницу и ноль на ассеты.
Готовые однострочники для awk и goaccess мы собрали в материале «Логи Nginx: как найти ботов за 10 минут».
Чек-лист диагностики: проверьте свой сайт за 15 минут
Пройдите по пунктам в любом порядке. Каждое «да» — плюс к вероятности, что у вас идёт атака.
Доля «Роботов» в Яндекс Метрике превышает 5%.
Прямые заходы выросли за неделю на 30%+ без видимой причины.
Среднее время на сайте упало вдвое или, наоборот, выросло до ровного значения (35 сек, 1 мин).
В Вебвизоре нашлось хотя бы 3 сессии с прямолинейным курсором или мгновенным скроллом.
Доля одного города (часто — Москва) превышает 40% при региональном бизнесе.
В access.log есть всплески запросов по таймеру (раз в 10–60 секунд).
Аффинити-индекс по нерелевантным интересам резко вырос.
В Яндекс Вебмастере появилось предупреждение в разделе «Безопасность и нарушения».
3+ совпадения — повод подключить мониторинг. 5+ — атака с высокой вероятностью идёт прямо сейчас. Не ждите фильтра Яндекса: санкции за накрутку держатся 8–18 месяцев, и снять их проактивно в разы сложнее, чем предотвратить.
Что делать, если признаки подтвердились
Алгоритм действий — без паники, по шагам:
Сохраните access.log и сделайте скриншоты Метрики (Роботы, География, Источники, Глубина) — это будет доказательная база, если придётся обращаться в Яндекс.
Подключите антибот-агент на сайт (BotHunt ставится одной строкой кода или плагином для WordPress) — это закроет атаку в реальном времени, не дожидаясь ручной модерации.
Снимите видимые срабатывания фильтров через корректировки в Метрике и список нежелательных IP — но это полумера, она не остановит ротацию резидентных прокси.
Если в Вебмастере уже висит предупреждение — отвечайте через форму обратной связи, прикладывая логи и скриншоты атаки. Срок снятия — от 3 до 60 дней.
Полный разбор стратегии защиты — в pillar-статье «Защита от накрутки поведенческих факторов: гайд 2026».
Подключите BotHunt бесплатно на 14 дней. Установка — 1 минута, агент сразу покажет реальную долю ботов в трафике и начнёт их блокировать. Попробовать бесплатно →
Часто задаваемые вопросы
Почему Яндекс Метрика сама не блокирует всех ботов?
Метрика фильтрует только базовые сценарии: запросы без JavaScript, известные краулеры, явные паттерны. Поведенческие боты последнего поколения проходят все эти проверки — они открывают страницу в реальном Chrome с включённым JS, кликают и скроллят. По нашим оценкам, отчёт «Роботы» в Метрике показывает в среднем 5–15% от реальной доли ботов.
Сколько процентов ботов — норма для российского сайта в 2026?
На обычном коммерческом сайте без активной атаки доля ботов в трафике — 3–7%. Это поисковые краулеры, мониторинг доступности, легитимные сервисы (Метрика, аналитика, RSS-агрегаторы). Свыше 10% — повод проверить источники. Свыше 20% — почти всегда атака или активный парсинг.
Можно ли определить ботов без платных сервисов?
Да, но частично. Бесплатно доступны: отчёт «Роботы» и Вебвизор в Метрике, разделы «Запросы» и «Безопасность» в Вебмастере, ручной анализ access.log. Эти инструменты покрывают 4–5 признаков из 8. JA3-отпечатки, fingerprint-дубликаты и поведенческий скоринг в реальном времени без специализированного агента увидеть нельзя.
Боты конкурентов реально опасны или это страшилка?
Опасны. Мы видели проекты, где из-за накрутки конкурентов сайт терял 40–70% трафика из Яндекса за 2–4 недели и попадал под алгоритмический фильтр на 8–18 месяцев. Бюджет атаки на одного конкурента в нише — 5–25 тысяч рублей в месяц, что делает её доступной даже для мелких игроков.
Что делать, если боты только из Москвы, а у меня региональный бизнес?
Это типичный паттерн накрутки: исполнители работают с резидентных прокси московского пула, потому что их большинство на рынке. Просто заблокировать Москву нельзя — потеряете часть реальных клиентов. Нужна поведенческая фильтрация: бот в Москве отличается от настоящего москвича по таймингам, fingerprint и переходам.
Помогает ли смена IP сайта или переезд на новый домен?
Не помогает. Боты идут на ваш сайт по URL, который видят в выдаче Яндекса. Смените домен — за 1–2 апдейта индекса они перенастроятся. Защищаться надо на уровне приложения (агент или WAF с поведенческим скорингом), а не сети.
На маленьком сайте с 50 визитами в день это вообще актуально?
Актуально. На малом сайте даже 20–30 ботов в сутки переворачивают всю статистику Метрики и провоцируют срабатывание алгоритмических фильтров Яндекса. Парадокс: чем меньше реального трафика, тем заметнее эффект накрутки и проще атаковать.
Как BotHunt отличает бота от пользователя в реальном времени?
Агент за 4–12 миллисекунд считает 200+ сигналов: fingerprint (canvas, WebGL, шрифты), JA3-отпечаток TLS, поведенческие метрики (мышь, скролл, тайминги), репутацию IP и ASN, согласованность User-Agent и реального стека. Решение «пускать или блокировать» принимается до того, как страница начала рендериться. Точность — 99,9%, ложные срабатывания — менее 0,1%.





