Проблема шума
На любом сайте есть ошибки 404: роботы запрашивают несуществующие адреса, посетители опечатываются, старые ссылки устаревают. Оповещать о каждой было бы бессмысленно. Полезен сигнал о изменении: число ошибок резко выросло или появился один адрес с большим числом обращений.
Откуда брать данные
| Источник | Плюсы | Минусы |
|---|---|---|
| Журнал сервера | Полная картина, включая роботов | Нужен доступ и разбор формата |
| События из шаблона 404 в аналитике | Только реальные посетители и источник перехода | Не видит роботов |
| Панели вебмастеров | Ошибки, найденные поисковой системой | Данные обновляются с задержкой |
Настройка отчёта в аналитике описана в статье про отчёт по 404 в аналитике, а журналы — в статье про логирование обращений к несуществующим адресам.
Скрипт подсчёта по журналу
import re
from collections import Counter
line_re = re.compile(r'"(?:GET|HEAD) ([^ ]+) HTTP[^"]*" 404')
counter = Counter()
with open("access.log", encoding="utf-8", errors="ignore") as f:
for line in f:
m = line_re.search(line)
if m:
counter[m.group(1)] += 1
total = sum(counter.values())
print("total 404:", total)
for url, count in counter.most_common(10):
print(count, url)
THRESHOLD = 500
if total > THRESHOLD:
print("ALERT: too many 404")
Скрипт читает журнал, считает ошибки 404 по адресам и печатает самые частые. Если общее число превышает порог, выводится тревога, которую можно отправить в рабочий чат или на почту. Формат журнала у серверов различается, поэтому шаблон строки нужно подогнать под ваш.
Пороги и правила
| Сигнал | Как определить | Реакция |
|---|---|---|
| Общий рост числа 404 | Сравнение с обычным уровнем за то же время суток | Проверить последний релиз |
| Один адрес с большим числом обращений | Порог обращений за час | Найти источник ссылки |
| Новый раздел с массовыми 404 | Группировка по началу пути | Проверить перенаправления и шаблоны |
| Ошибки от реальных посетителей | Фильтр по источнику перехода | Приоритет выше, чем у роботов |
Порядок реакции
- Определите, когда началось: сопоставьте с релизами и изменениями правил.
- Сгруппируйте адреса по шаблону: массовая ошибка почти всегда из-за правила или шаблона.
- Если у адресов есть замена — настройте перенаправление: как настроить 301.
- Если это мусорные запросы роботов — оставьте как есть, но убедитесь, что страница ошибки полезна: оформление страницы 404.
Связь с общим мониторингом. Оповещения о 404 — часть общей системы контроля: оповещения о падении трафика, дашборд состояния. Общие подходы к работе с журналами — в статье инструменты для логов.
Частые вопросы
Нужно ли оповещать о каждой ошибке 404?
Нет: единичные ошибки нормальны; сигнал нужен при резком росте общего числа или при массовых обращениях к одному адресу.
Откуда брать данные для оповещений?
Из журнала сервера, из событий в аналитике на странице 404 и из панелей вебмастеров; журнал даёт полную картину, аналитика — только реальных посетителей.
Как отличить поломку от шума?
По росту относительно обычного уровня, по группировке адресов по шаблону и по тому, приходят ли обращения от реальных посетителей.
Готовый адрес можно собрать прямо сейчас: откройте генератор ЧПУ — он транслитерирует фразу по таблице Яндекса, уберёт служебные слова и покажет длину адреса.