Мы принципиально не хотим быть чёрным ящиком: каждая пометка «бот» в Трафло объяснима. Вот шесть сигналов, из которых складывается оценка визита, и логика каждого из них.

1. User-agent известного бота

Самый простой случай: краулеры и утилиты вроде python-requests или Scrapy честно представляются. Такой визит получает максимальный вес сразу. Ловит только «честных» ботов, поэтому дальше начинается интересное.

2. IP из дата-центра

Живые люди сидят за домашними и мобильными провайдерами. Если визит пришёл с адреса AWS, Hetzner или другого облака, почти наверняка это скрипт: обычный человек не ходит в интернет с арендованного сервера.

3. Нет движения мыши

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

4. Подозрительный canvas-отпечаток

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

5. Таймзона не совпадает с географией

Браузер сообщает таймзону, IP даёт примерную географию. У человека из Новосибирска они согласованы. У бота, который ходит через прокси, часто нет: сервер в Европе, таймзона по умолчанию UTC.

6. Мгновенный уход

Уход со страницы быстрее чем за секунду при наличии контента: человек столько не успевает даже прочитать заголовок. Слабый сигнал сам по себе, но в сумме с другими добавляет уверенности.

Почему это сумма, а не одно правило

Каждый сигнал по отдельности даёт ложные срабатывания: бывает человек без мыши на тачскрине, бывает корпоративный VPN из дата-центра. Поэтому сигналы складываются в score от 0 до 100, а порог вы настраиваете сами под специфику своего трафика. И главное: к каждому визиту прилагается список сработавших правил, так что любой вердикт можно проверить руками.

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