Время до первого байта (TTFB)

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

Что входит в время ожидания

Time to First Byte (TTFB) показывает, сколько клиент ждёт начала HTTP-ответа. При навигации браузера измеряемый интервал может включать редиректы, DNS-запрос, установку соединения и TLS, задержку сети, работу кэша и обработку на сервере.

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

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

Найдите источник задержки

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

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

Измените слой, который отвечает за задержку

Цепочка редиректов требует более короткого маршрута. Повторная работа бэкенда может потребовать кэширования или изменений в приложении. Задержку соединения нужно разбирать отдельно. Проверьте предполагаемую причину и после этого сравните тот же запрос в тех же условиях.

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

FAQ

TTFB измеряет только обработку на сервере?
Нет. Время, которое видит браузер, может включать редиректы, установку соединения, задержку сети, работу кэша и работу сервера.
Зачем проверять и холодные, и прогретые запросы?
Кэширование может сильно изменить путь ответа. Фиксируйте состояние кэша, чтобы замеры можно было сравнивать.