Скорость
Высокий TTFB: почему сервер долго начинает ответ
Тест показывает высокий TTFB: сайт долго начинает отвечать. Объясняем, что измеряет этот показатель и почему он не указывает на одну конкретную неисправность.
Что происходит и с чего начать
TTFB — время до получения первого байта ответа. Посетитель в этот момент может видеть пустой экран, хотя сервер уже занят обработкой. На значение влияют сеть, установление соединения, перенаправления и подготовка ответа. Поэтому высокий показатель не равен автоматически «медленный PHP» или «плохой хостинг». Сначала сравните несколько запросов и условий. Особенно полезно отделить задержку конкретной динамической страницы от общей медленной связи с сайтом и большого числа переходов между адресами.
Что можно проверить самостоятельно
- Измерьте один адрес несколько раз и сохраните условия: устройство, сеть, город проверки и состояние входа в аккаунт. Один случайный замер не показывает устойчивую картину.
- Сравните главную, проблемную страницу и простой файл сайта. Отметьте, меняется ли результат после повторного открытия или применения фильтра, который запускает дополнительную обработку.
- Проверьте, не меняется ли адрес несколько раз перед загрузкой. Передайте специалисту исходную ссылку и окончательный адрес, особенно после переноса, включения HTTPS или смены домена.
Как понять результаты проверки
Если задержка только у динамического сценария, изучают запросы к базе, внешние обращения и очереди обработки. Если она общая, сравнивают сетевую часть, прокси и доступность сервера. Среднее значение может скрывать редкие очень долгие ответы, поэтому полезны несколько наблюдений. Сам TTFB — ориентир для поиска, а не диагноз. В отчёте должно быть понятно, какая часть времени изменилась после исправления и при каких условиях это измерено, иначе цифры трудно связать с опытом посетителя.
Что проверяет разработчик
Для этой части понадобятся доступ к настройкам, журналам ошибок или коду. Её можно передать специалисту вместе с результатами предыдущих шагов.
- Измерьте задержку с разных сетей и посмотрите время запроса в журнале веб-сервера. Уточните, учитывает ли выбранная метрика установление соединения.
- Сравните статический файл и динамическую страницу. Если медленно только приложение, исследуйте PHP, базу и внешние обращения.
- Проверьте очередь к PHP-FPM и занятость процессов. Запрос может ждать свободного исполнителя ещё до начала полезной работы.
На что обратить внимание
Один медленный внешний сервис способен удерживать процессы приложения и повышать ожидание остальных посетителей. По самому значению TTFB нельзя определить, виновата сеть, база или очередь исполнения.
Как исправляют причину
Добавьте измерения длительности основных этапов запроса и исправьте самый затратный. Кешируйте только данные с понятными правилами актуальности, а для внешних вызовов задайте ограниченное время ожидания.
Как убедиться, что проблема решена
Сравните медиану и медленные запросы при одинаковой нагрузке. Проверяйте не только быстрый повтор из кеша, но и первый запрос после обновления данных.
Повторите замеры на тех же адресах и проверьте полное открытие страницы. Снижение TTFB не гарантирует, что изображения и интерфейс тоже стали быстрыми. Если включали кеш, проверьте первый запрос после его обновления и актуальность данных. Хорошая приёмка связывает измерение с действием пользователя: меньше ожидание начала ответа и сохранена правильная работа конкретного раздела сайта.