← Все статьи// АНАЛИТИКА

98% трафика оказались ботами

13 августа 20266 мин чтения

Летом я доделал собственную систему аналитики и поставил её на свои проекты. Через несколько недель посмотрел на общую цифру и завис. Из 448 894 визитов живыми посетителями оказались около двух процентов.

Первые четыре минуты

Систему включили на интернет-магазине днём, и я сидел смотрел, как приходят первые данные. За четыре минуты в базу упало 133 визита. Из них 130 система пометила как ботов, причём 112 пришлись на один и тот же поисковый краулер, методично обходивший каталог.

Сначала я решил, что где-то ошибся в детекторе. Слишком уж красивое число. Проверил вручную несколько десятков записей: user-agent, адрес, поведение, скорость обхода. Ошибки не было, это действительно были роботы.

Что показала база через несколько недель

448 894визита обработано
441 191помечены как боты
~2%пришлись на людей

Почему обычные счётчики показывают другое

Стандартные системы статистики тоже фильтруют роботов, и делают это неплохо. Но фильтруют они в основном тех, кто честно представился: назвал себя краулером в user-agent или пришёл с известного диапазона адресов.

Проблема в остальных. Скрейперы, парсеры конкурентов, сервисы мониторинга цен и накрутчики представляются обычным браузером и приходят с обычных адресов, иногда с домашних. Формально они неотличимы от посетителя, и часть такого трафика оседает в отчётах как посещения.

На одном из проектов мы разбирали подозрительный всплеск и обнаружили ферму из 135 адресов одного облачного провайдера, которая ходила по каталогу с человеческими user-agent. В отчётах это выглядело как приток аудитории.

Признак, который работает

Перебирать user-agent и списки адресов — гонка, в которой всегда отстаёшь. Гораздо надёжнее оказался другой признак: выполнил ли посетитель JavaScript.

Большинство парсеров не запускают браузерный движок, потому что это дорого: им нужен HTML, а не отрисованная страница. Поэтому визит фиксируется на сервере, а отдельным сигналом подтверждается, что на странице реально отработал скрипт. Нет подтверждения — визит есть, человека нет.

Признак не идеальный. Серьёзный скрейпер на headless-браузере его пройдёт, а человек с отключённым JavaScript попадёт под подозрение. Но по соотношению усилий к результату он лучше всего остального, что я пробовал.

Считать конверсию от трафика, в котором 98% роботов, всё равно что делить выручку на количество проехавших мимо машин.

Что меняется, когда роботов отделили

Первое и самое неприятное: посещаемость падает. Цифра, которой привыкли гордиться, оказывается сильно меньше. Зато она наконец означает то, что написано.

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

Третье, и ради этого всё затевалось: становится видно, какая реклама реально приводит людей. Кампания, дающая много визитов и ноль заявок, нередко просто собирает роботов, и её надо не оптимизировать, а выключить.

Что с этим делать

Свою систему аналитики строить необязательно, для большинства задач хватает обычных счётчиков. Но полезно хотя бы раз посмотреть на трафик критически.

Числа в этой статье — из моей собственной системы, работающей на трёх проектах, включая сайт, который вы сейчас читаете. Как она устроена, я описал в отдельном кейсе.

Хотите понять, сколько у вас настоящих посетителей?

Посмотрю на ваши данные и скажу, что в них реально, а что шум. Бесплатно и без обязательств.