Анализатор лог-файлов сервера

Разбирайте логи доступа Apache, Nginx и IIS: какие боты куда ходят, какие коды ответа они получают и какая доля их запросов заканчивается ошибками. По желанию проверьте, что бот настоящий, через forward-confirmed reverse DNS.

Что делает

Чтение лога

log-analyze читает один файл лога доступа, обычный или gzip, и определяет формат по первым строкам. Запросы группируются по семейству ботов. Отчёт показывает хиты, байты, уникальные IP, коды ответа и посещённые разделы. Результаты относятся к прочитанной части лога, а не ко всему сайту.

  • Форматы: Apache и Nginx в Common или Combined, а также IIS W3C Extended.
  • --max-lines задаёт явный лимит входных строк.
  • Результаты выводятся страницами, а --bot и --ip их фильтруют.

Проверка ботов

Один user agent ничего не доказывает. С флагом --verify-bots SpiderHead проверяет, что IP разрешается в официальное имя хоста и что это имя разрешается обратно в тот же IP. Каждому IP ставится вердикт: verified (подтверждён), fake (поддельный) или unchecked (не проверен). Если на вашей машине заблокирован DNS, результат будет «недоступно», а не «поддельный».

  • --max-dns ограничивает число DNS-запросов на страницу: от 0 до 100.
  • Боты без официального суффикса имени хоста остаются unchecked.
  • Сетевые запросы делает только эта опция, и это DNS-запросы.

Ошибки и ваше сканирование

Для каждого семейства ботов отчёт отмечает, когда больше 10% запросов получают ответы 4xx или 5xx. Чтобы сравнить визиты ботов со сканированием, импортируйте лог в проект командой logs-import. Затем logs-join выводит URL из скана, которые боты не запрашивали, запрошенные ими URL, которых нет в скане, ответы с ошибками и неиндексируемые URL, которые посещают боты.

  • Представления: scan_without_bot_visits, bot_urls_absent_scan, status_waste, nonindexable.
  • URL, которых нет в скане, — это кандидаты для проверки, а не доказанные страницы-сироты.
  • logs-summary и logs-bots выводят срезы по дням, кодам ответа и разделам сайта.

Три шага — один сохранённый скан

  1. Укажите лог доступа

    Передайте один лог доступа Apache, Nginx или IIS W3C, обычный или сжатый gzip. Формат определяется по первым строкам.

  2. Сгруппируйте запросы по ботам

    Хиты, байты, уникальные IP, коды ответа и посещённые разделы по каждому семейству ботов: от Googlebot и Bingbot до ИИ-краулеров и SEO-инструментов.

  3. Проверьте, что бот настоящий

    С флагом --verify-bots каждый IP бота проходит проверку forward-confirmed reverse DNS: verified, fake или unchecked. Один user agent никогда не считается доказательством.

Одна команда

bash
seohead log-analyze --path ./access.log --verify-bots

Сначала установите: руководство по установке. Каждая команда работает и как MCP-инструмент для ИИ-агентов.

Что нужно

  • Лог доступа Apache, Nginx или IIS (допускается gzip) или папка импорта
  • Необязательно: проект и сохранённый скан, чтобы сравнить логи со сканированием
  • Необязательно: рабочий исходящий DNS для --verify-bots

Ограничения

  • Читаются только поддерживаемые форматы логов. Нестандартная раскладка полей не читается.
  • Имена ботов остаются заявлениями в user-agent, пока их не проверили.
  • Отсутствие лога или его неполнота не доказывают, что визитов не было.
  • Строки Apache без часового пояса и метки времени IIS читаются как UTC.

Вопросы

Отправляет ли инструмент что-нибудь или меняет мой сайт?
Нет. Лог читается с вашего диска, сайт не запрашивается. Только --verify-bots делает сетевые запросы, и это DNS-запросы для IP ботов.
Как понять, что хит Googlebot настоящий?
Запустите с --verify-bots. Обратное DNS-имя должно заканчиваться на googlebot.com, google.com или googleusercontent.com и разрешаться обратно в тот же IP. Если DNS заблокирован, инструмент сообщит, что проверка недоступна, а не пометит всех ботов как поддельных.
Какие серверы и форматы поддерживаются?
Apache и Nginx в формате Common или Combined, а также IIS W3C Extended. Столбцы IIS читаются из строки #Fields, поэтому изменённый порядок полей тоже работает. Файлы gzip читаются напрямую.
Как измеряется потеря краулингового бюджета?
log-analyze считает для каждого семейства ботов долю ответов 4xx и 5xx. Если она выше 10%, инструмент отмечает, что семейство тратит краулинговый бюджет впустую. Чтобы сравнить хиты ботов с теми URL, которые должны сканировать боты, импортируйте лог и запустите logs-join относительно сохранённого скана. С sitemap сравнение не проводится.
Что хранится на диске?
log-analyze ничего не записывает в отчёт, только временный индекс, который сам удаляет. logs-import пишет приватный SQLite-файл logs.v1 со счётчиками по ботам, IP, URL, дате и статусу. Исходные строки, user agent и рефереры он не сохраняет, но IP и пути могут указать на людей, поэтому не выкладывайте этот файл в публичные отчёты.
Сколько это стоит?
Ничего. Инструмент бесплатный и не требует ключа или аккаунта.

Проверьте на своём сайте