Заявка
Mobile · CWV

TTFB

Time to First Byte · Время до первого байта

TTFB (Time to First Byte) — это время от запроса браузера до получения первого байта ответа сервера. Показывает, насколько быстро сервер обрабатывает запрос и начинает отдавать страницу.

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

Время отклика сервера напрямую задаёт нижнюю границу для остальных метрик скорости. Google относит серверную задержку к диагностическим сигналам Core Web Vitals: если бэкенд отвечает медленно, пострадает и LCP. Ориентир из документации Google — держать значение до 800 мс на 75-м перцентиле реальных пользователей. Замерить можно в PageSpeed Insights, вкладке Network в DevTools или через поле server response time в CrUX.

§ 01Что показывает

Задержка первого байта отражает скорость работы серверной части: как быстро веб-сервер, база данных и приложение готовят ответ. В структуру метрики входят DNS lookup, TCP handshake, TLS-соединение и Time to First Byte самого документа. Высокое значение указывает не на тяжёлую вёрстку, а на проблемы бэкенда: медленные SQL-запросы, отсутствие кеша, перегруженный хостинг или далёкий от пользователя дата-центр. Отличается от FCP и LCP тем, что измеряет момент до начала рендеринга, а не отрисовку контента.

§ 02Какие значения считаются нормой

По ориентирам Google скорость отклика сервера делится на три зоны: до 800 мс — хорошо, от 800 до 1800 мс — требует внимания, выше 1800 мс — плохо. Оценка берётся по 75-му перцентилю полевых данных, то есть по реальным визитам, а не по одному лабораторному замеру. Для статических страниц на CDN нормой считаются значения в пределах 100-200 мс. Динамические страницы с обращением к базе данных естественно медленнее, поэтому кеширование ответа сдвигает показатель в зелёную зону.

К界е-commerce

TTFB 820→190 мс — Интернет-магазин косметики на Shopify Plus вынес рендер в edge-кэш Cloudflare и включил early hints. TTFB упал с 820 до 190 мс за 4 недели, LCP -1.1 c. Замер через PSI и CrUX-75th, отказы снизились на 9%.

Кейс SaaS

TTFB 640→240 мс — B2B SaaS-платформа для HR с MRR около $180k переписала тяжёлые SQL-запросы дашборда и добавила Redis-кэш ответов API. TTFB сервера упал с 640 до 240 мс за 7 недель. Динамика по WebPageTest и логам Grafana APM.

§ 03Как измерить

Полевые данные по метрике доступны в отчёте CrUX и в PageSpeed Insights — там значение считается по реальным пользователям Chrome. Для лабораторного замера откройте DevTools, вкладку Network, кликните по основному документу и найдите строку Waiting for server response в разделе Timing. Быстрая проверка через терминал: curl -w %{time_starttransfer} -o /dev/null -s URL выведет время до первого байта в секундах. Разовый замер искажают холодный кеш, география тестового сервера и текущая нагрузка — поэтому опираться стоит на полевую статистику.

§ 04Что делать с плохим значением

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

  • подключить CDN, чтобы контент отдавался с ближайшего к пользователю узла;
  • оптимизировать медленные запросы к базе данных и добавить индексы;
  • перейти с HTTP/1.1 на HTTP/2 или HTTP/3 для ускорения соединения;
  • вынести тяжёлую логику в фоновые задачи вместо обработки в момент запроса.

После правок замер повторяют через несколько недель — полевые данные CrUX обновляются с задержкой.

Частые ошибки
01
Отношение к TTFB как к части LCP. Команда считает, будто ускорение TTFB автоматически чинит LCP, и правит только сервер. Но LCP держит ещё рендер и загрузка ресурсов — трафик из Core Web Vitals не растёт, бюджет на серверы потрачен впустую. Как правильно: Разделяйте метрики. Считайте TTFB отдельным сигналом бэкенда, а LCP разбирайте по фазам в отчёте PageSpeed Insights.
02
Оптимизация TTFB только на первом хите. Тюнят кеш и отдают быстрый ответ на закешированной странице, а холодный запрос и динамика для авторизованных остаются медленными. Реальные пользователи получают лаг, глубина просмотра и конверсия падают. Как правильно: Проверяйте TTFB на холодном кеше и на динамических URL. Сравнивайте p75 по сегментам, а не лучший случай.
03
Замер TTFB в браузере вместо поля. TTFB меряют в Chrome DevTools на офисном гигабите и видят 80 мс, тогда как в CrUX по мобильным сессиям 4G реальный p75 уходит за 800 мс. Google смотрит именно на полевые данные — позиции проседают незаметно. Как правильно: Замеряйте TTFB по CrUX и Search Console, а не по DevTools. Ориентир Google — до 800 мс на p75.
Часто спрашивают

TTFB — частые вопросы про время до первого байта

Что такое TTFB простыми словами?

+

Time to First Byte — это время от отправки запроса браузером до получения первого байта ответа сервера. Показатель включает три этапа: DNS-резолвинг, установку соединения и обработку запроса на бэкенде. Измеряется в миллисекундах и отражает скорость реакции сервера, а не полную загрузку страницы.

До 200 мс — отличный результат, 200–500 мс — приемлемый, свыше 800 мс требует оптимизации. Google в Lighthouse помечает серверное время отклика выше 600 мс как проблему. Для мобильных соединений допустимы чуть большие значения из-за сетевой задержки.

Три фактора решают почти всё: кэширование, CDN и оптимизация базы данных. Подключение CDN вроде Cloudflare сокращает путь до пользователя, а серверный кэш (Redis, Varnish) снижает нагрузку на бэкенд. По опыту GUSAROV, апгрейд хостинга и включение HTTP/2 часто ускоряют отклик на 40–60 процентов.

TTFB измеряет только серверную часть — момент получения первого байта, тогда как LCP фиксирует отрисовку крупнейшего элемента и завершается на клиенте. Первый байт ответа входит в LCP как начальный этап: медленный сервер автоматически ухудшает и Largest Contentful Paint.

Да, косвенно. Само серверное время отклика не входит в Core Web Vitals напрямую, но замедляет LCP, который стал фактором ранжирования Google с 2021 года. Медленный бэкенд ухудшает поведенческие метрики и краулинг: робот успевает обойти меньше страниц за отведённый бюджет.

Не нашли ответ?

Спросите Андрея Гусарова — отвечаю в течение 1-2 рабочих дней.

Нажимая, вы соглашаетесь с обработкой данных.