
Редакция Romanov Lab · Опубликовано
Серверные логи отвечают на конкретный вопрос: какие запросы действительно дошли до наблюдаемого узла и какой ответ он отдал. Это позволяет увидеть повторяющиеся ошибки, обход старых адресов, обращения к фильтрам и реакции после изменения структуры сайта. Логи не показывают, почему поисковая система ранжирует страницу определённым образом, и не доказывают её присутствие в индексе. Полезный анализ начинается с этого ограничения.
Для небольшого сайта без признаков проблем сложный аналитический конвейер может быть избыточным. Логи особенно помогают, когда большой каталог медленно обновляется, после переезда остаются старые адреса, робот получает неожиданные запреты или в поисковых отчётах появляются массовые ошибки. Сначала сформулируйте вопрос, затем запрашивайте нужные данные.
Выясните, где записываются обращения
Современный сайт может обслуживаться через CDN, защитный шлюз, балансировщик и сервер приложения. Запрос, получивший ответ из кэша CDN, не обязан попасть в лог исходного сервера. Заблокированный на границе робот также может отсутствовать в журнале приложения. Поэтому фраза «в логах нет Googlebot» бессодержательна без уточнения точки наблюдения.
Попросите администратора нарисовать короткую цепочку доставки и указать журналы каждого слоя. Затем выясните, включено ли семплирование, сколько хранятся записи, как выполняется ротация и какую часовую зону использует система. Конфигурации и доступные поля описаны, например, в документации NGINX и Apache. Реальный состав зависит от настроек проекта.
Минимальный набор данных для разбора
- Метка времени с однозначной часовой зоной.
- Метод запроса, имя хоста, путь и необходимые параметры.
- HTTP-статус и объём ответа.
- User-Agent и адрес источника либо данные для проверенной классификации.
- Время обработки, если оно записывается.
- Признак кэша и идентификатор запроса, если анализируется несколько слоёв.
Не все поля обязательны для каждой задачи. Чтобы найти массовые 404, обычно не нужны полные заголовки и тела запросов. Для расследования задержек полезно различать время ответа приложения и полное время на внешнем узле. Согласуйте значения полей с администратором: два столбца с названием «duration» могут измерять разные этапы.
В URL и заголовках могут встречаться персональные данные, токены и служебные секреты. Не выгружайте их без необходимости в сторонние аналитические сервисы. Для SEO обычно достаточно обезличенных путей, категорий запросов и агрегатов. Ограничьте доступ, определите срок хранения и удаляйте чувствительные параметры до передачи отчёта.
Проверьте, что робот настоящий
User-Agent можно подделать, поэтому поиск строки Googlebot даёт лишь кандидатов. В официальной инструкции Google описана проверка через опубликованные диапазоны IP или обратное DNS-разрешение с последующей прямой проверкой. Простого совпадения красивого имени хоста недостаточно.
Для регулярного анализа лучше автоматизировать классификацию и хранить дату использованного справочника. Разделяйте обычных поисковых роботов, специальные средства загрузки и запросы пользовательских инструментов. Проверка страницы владельцем сайта не означает, что обычный поисковый обход уже состоялся. Не объединяйте все обращения из инфраструктуры Google в один показатель «SEO-робот».
Если подтверждение невозможно из-за неполных исторических данных, обозначьте группу как неподтверждённую. Это честнее, чем делать вывод о поведении поисковика по произвольной строке. Для следующего периода настройте сбор подходящих полей, не нарушая действующих ограничений хранения.
Проверьте полноту выборки до расчётов
Сначала посчитайте записи по часам и узлам. Резкий ноль может означать ротацию или неполную выгрузку, а не прекращение обхода. Сверьте начало и конец периода, переход суток, формат даты и количество файлов. При объединении журналов проверьте, не учитывается ли один запрос дважды на разных уровнях.
Затем сравните несколько известных событий: время развёртывания, ручной контрольный запрос, зафиксированный сбой. Это помогает обнаружить ошибку часового пояса или смещение часов. Не начинайте сравнивать дни до тех пор, пока не уверены, что одинаково измеряете их объём.
Выбирайте период по задаче. Для короткого инцидента нужны подробности вокруг конкретного времени, для изменения структуры — сопоставимые интервалы до и после. Не объявляйте адрес «забытым роботом» только потому, что его нет в однодневном файле. Частота обхода у страниц различается, а часть обращений могла обслуживаться другим слоем.
Сгруппируйте URL по смыслу
Отчёт на миллион строк редко помогает принять решение. Разделите адреса на карточки, категории, статьи, фильтры, поиск по сайту, служебные файлы и старые пути. При этом сохраните возможность перейти от группы к примерам. В правилах классификации сначала обрабатывайте более конкретные шаблоны, иначе карточки внутри каталога окажутся в общей группе категорий.
Для каждой группы полезно знать число обращений, количество уникальных URL, распределение статусов и долю повторных ошибок. Сравнивайте доли вместе с абсолютными значениями. Если запросов к фильтрам стало меньше, их доля может увеличиться из-за ещё более сильного снижения обхода остальных страниц.
Отдельно исследуйте параметры. Не удаляйте их все при нормализации: именно они могут объяснять бесконечные комбинации. Сначала сохраните исходный адрес в защищённой среде, затем выделите нормализованный путь и список значимых параметров. Служебные метки и секретные значения обрабатывайте по разным правилам.
Учебный пример: после обновления каталога
Представим вымышленный магазин, который изменил адреса карточек. В отчёте за выбранный период обнаружено 12 000 подтверждённых запросов обычного поискового робота. Из них 3 000 пришлись на старые URL, а 900 из этих запросов получили 404. Числа приведены только для объяснения метода и не описывают реальный клиентский проект.
Первый вывод: четверть запросов в этой выборке касается старой структуры. Второй: 30% обращений к старой структуре завершились 404. Это ещё не доказательство потери четверти трафика или «штрафа». Следующий шаг — выделить сами адреса, проверить существование подходящих новых страниц и найти источники старых ссылок.
Если товары существуют, команда проверяет карту перенаправлений и внутренние ссылки. Если товары окончательно удалены без замены, 404 может быть ожидаемым ответом. Если обращения идут на случайные несуществующие пути, сначала выясняют происхождение, а не создают бессмысленные страницы ради сокращения числа ошибок.
Какие выводы можно сделать по статусам
Повторяющиеся 5xx на важных шаблонах требуют технического расследования: нужно сопоставить их со временем релизов, нагрузкой и журналом приложения. Массовые 403 могут указывать на защитный слой или ограничения доступа, но причину проверяют на соответствующем узле. Серия перенаправлений требует просмотра всей цепочки, потому что одна запись показывает только один ответ.
Статус 200 не гарантирует полезного содержимого. Сервер может отдавать шаблон ошибки или пустой контейнер. Для подозрительных URL сохраните пример ответа и проверьте страницу отдельно. Аналогично быстрое время ответа не означает, что пользователь или робот получили нужные данные: пустой документ тоже может загружаться быстро.
В руководстве Google по бюджету обхода обсуждается влияние доступности и качества структуры на обход. Практически это означает: сначала исправляйте подтверждённые препятствия, а не пытайтесь добиться одинаковой частоты посещения всех страниц. Частота сама по себе не является бизнес-целью.
Соедините логи с другими источниками
Сопоставьте журналы со списком важных URL, sitemap, внутренними ссылками и отчётами Search Console. Получатся разные ситуации: страницу не обходили в наблюдаемом периоде; обходили, но получали ошибку; успешно получали, но в индексе она не подтверждена. Для каждой нужна своя следующая проверка.
Не делайте обратный вывод «робот пришёл, значит страница индексируется». Лог подтверждает получение ответа, а не последующие этапы поисковой обработки. Также он не объясняет ценность контента. Если доставка исправна, исследуйте дубли, релевантность и качество страницы вместо бесконечной настройки сервера.
Как оформить результат, чтобы проблему исправили
Для каждой находки запишите группу URL, период, точку наблюдения, число затронутых адресов, несколько примеров, подтверждённое поведение и гипотезу причины. Гипотезу отделяйте от факта. Затем назначьте проверку, ответственного и критерий результата: например, старые внутренние ссылки исчезли, а нужные перенаправления работают без цепочек.
После исправления повторите ту же выборку и те же правила классификации. Отметьте изменения конфигурации журналирования, иначе сравнение станет нечестным. Итогом должен быть небольшой перечень исправленных причин и оставшихся вопросов, а не график общего числа визитов робота. Хороший анализ логов сокращает неопределённость и приводит к проверяемым действиям.
Пример задания администратору
Вместо просьбы «пришлите все логи» укажите цель: проверить ответы на старые адреса после миграции. Попросите согласованный период, точку записи, описание полей и сведения о пропусках. Уточните, можно ли получить только нужный хост и обезличенные записи. Так уменьшаются объём передачи и риск раскрытия лишних данных.
Вместе с выгрузкой сохраните её техническое описание: какая фильтрация выполнена, какие параметры удалены и как подтверждались роботы. Без этой информации другой специалист не сможет воспроизвести расчёт. Если часть запросов отсутствует по условиям хранения, прямо обозначьте границы выводов и не распространяйте результаты на весь сайт.
Официальные источники
- Google: подтверждение запросов роботов
- Google: бюджет обхода
- NGINX: модуль журналирования
- Apache: журналы сервера
Нужен план для вашего проекта? Напишите нам в Telegram или по электронной почте. Обсудим разработку, продвижение или поддержку сайта.


