TTFB
TTFB (Time to First Byte, время до первого байта) — промежуток между тем, как браузер попросил страницу, и тем, как от сервера пришёл самый первый байт ответа. Это не скорость загрузки сайта целиком, а длина паузы перед началом ответа: сколько сервер думал, прежде чем заговорить.
Как считают паузу перед ответом
Отсчёт начинается в тот момент, когда браузер отправил запрос, и заканчивается на первом байте ответа. Внутри этого отрезка помещается вся невидимая подготовка: найти адрес сервера, установить соединение, договориться о защищённом канале, дождаться, пока сервер соберёт страницу, и получить первую порцию разметки.
На практике первые пункты занимают немного и слабо зависят от сайта. Основную часть обычно съедает последний: работа самого сайта. Поэтому длинная пауза почти всегда означает не «плохой интернет», а «страница дорого собирается» или «площадке тяжело».
Смотреть удобнее всего в панели разработчика браузера, на вкладке сетевых запросов: там у самого первого запроса видно, сколько времени ушло на ожидание ответа. Публичные сервисы проверки скорости тоже показывают эту цифру, но усредняют её и меряют со своего оборудования.
Из чего складывается ожидание
- Поиск адреса сервера и соединение — обычно десятки миллисекунд.
- Установка защищённого соединения — заметна на первом запросе, дальше почти нет.
- Работа сайта: база, шаблоны, подстановка цен — чаще всего главный вклад.
- Дорога от сервера до посетителя — тем больше, чем дальше площадка от аудитории.
Быстрый сервер и пустой экран — не одно и то же
Владельцу сайта важно не то, когда пришёл первый байт, а когда человек увидел товар и смог нажать кнопку. Эти два события разделяет ещё целая цепочка работы браузера. Бывает и наоборот: сервер отвечает мгновенно, а экран остаётся белым секунды, потому что в самом верху страницы стоят тяжёлые скрипты и посторонние виджеты.
Поэтому в отчёте цифры разводят по зонам ответственности: одни лечит разработчик на сервере, другие — верстальщик и маркетолог, который решает, сколько внешних счётчиков будет жить на сайте.
| Что видим | О чём это говорит | Куда идти чинить |
|---|---|---|
| Длинная пауза до ответа | Сервер долго собирает страницу | Готовые копии страниц, запросы к базе, мощность площадки |
| Пауза короткая, экран белый | Сервер ни при чём | Стили и скрипты в начале страницы, шрифты, внешние виджеты |
| Пауза скачет от замера к замеру | Условия замеров разные | Подписать нагрузку, регион и была ли готовая копия |
| Плохо только на мобильных | Слабое устройство и сеть | Вес страницы, картинки, объём скриптов |
Из-за чего замер врёт
Самая частая ошибка выглядит безобидно. Специалист открывает страницу, видит полсекунды, обновляет — уже двести миллисекунд, и делает вывод, что всё хорошо. На самом деле он сам только что прогрел страницу своим первым заходом, а клиент утром попадёт ровно в те условия, что были в начале.
Вторая ошибка — мерить не оттуда, где живут покупатели: тест с зарубежного сервера добавляет время на дорогу и делает картину хуже реальной, а проверка из соседнего с офисом дома, наоборот, приукрашивает. Третья — один-единственный прогон вместо серии замеров утром и в вечерний час пик.
Правило отчётаРядом с каждой цифрой пишут условия: время суток, регион и была ли у страницы готовая копия. Без этого «0,1 с» и «7 с» на одном адресе выглядят как спор, хотя это два разных сценария — самый тяжёлый из них разобран в термине Cold.
Что сокращают в первую очередь
- Убрать повторную сборку одинаковых страниц — отдавать сохранённую копию, это HTML-кэш.
- Посмотреть, что сайт делает на каждый запрос: лишние обращения к базе, тяжёлые фильтры, подсчёт того, чего никто не видит.
- Проверить дополнения и плагины: один неудачный модуль умеет добавлять секунду к каждому ответу.
- Сократить количество товаров и блоков, которые страница собирает за раз.
- И только после этого обсуждать мощность и расположение площадки — хостинг.
Порядок здесь не случайный: рычаги расставлены по возрастанию стоимости. Самое дешёвое действие обычно и даёт самый заметный эффект, а переезд на дорогую площадку без разбора причин чаще всего просто переносит проблему на новый адрес.
TTFB: как применяют
Эту паузу всегда меряют отдельно от того, что потом происходит в браузере. Длинная пауза означает, что тяжело было серверу: не хватает мощности площадки, страница собирается сложно, база отвечает медленно, готовой копии нет. Если пауза уже короткая, а экран всё равно остаётся пустым, дальше копают не сервер, а стили, шрифты и сторонние скрипты. Смешивать две зоны ответственности — верный способ месяц чинить не то.
Частые вопросы
Что такое TTFB?
Время до первого байта: сколько прошло от запроса страницы до момента, когда сервер начал отдавать ответ. Начало загрузки, а не вся загрузка.
TTFB простыми словами?
Сколько собеседник молчит в трубку, прежде чем начать говорить. Пока он молчит, вы не знаете, услышали вас или нет, — и на экране в это время ничего не происходит.
Какой TTFB считается нормальным
Для обычной страницы сайта ориентируются на сотни миллисекунд, а ответ из готовой копии обычно укладывается в доли секунды. Секунда и больше на простой странице — повод разбираться с сервером.
Чем TTFB отличается от скорости загрузки страницы?
Это только первый отрезок. После первого байта браузер ещё качает разметку, стили, шрифты и картинки, считает раскладку и рисует экран. Короткая пауза в начале не гарантирует, что человек быстро увидит страницу.
Как уменьшить TTFB?
Убрать лишнюю работу сервера на каждый запрос, отдавать популярные страницы из готовых копий, держать площадку ближе к аудитории, проверить запросы к базе и отключить плагины, которые встают на пути каждого ответа.
Почему TTFB разный при каждом замере?
Замеры попадают в разные условия: первый заход после сброса копии тяжелее прогретого, вечерняя нагрузка выше утренней, тест из другой страны добавляет время на дорогу. Поэтому смотрят серию замеров и подписывают условия.