Ответ сервера
Сколько времени проходит до начала получения HTML и нет ли периодических 5xx или таймаутов.
Практическое SEO · производительность
Медленная страница — не одна плохая цифра из теста. Задержка может появляться на сервере, в базе данных, сети, изображениях, CSS, JavaScript или внешних виджетах. Поэтому сначала разделяем путь загрузки на этапы, находим узкое место и только потом оптимизируем.
Основа
Если страница долго отвечает или интерфейс появляется только после тяжёлой загрузки, пользователь может уйти раньше, чем увидит предложение. Для поискового робота нестабильность тоже важна: таймауты и серверные ошибки мешают получить документ.
Яндекс называет скорость загрузки одним из важных показателей качества сайта и рекомендует уменьшать число запросов, устранять блокирующие ресурсы, сжимать файлы и изображения, использовать кэширование, CDN и оптимизировать серверный код.
Рекомендации Яндекса по ускорению сайта.
Шаг 1
Чтобы не оптимизировать вслепую, смотрим путь запроса: DNS и соединение, ответ backend, получение HTML, загрузка CSS и JavaScript, изображения и шрифты, выполнение кода, появление первого полезного содержимого и готовность интерфейса к взаимодействию.
Сколько времени проходит до начала получения HTML и нет ли периодических 5xx или таймаутов.
Сколько данных пользователь скачивает и какие файлы занимают основную часть веса.
Не блокируют ли CSS, шрифты или синхронные скрипты появление видимого контента.
Не занят ли основной поток тяжёлым JavaScript после того, как страница уже выглядит загруженной.
Шаг 2
Высокий TTFB может быть связан с медленной базой данных, тяжёлым PHP-кодом, внешними API, отсутствием серверного кэша, перегруженным процессором, диском или сетью. В таком случае сжатие изображений почти не влияет на задержку до первого ответа.
Проверяем одинаковый URL несколько раз и в разные моменты. Разовая быстрая загрузка не исключает периодических провалов под нагрузкой. Серверные логи и мониторинг полезнее среднего значения из одного теста.
Шаг 3
Картинка может занимать 300 пикселей в карточке, но браузер всё равно скачивает исходник шириной 4000 пикселей. Поэтому смотрим размер файла, реальные dimensions, формат и то, загружается ли изображение до попадания в видимую область.
Не отдаём огромный оригинал в маленький контейнер.
Используем современный формат там, где он даёт меньший вес без заметной потери качества.
Изображения далеко ниже первого экрана не должны конкурировать за сеть с критическим содержимым.
Width и height помогают браузеру заранее зарезервировать место и уменьшают скачки макета.
Шаг 4
Большие библиотеки и стили могут загружаться на всех страницах, хотя конкретному шаблону нужна только небольшая часть. Это увеличивает объём передачи, количество запросов и время обработки в браузере.
Проверяем блокирующие ресурсы, дубли библиотек, код от удалённых функций, тяжёлые компоненты первого экрана и скрипты, которые можно загрузить позже. Для JavaScript особенно важно смотреть не только размер файла, но и время выполнения.
Шаг 5
Чаты, карты, коллтрекинг, аналитика, рекламные пиксели, формы и внешние шрифты подключаются с других серверов. Владелец сайта не контролирует их скорость полностью, но каждый такой ресурс участвует в загрузке страницы.
Составляем список внешних доменов и проверяем, что действительно нужно загружать сразу. Часть виджетов можно инициализировать после основного контента или только после действия пользователя.
Не обязан блокировать первый экран, если пользователь ещё не собирается его открывать.
Тяжёлый интерактив можно заменить предварительным изображением до взаимодействия.
Встраиваемый плеер лучше не загружать полностью до того, как он реально понадобится.
Проверяем дубли и старые интеграции, которые уже не используются бизнесом.
Шаг 6
Статические ресурсы не должны скачиваться заново при каждом переходе, если их содержимое не изменилось. Проверяем HTTP-кэширование, сжатие текста, версионирование файлов и отсутствие лишних редиректов между ресурсами.
Для географически распределённой аудитории CDN может ускорить доставку статических файлов. Но CDN не исправит медленный backend или тяжёлый JavaScript — он решает только свою часть пути.
Шаг 7
Один тест одной страницы не описывает весь сайт. Сравниваем разные шаблоны, повторные загрузки и реальное поведение пользователей.
Главная, категория, карточка, статья и тяжёлая форма могут иметь разные узкие места.
Показывает поведение без уже прогретого браузерного кэша.
Помогает проверить, работает ли кэширование ресурсов.
Проблемы веса заметнее при ограниченной скорости и высокой задержке.
Показывают 5xx, таймауты и нестабильность, которой нет в лабораторном тесте.
Видно, какой ресурс реально задерживает цепочку.
Страница может быстро скачаться, но долго оставаться занята вычислениями.
Сравниваем устройства, браузеры и реальные сценарии, а не только тестовый компьютер.
Практический пример
На первый взгляд хочется сжать изображения. Но сетевой профиль показывает, что HTML начинает приходить только через 2,8 секунды — проблема находится до загрузки картинок.
| Этап | Наблюдение | Вывод | Действие |
|---|---|---|---|
| TTFB | 2,8 с | Backend отвечает слишком поздно | Проверить БД, PHP, кэш и внешние API |
| HTML | 80 КБ | Вес умеренный | Не главный приоритет |
| Изображения | 450 КБ | Есть запас оптимизации | Сжать после backend |
| JS | 120 КБ | Нет длинных задач | Наблюдать, но не начинать с него |
Шаг 8
Проще всего «оптимизировать» мелкие иконки или убрать несколько килобайт CSS, но это может почти не изменить пользовательское ожидание. Приоритет получают проблемы, которые задерживают первый полезный контент, ломают интерактивность или вызывают нестабильность.
После каждого крупного изменения повторяем измерение на тех же URL и условиях. Если показатель не изменился, значит гипотеза была слабой или узкое место находилось в другом месте.
Чек-лист
Вопросы
Одной универсальной цифры недостаточно. Важно, когда пользователь видит полезный контент, когда интерфейс становится отзывчивым и насколько стабильно сайт ведёт себя на разных устройствах и сетях.
То, что создаёт основную задержку. Если HTML начинает приходить через несколько секунд, сначала backend. Если сервер быстрый, а страница скачивает мегабайты изображений — начинаем с медиа.
CDN сокращает путь доставки статических ресурсов, но не исправляет медленную базу, тяжёлый PHP или долгий JavaScript.
Не всегда. Важнее минимизировать критическую цепочку и не заставлять страницу загружать код, который ей не нужен.
У разработчика могут быть быстрый компьютер, локальный кэш и хорошая сеть. Поэтому нужны проверки на мобильных устройствах, слабой сети и данные реальных пользователей.
Практика NIC-SEO
Это позволяет не тратить время на косметические улучшения, когда реальная задержка находится в базе данных, внешнем API или тяжёлом JavaScript.