Создать URL
Генератор Правила транслитерации Как сделать ЧПУ Блог Вопросы и ответы Создать URL
Практика

Оповещения о появлении ошибок 404

Настроим наблюдение за 404, которое сообщает о проблеме вовремя и не заваливает ложными тревогами.

Проблема шума

На любом сайте есть ошибки 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Группировка по началу путиПроверить перенаправления и шаблоны
Ошибки от реальных посетителейФильтр по источнику переходаПриоритет выше, чем у роботов

Порядок реакции

  1. Определите, когда началось: сопоставьте с релизами и изменениями правил.
  2. Сгруппируйте адреса по шаблону: массовая ошибка почти всегда из-за правила или шаблона.
  3. Если у адресов есть замена — настройте перенаправление: как настроить 301.
  4. Если это мусорные запросы роботов — оставьте как есть, но убедитесь, что страница ошибки полезна: оформление страницы 404.

Связь с общим мониторингом. Оповещения о 404 — часть общей системы контроля: оповещения о падении трафика, дашборд состояния. Общие подходы к работе с журналами — в статье инструменты для логов.

Частые вопросы

Нужно ли оповещать о каждой ошибке 404?

Нет: единичные ошибки нормальны; сигнал нужен при резком росте общего числа или при массовых обращениях к одному адресу.

Откуда брать данные для оповещений?

Из журнала сервера, из событий в аналитике на странице 404 и из панелей вебмастеров; журнал даёт полную картину, аналитика — только реальных посетителей.

Как отличить поломку от шума?

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

Готовый адрес можно собрать прямо сейчас: откройте генератор ЧПУ — он транслитерирует фразу по таблице Яндекса, уберёт служебные слова и покажет длину адреса.

Читайте также