Как мы сделали бот-трафик видимым: кейс BotStats

Как мы сделали бот-трафик видимым: кейс BotStats

Как мы сделали бот-трафик видимым: кейс BotStats

О проекте

Поисковые системы и AI-сервисы регулярно обходят сайты, но стандартные системы веб-аналитики почти не показывают этот трафик. Подробные сведения остаются в access.log, где их сложно использовать для ежедневной работы. Требовался небольшой сервис, который можно развернуть рядом с сайтом и получать понятную статистику без внешней аналитической платформы.

За первые 15 дней сервис собрал 1 094 486 запросов от 25 типов ботов. Данные хранятся в скользящем окне за 31 день.

Задача

Инструмент должен был отвечать на вопросы, которые возникают у SEO-специалиста и технической команды:

  • какие поисковые и AI-боты обращаются к сайту
  • как меняется количество запросов по дням
  • какие страницы и технические адреса запрашиваются чаще всего
  • какие HTTP-коды получают разные роботы
  • где возникают массовые редиректы, блокировки, ошибки 404 и ошибки сервера

Решение

Разработан автономный сборщик на Python и веб-интерфейс для просмотра статистики. Сервис читает обычные и сжатые журналы nginx, определяет бота по User-Agent, группирует запросы и сохраняет дневные агрегаты в SQLite.

В базовую конфигурацию включён 31 маркер поисковых, рекламных и AI-ботов. Список можно изменить при запуске. Сервис не требует внешней базы данных, JavaScript-фреймворка или стороннего API.

Как работает система

1. Чтение журнала

Сервис обрабатывает access.log или access.log.gz целиком либо только за выбранный день.

2. Определение бота

User-Agent сопоставляется с настраиваемым списком маркеров. Более точные названия проверяются первыми, поэтому Googlebot-Image не смешивается с Googlebot.

3. Нормализация адресов

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

4. Агрегация

Система считает запросы по дню, боту, User-Agent, HTTP-коду и URL, а также сохраняет время первого и последнего обращения.

5. Обновление данных

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

Интерфейс

Главный экран показывает общий объём запросов, количество обнаруженных ботов, дату последнего сбора и распределение HTTP-кодов. Данные можно фильтровать по дню и коду ответа, а список ботов сортировать по активности или по алфавиту.

Столбчатая диаграмма показывает количество визуальное кол-во запросов, а круговая – общую долю каждого робота. На пилотном периоде больше всего обращений создали YandexBot, YandexRenderResourcesBot и Googlebot. В статистике также видны ChatGPT-User, ClaudeBot, OAI-SearchBot, GPTBot и другие AI-агенты.

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

В карточке отдельного бота отображаются исходный User-Agent, общее количество запросов, HTTP-коды и наиболее частые URL. На примере GPTBot видно 4 356 обращений: 1 979 ответов 200, 2 318 редиректов 301, 4 ответа 403 и 55 ответов 404. Такой срез позволяет сразу проверить цепочки редиректов и недоступные страницы.

Как инструмент помогает

SEO-специалист видит, обращаются ли поисковые и AI-боты к нужным разделам и какие ответы получает каждая группа роботов. Разработчик или системный администратор может быстро выделить массовые 301, 403, 404, 429 и 5xx, а затем перейти к проверке конкретных маршрутов. Контент-команда получает фактические данные о том, какие разделы сайта чаще появляются в списке.

Отчёт также показывает служебные адреса и аномальные запросы. Это помогает проверить robots.txt, внутренние ссылки, кэширование и правила доступа, а также сократить необязательную нагрузку на сайт.

Эксплуатация

Сбор запускается по расписанию после ротации журнала и поддерживает обычные и gzip-файлы. Срок хранения и количество URL в отчёте настраиваются. Интерфейс можно закрыть HTTP Basic Auth или ограничить на уровне nginx; страницы адаптированы для мобильного экрана.

Результат

BotStats заменил ручной поиск по большим журналам на ежедневный отчёт. На пилотном периоде система обработала 1 094 486 запросов и показала активность 25 типов ботов. Для каждого обращения доступны пять основных разрезов: день, бот, User-Agent, HTTP-код и URL.

Услуги, которые могут решить задачу

24.09.2026

Е-мейл практикум по работе с отзывами в интернете
Е-мейл практикум по работе с отзывами в интернете
Хотите получить индивидуальное решение для вашего проекта?
Оставьте заявку, и мы свяжемся с Вами
rus