Скорость сайта — не одно число, а четыре разных измерения. Путаница между ними и есть главная причина оптимизации не того. Разберём, что мерить и как читать результат.
Четыре величины, которые называют скоростью
| Что измеряется | Что означает |
|---|---|
| Время ответа сервера | сколько прошло до первого байта |
| Первая отрисовка | когда появилось хоть что-то |
| Отрисовка главного элемента | когда стало видно то, ради чего пришли |
| Полная загрузка | когда браузер закончил всю работу |
Оптимизировать стоит третью: она отвечает на вопрос «вижу нужное или ещё жду». Последняя почти бесполезна — на неё влияют счётчики и скрипты, грузящиеся при уже читаемой странице.
Лаборатория и живые пользователи
Два разных источника, которые постоянно путают.
Лабораторный замер — прогон в контролируемых условиях. Отвечает всегда, повторяем, годится для сравнения «до и после».
Данные реальных пользователей — распределение по тысячам живых визитов с разных устройств и сетей. Это и есть Core Web Vitals, по ним оценивает поиск.
У молодого сайта второго источника нет: выборка не набирается. Остаётся лаборатория, но называть её результат своими Core Web Vitals нельзя. Мы пишем «замер с сервера по проводу», а не «наши показатели 0,24 секунды»: второе звучало бы лучше и было бы неправдой.
Где замер врёт
Локальный сервер. Простой файловый сервер отдаёт страницу без сжатия, вес выходит вдвое больше настоящего. Мы дважды получали цифры вдвое хуже боевых и едва не начали чинить исправное.
Свой браузер. Держит кеш и старые стили после выкладки. Для массовых проверок ходить на сервер напрямую, а не смотреть через вкладку.
Одиночный прогон. Разброс между двумя замерами подряд бывает больше эффекта оптимизации. Гонять минимум дважды и смотреть разброс, а не одно число.
Порядок разбора
- Время ответа сервера. Ориентир — до 600 миллисекунд. Выше — причина в хостинге или тяжёлом запросе к базе, работа с картинками тут не поможет.
- Сжатие. Включён ли gzip или brotli. Без него страница едет полным весом; самая дешёвая правка из всех.
- Блокирующие ресурсы. Скрипты и стили в шапке без пометок async и defer останавливают разбор страницы до своей загрузки. Скрипт в конце отрисовку не задерживает — в проблемы его записывать не надо.
- Изображения. Формат, размер, не уходит ли фотография телефону в исходном разрешении. Здесь обычно основной вес.
- Шрифты. От порядка их загрузки зависит, увидит человек пустое место или сразу буквы.
Порядок именно такой: следующий пункт имеет смысл только при исправном предыдущем.
Чем проверять
Сторонние сервисы дают лабораторный замер и, при достатке данных, показатели живых пользователей. Панели поисковиков показывают вторые сразу по всему сайту.
Наша бесплатная проверка скорости измеряет то, что видно снаружи, по отдельности: время ответа сервера, вес разметки, включено ли сжатие, число блокирующих скриптов и вес изображений первого экрана. Она намеренно не обещает «поведение на телефоне» — без запуска браузера этого не измерить, и обещать то, чего проверка не делает, мы не будем.
Что обычно тормозит на самом деле
Порядок находок по нашим прогонам чужих сайтов и по своему опыту примерно такой.
Изображения в исходном размере. Фотография с телефона на три мегабайта, уменьшенная стилями до превью. Браузер всё равно грузит три мегабайта. Чинится пересохранением и адаптивными версиями.
Отсутствие сжатия. Одна строка в настройках сервера уменьшает разметку втрое. Встречается чаще, чем кажется.
Счётчики и виджеты. Обратный звонок, чат, пиксели рекламных систем. Каждый по отдельности безобиден, впятером они дают полсекунды.
Шрифты. Подключённые из внешнего источника и без запасного варианта: пока шрифт едет, текста нет.
Тяжёлая главная. Слайдер на первом экране с пятью фотографиями по мегабайту — классика, которая переживает все редизайны.
Чего в этом списке нет — «плохой код» и «старый движок». Они встречаются, но чинятся дорого, а перечисленное выше чинится за день и обычно даёт больше.
Чего скорость не решает
Быстрый сайт не поднимается в выдаче сам по себе. Скорость — условие, а не преимущество: медленный проигрывает, быстрый по этой причине не проигрывает.
Наш пример: отрисовка главного элемента от 132 до 284 миллисекунд при пороге 2500, техника чистая, ноль ошибок в аудите. И при этом в первой тройке мы ни по одному запросу: позиция на молодом домене упирается в возраст и ссылки, а не в миллисекунды.
Полный разбор нашего замера, включая две ошибки в методике, — в отдельном материале. Про пороги и про то, что INP заменил FID, — в статье про Core Web Vitals.
