TTFB (time to first byte) — время от отправки запроса до получения первого байта ответа. Это ещё не отрисовка страницы: браузер только начал получать HTML.
В TTFB входит всё, что происходит до генерации ответа: поиск домена в DNS, установка соединения, TLS-рукопожатие, работа приложения на сервере, запросы к базе данных.
Ориентиры
| TTFB | Оценка |
|---|---|
| до 200 мс | отлично |
| 200–600 мс | нормально |
| 600–1500 мс | плохо, пора чинить |
| больше 1500 мс | посетители уходят, не дождавшись |
Почему это важнее, чем кажется
TTFB — фундамент всех остальных метрик скорости. Пока не пришёл HTML, браузер не знает, какие ему нужны стили, скрипты и картинки: он не может начать ни отрисовку, ни загрузку ресурсов. Полсекунды, потерянные на сервере, добавляются ко всем последующим этапам.
Это влияет и на обход сайта: робот выделяет на сайт ограниченное время, и на медленном сервере успевает загрузить меньше страниц.
Из чего складывается и что чинить
Медленное приложение — самая частая причина. Тяжёлые запросы к базе, отсутствие индексов, десятки обращений к базе в цикле, работа с внешними API прямо во время отрисовки страницы.
Что делать: включите кэширование страниц или их фрагментов. Для CMS это готовые модули (в WordPress — WP Super Cache, LiteSpeed Cache), для своего кода — кэш готового HTML или результатов запросов. Кэширование обычно даёт самый большой выигрыш при наименьших усилиях.
Слабый хостинг. Дешёвый шаред-хостинг делит процессор между сотнями сайтов. Если сервер отвечает по секунде на статике — дело не в коде.
Что делать: переезжайте на VPS или к хостеру с нормальными ресурсами. Проверить просто: положите на сервер файл test.txt со словом «ok» и замерьте TTFB для него. Медленно — виноват хостинг, быстро — приложение.
География. Сервер в Германии, посетители в Новосибирске: только на дорогу туда-обратно уходит 150–200 мс.
Что делать: держите сервер там, где ваша аудитория; статику раздавайте через CDN.
Медленный DNS. Редко, но встречается у дешёвых регистраторов.
Отсутствие постоянного соединения и старый протокол. HTTP/2 заметно сокращает накладные расходы.
Как измерить
- Пункт аудита «Время ответа сервера (TTFB)» — замер при загрузке главной.
- В браузере:
F12→ Network → первый запрос → Timing → строка Waiting for server response. - Из консоли:
curl -w "TTFB: %{time_starttransfer}s\n" -o /dev/null -s https://example.ru/
- PageSpeed Insights показывает TTFB в разделе диагностики вместе с реальными данными пользователей.
Замеряйте несколько раз: первый запрос после долгого простоя всегда медленнее — сервер «просыпается», прогреваются кэши.