Клавиша / esc

Что такое Core Web Vitals

Разбираем Core Web Vitals — метрики, предложенные Google для оценки скорости загрузки, отзывчивости и визуальной стабильности веб-страниц.

Время чтения: 9 мин

Кратко

Скопировано

В 2020 году компания Google предложила набор метрик, которые переводят ощущение «сайт быстрый и удобный» в конкретные цифры, и назвала их Web Vitals. Самые важные из них получили статус Core Web Vitals, или основные метрики. С 2021 года улучшение этих показателей уже не просто рекомендация: Core Web Vitals стали одним из сигналов ранжирования в поиске Google. Если две страницы одинаково подходят под запрос, хорошие Core Web Vitals могут стать тем самым дополнительным преимуществом, которое склонит выдачу в пользу одной из них.

Когда вы открываете любой сайт, между кликом по ссылке и моментом, когда страницей можно пользоваться, происходит довольно много событий: браузер получает данные, загружает изображения, стили и скрипты, а затем постепенно отрисовывает страницу. На каждом из этих этапов могут возникать задержки: главный контент появляется слишком поздно, элементы прыгают, а кнопки не сразу реагируют на нажатие. Всё это напрямую влияет на восприятие скорости сайта пользователем. Долгое время разработчики в основном ориентировались на технические показатели вроде времени загрузки страницы или события load, но они слабо отражали то, что на самом деле ощущает пользователь.

Далее разберём, зачем Google ввёл эти метрики, какие они бывают и по каким порогам их оценивают. А как разбираться с причинами плохих значений и что улучшать — в отдельных статьях про LCP, INP, CLS, FCP и TTFB.

Зачем Google предложила Core Web Vitals

Скопировано

У производительности сайтов есть две стороны, и обе важны:

  • пользовательский опыт — медленный и нестабильный сайт заставляет людей уходить, не дойдя до просмотра, заявки или заказа. Core Web Vitals выражают в понятных показателях три главных раздражителя: долгую загрузку, медленную реакцию на действия и прыжки элементов;
  • SEO — Core Web Vitals остаются одним из сигналов ранжирования. Google оценивает метрики не по замерам на тестовом стенде (когда страницу прогоняют в контролируемых условиях), а по данным реальных пользователей Chrome с включённой отправкой статистики из отчёта Chrome UX Report (CrUX).

Все Core Web Vitals оцениваются по 75-му перцентилю. Это означает, что метрика считается хорошей, только если значение 75-го перцентиля ниже порога.

Как понять 75-й перцентиль? Представьте, что есть результаты 100 посещений сайта. Если отсортировать их от самых быстрых к самым медленным, то значение на 75-й позиции и будет 75-м перцентилем. Иными словами, установленному порогу должны соответствовать не менее 75% посещений.

Изначально в 2020 году в тройку основных метрик входил FID (First Input Delay) вместо INP. У FID было два ограничения: он учитывал только самое первое взаимодействие пользователя со страницей и измерял лишь задержку до начала обработки события, не считая время выполнения обработчика и последующей отрисовки. В мае 2023 года Google объявила о замене FID на INP, а 12 марта 2024 года изменение вступило в силу. INP снимает оба ограничения: измеряет полное время отклика — от действия до отрисовки — и учитывает все взаимодействия (клики, тапы, нажатия) за всё время жизни страницы, а не только первое.

Core Web Vitals и диагностические метрики

Скопировано

Core Web Vitals — это три основные метрики: LCP (Largest Contentful Paint, загрузка основного контента), INP (Interaction to Next Paint, отзывчивость) и CLS (Cumulative Layout Shift, визуальная стабильность). Есть ещё две метрики, FCP (First Contentful Paint, первая отрисовка) и TTFB (Time to First Byte, время до первого байта) — они не входят в Core Web Vitals, но считаются «диагностическими»: помогают понять причины плохих значений LCP, INP и CLS.

Схема трёх метрик Core Web Vitals: LCP, INP и CLS

Если коротко, три основные метрики отвечают на три простых вопроса:

  • LCP — «когда я увидел основной контент страницы?»
  • INP — «я нажал, страница быстро отреагировала или заставила долго ждать?»
  • CLS — «почему элементы неожиданно сдвигаются при загрузке и я могу случайно нажать на другой элемент?»

А диагностические метрики отвечают на такие вопросы:

  • FCP — «когда на экране вообще появилось хоть что-нибудь?»
  • TTFB — «как быстро сервер начал отвечать на запрос браузера?»

Пороговые значения: шпаргалка

Скопировано

Для каждой метрики есть три зоны: «хорошо» (зелёная), «нужно улучшить» (жёлтая) и «плохо» (красная). К этим значениям мы ещё не раз будем обращаться в других статьях раздела.

Метрика Показывает 🟢 Хорошо 🟡 Нужно улучшить 🔴 Плохо
LCP загрузку основного контента ≤ 2,5 с 2,5–4,0 с > 4,0 с
INP отзывчивость на действия ≤ 200 мс 200–500 мс > 500 мс
CLS визуальную стабильность ≤ 0,1 0,1–0,25 > 0,25
FCP первую отрисовку ≤ 1,8 с 1,8–3,0 с > 3,0 с
TTFB ответ сервера ≤ 0,8 с 0,8–1,8 с > 1,8 с

CLS — безразмерная величина, которая обычно принимает значения от 0 до 1, но может быть и больше: например, в бесконечной ленте, которая постоянно вставляет контент сверху. Остальные метрики измеряются в секундах или миллисекундах.

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

Что ещё почитать о Web Vitals?

Скопировано

Здесь мы собрали всё, на что опирались в статьях этого раздела о Web Vitals.

Официальная документация, пороги, метрики и API

Скопировано

web.dev

Скопировано

Chrome for Developers

Скопировано

MDN

Скопировано

Google

Скопировано

Другое

Скопировано

Библиотеки и фреймворки

Скопировано

Размер бандла

Скопировано

Инструменты, мониторинг и измерение

Скопировано

Разборы и кейсы из практики

Скопировано