Штангенциркуль на чертёжной доске

Двукратная ошибка опаснее тридцатикратной

Мы завысили время загрузки сайта в тридцать раз и поймали это случайно. Опасной была бы не эта ошибка, а вдвое меньшая.

2026-08-18 · 5 мин чтения

Мы делаем экспресс-аудиты сайтов, и в каждом отчёте написано: каждая находка — измеренное число, рядом кнопка «как это измерено». Это и есть продукт. Не мнение о сайте, а замер.

Поэтому история ниже — про самое неприятное, что может случиться с таким продуктом. Про то, как замер оказался неверным, и почему нас это не остановило.

Тридцать две секунды

Разбирали сайт доставки еды. Первым делом замерили главную страницу: время до первого байта, вес, число запросов, полную загрузку.

Получили 32,6 секунды и 9,26 мегабайта.

Тридцать две секунды — это не находка, это диагноз. С ней владелец идёт к разработчику, разработчик перепроверяет, ничего не находит, и дальше разговор идёт не про сайт, а про то, можно ли доверять остальным числам в отчёте.

Цифра показалась слишком крупной. Перемерили в чистой вкладке: 1,03 секунды и 134 килобайта.

Откуда взялись тридцать секунд

Между двумя замерами была одна разница. К моменту первого мы уже запросили двадцать восемь страниц этого сайта — программно проверяли разметку по всей карте.

Браузер ведёт шкалу ресурсов страницы, и в неё попадает всё, что загрузила страница. А также всё, что загрузил тот, кто с этой страницей работает. Шкала не различает запросы сайта и запросы того, кто сайт изучает: для неё это одна и та же вкладка. Наши двадцать восемь документов легли в вес и время страницы.

Ошибка была не в инструменте и не в сайте. Она была в порядке действий: мы мерили после того, как поработали со страницей.

Почему это не главная проблема

Тридцатикратное завышение мы поймали. Но поймали не проверкой — поймали тем, что число оказалось абсурдным. Тридцати двух секунд не бывает у живого коммерческого сайта, это видно с первого взгляда, без всякой методики.

А теперь представьте то же самое, но с четырьмя запросами вместо двадцати восьми.

Полторы секунды вместо одной. Две вместо одной. Совершенно правдоподобные числа. Никакого внутреннего сигнала «тут что-то не так» они не дают — наоборот, ложатся в ожидания: сайт на популярной платформе, картинок много, две секунды это нормально, пишем в отчёт.

И такая находка уезжает клиенту. Из отчёта — в задачу разработчику. Разработчик тратит день на поиск проблемы, которой нет, не находит и делает единственный доступный вывод: замеры в этом отчёте примерно верные, то есть неверные.

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

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

Что мы поставили вместо интуиции

Порядок: замер производительности делается до любого программного обхода, в отдельной чистой вкладке. Если обход уже сделан — открывается новая вкладка и мерится заново, без «поправок на глазок».

И проверка, которая смотрит на шкалу ресурсов перед выдачей отчёта и ищет в ней запросы, которых там быть не должно. Если находит — отчёт не записывается. О том, почему такие проверки у нас вообще появились и что они делают, написано отдельно: /blog/otchet-ne-vyydet-poka-ne-soydutsya-chisla/.

А потом эта проверка обвинила невиновного

Первая её версия искала подозрительные запросы по виду адреса и блокировала выдачу, если таких запросов больше двенадцати.

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

Это хуже, чем отсутствие проверки. Проверку, которая срабатывает на правильных данных, отключают через неделю — и с этого момента она не защищает уже ничего, оставаясь в коде как декорация. Мы такие видели у клиентов и сами чуть не завели.

Признак пришлось искать заново, и он нашёлся в тех же самых данных. Запросы сайта происходят при его инициализации: на банковском сайте все тридцать шесть уложились в первые две секунды. Запросы того, кто изучает сайт, делаются потом, когда страница уже загружена. Разница не в том, как выглядит адрес, а в том, когда запрос начался.

Теперь проверка смотрит на время. И прогоняется против двух наборов данных сразу: настоящего чистого замера, который обязан пройти, и настоящего загрязнённого, который обязан заблокировать. Одного набора недостаточно — проверку, которая только блокирует, легко сделать слишком строгой и не заметить этого.

Что забирать с собой

Три вещи, если вы тоже что-нибудь измеряете.

Инструмент измерения находится внутри измеряемого. Шкала ресурсов страницы не знает, где заканчивается сайт и начинается наблюдатель. То же верно для аналитики, в которую попадают визиты собственной команды, и для опросов, где вопрос подсказывает ответ.

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

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

Из журнала методики. Мы ведём его открыто, включая места, где система не справилась: инструмент, который продаётся точностью, обязан показывать и свои промахи.

Начните с разбора, а не с договора