TTFB (Time to First Byte): что это и как улучшить
TTFB — время от запроса браузера до получения первого байта ответа сервера. Определяет скорость ответа сервера и базу для всех остальных метрик загрузки.
Что такое TTFB
TTFB (Time to First Byte) — время от отправки браузером HTTP-запроса до получения первого байта ответа от сервера. Измеряется в миллисекундах и является базовой метрикой скорости ответа сервера.
TTFB включает:
- DNS lookup — время на разрешение доменного имени в IP
- TCP connection — установка TCP-соединения с сервером
- TLS handshake — для HTTPS: согласование SSL/TLS
- Server processing — время обработки запроса сервером
- Время передачи — первый байт данных добирается до браузера
Google включил TTFB в оценку Page Experience как sub-metric LCP. Медленный TTFB напрямую ухудшает LCP.
Пороговые значения TTFB
| Значение | Оценка | |----------|--------| | до 800 мс | Хорошо | | 800 — 1800 мс | Требует улучшения | | более 1800 мс | Плохо |
Примечание: Google официально не называет TTFB метрикой Core Web Vitals, но он является важным диагностическим показателем для LCP.
Как улучшить TTFB
1. Кеширование на стороне сервера
Самый эффективный метод — не генерировать страницу каждый раз:
# Nginx + FastCGI кеш
fastcgi_cache_path /tmp/nginx-cache levels=1:2 keys_zone=mycache:10m inactive=60m;
fastcgi_cache_key "$scheme$request_method$host$request_uri";
location ~ \.php$ {
fastcgi_cache mycache;
fastcgi_cache_valid 200 1h;
}
Для Next.js — ISR (Incremental Static Regeneration) или full SSG:
// getStaticProps с revalidate = кеш на сервере
export async function getStaticProps() {
return {
props: { data },
revalidate: 3600 // Обновлять раз в час
};
}
2. CDN для статических страниц
Cloudflare, Vercel Edge Network, AWS CloudFront — кешируют HTML-ответы на edge серверах рядом с пользователем.
3. Оптимизация базы данных
Часто TTFB плохой из-за медленных запросов к БД:
-- Анализ медленных запросов
EXPLAIN ANALYZE SELECT * FROM products WHERE category = 'phones';
-- Добавить индекс для ускорения
CREATE INDEX idx_products_category ON products(category);
4. Уменьшение DNS lookup времени
<!-- DNS prefetch для критических доменов -->
<link rel="dns-prefetch" href="//api.example.com" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
5. Оптимизация TLS
# TLS 1.3 быстрее TLS 1.2 (1-RTT vs 2-RTT)
ssl_protocols TLSv1.2 TLSv1.3;
# Session resumption
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1d;
# OCSP Stapling
ssl_stapling on;
ssl_stapling_verify on;
6. Upgrade сервера
- Переход с shared хостинга на VPS даёт 3-5x улучшение TTFB
- Физическая близость сервера к аудитории снижает время передачи
Измерение TTFB
# curl показывает все фазы подключения
curl -o /dev/null -s -w "
TTFB: %{time_starttransfer}s
Total: %{time_total}s
" https://example.com
В Chrome DevTools → Network → выберите запрос → Timing → "Waiting for server response" = TTFB.
Проверка TTFB на reChecker
Используйте Web Vitals для проверки времени ответа сервера. Инструмент покажет:
- TTFB вашего сайта
- Все метрики Core Web Vitals
- Общую оценку производительности
FAQ
TTFB важнее LCP для SEO? LCP важнее напрямую для ранжирования (официальная метрика CWV). TTFB важен как предпосылка LCP: если TTFB плохой, улучшить LCP до нормы почти невозможно без его исправления.
Хороший TTFB и медленная страница — как такое бывает? TTFB измеряет только первый байт. После него браузер ещё загружает CSS, JavaScript, изображения. Сайт с TTFB 300 мс но 5 МБ JavaScript будет грузиться медленно.
CDN всегда улучшает TTFB? CDN отлично помогает для статических ресурсов и кешируемых HTML-страниц. Для динамических страниц (персонализация, данные из БД) CDN не кеширует ответ — придётся обращаться к origin серверу.
Попробуйте инструмент
Проверьте ttfb (time to first byte) на вашем сайте с помощью бесплатного инструмента.
Web Vitals →