Что такое доля ошибок
Доля ошибок (в англоязычных источниках Error Rate) — процент запросов или просмотров, которые закончились ошибкой, от общего числа. Показатель бывает разным по смыслу, поэтому первым делом уточните, что именно вы считаете. Ошибки сервера сообщают о неисправности инфраструктуры. Ошибки «не найдено» говорят о битых ссылках и запросах к несуществующим страницам. Ошибки скриптов в браузере показывают, что часть функций у посетителей не работает. Смешивать их в один процент нельзя: причины и способы решения у них различаются.
Какие ошибки считать отдельно
| Тип | Где видно | Что означает | Реакция |
|---|---|---|---|
| 5xx (сбои сервера) | Логи сервера, мониторинг | Сайт или его часть недоступны для людей и роботов | Срочная диагностика: ошибки 5xx |
| 404 (не найдено) | Логи, панели вебмастеров, аналитика | Битые ссылки, удалённые страницы, опечатки | Ссылки поправить или поставить перенаправление: отчёт по 404 |
| 403 (доступ запрещён) | Логи, панели вебмастеров | Роботу или людям закрыт доступ | Проверить правила и защиту: ошибка 403 |
| Ошибки JavaScript | Отчёты браузерной аналитики, собственные события | Не работают формы, меню, оплата | Исправить скрипт, проверить в браузерах |
| Ошибки форм и оплаты | События и цели | Заявки и заказы теряются | Разобрать причины в цепочке шагов |
Как считать
error_rate = запросы с ошибкой / все запросы * 100
# отдельно для сбоев сервера
server_error_rate = запросы с кодом 5xx / все запросы * 100
Для сервера считайте долю от всех запросов, для браузерных ошибок — долю просмотров, в которых произошла ошибка. Подсчёт по человеческим и роботным запросам стоит вести отдельно, иначе всплеск сканирования робота исказит картину.
Пример подсчёта по журналу веб-сервера в стандартном формате, где код ответа стоит после запроса в кавычках:
total = errors = 0
with open("access.log", encoding="utf-8") as f:
for line in f:
parts = line.split('"')
if len(parts) < 3:
continue
status = parts[2].split()[0]
total += 1
if status.startswith("5"):
errors += 1
print(round(errors / total * 100, 2), "%")
Формат журнала у разных серверов может отличаться, поэтому проверьте скрипт на нескольких строках. Подробнее о работе с логами: логи сервера как источник данных.
Ошибки скриптов в браузере
Сервер может отвечать нормально, а у людей не работает форма из-за ошибки скрипта. Простейший контроль — отправлять событие при каждой ошибке и смотреть их число в отчётах:
window.addEventListener('error', function (e) {
ym(12345678, 'reachGoal', 'js_error', { page: location.pathname, message: e.message });
});
Событий может быть много от одной и той же ошибки, поэтому группируйте их по странице и сообщению. Не передавайте в событие персональные данные посетителей.
Как организовать контроль
- Разделите ошибки по типам и по страницам.
- Соберите данные за несколько недель, чтобы понять нормальный уровень: у разных сайтов он разный.
- Настройте оповещения на отклонение от нормы, а не на фиксированное число: оповещения и мониторинг доступности.
- Разбирайте всплески: что изменилось — выпуск сайта, нагрузка, внешний сервис.
Типичные ошибки
- Общий процент без разделения на типы: 404 от чужих ссылок скрывает реальные сбои сервера.
- Оповещения на любую единичную ошибку: команда перестаёт на них реагировать.
- Не учитываются роботы: массовое сканирование по несуществующим адресам портит статистику.
- Считается только среднее за месяц: короткий сбой в пару часов теряется в среднем.
Вывод. Считайте ошибки по типам, отслеживайте отклонения от нормы, а не единичные события, и сопоставляйте всплески с изменениями на сайте. Общий список технических проверок: чек-лист технической доступности.
Пример отчёта по ошибкам за неделю
| Показатель | Значение | Оценка |
|---|---|---|
| Запросы за неделю | 240 000 | — |
| Ответы 5xx | 120 (0,05%) | Всплеск в среду вечером после выпуска сайта |
| Ответы 404 | 2 400 (1%) | В основном запросы роботов и устаревшие ссылки |
| События js_error | 85 | Половина от одной страницы оформления заказа |
Такой отчёт превращает цифры в задачи: разобрать среду, поставить перенаправления для устаревших ссылок, исправить скрипт на странице заказа.
Частые вопросы
Что такое Error Rate сайта?
Процент запросов или просмотров, закончившихся ошибкой, от общего числа; его считают отдельно для сбоев сервера, ошибок «не найдено» и ошибок скриптов.
Какой процент ошибок считается нормальным?
Единого значения нет: определите обычный уровень для своего сайта за несколько недель и следите за отклонениями, а не за абсолютным числом.
Как отслеживать ошибки скриптов?
Отправлять событие при каждой ошибке в браузере в систему аналитики и группировать по странице и сообщению.
Готовый адрес можно собрать прямо сейчас: откройте генератор ЧПУ — он транслитерирует фразу по таблице Яндекса, уберёт служебные слова и покажет длину адреса.