г. Москва, Рязанский проспект д.22к2

ПН-ПТ с 9:00 - 18:00

Seovolga web studio

Core Web Vitals и скорость: что чинить разработчикам, чтобы росли позиции и конверсия

4.9
100
37

Core Web Vitals и скорость: что чинить разработчикам, чтобы росли позиции и конверсия

Core Web Vitals и скорость: что чинить разработчикам, чтобы росли позиции и конверсия

Скорость в 2026 году перестала быть «приятным бонусом». Она стала фильтром. Страница может выглядеть идеально, но если главный блок появляется через 4 секунды, а кнопка «Купить» реагирует с задержкой, поиску и пользователю всё равно. Я обычно объясняю это команде так: контент без скорости похож на витрину за грязным стеклом. Его видно, но покупать не хочется.

Core Web Vitals — три метрики про реальный опыт пользователей: загрузка, отзывчивость, стабильность. Google оценивает их по полевым данным на 75-м перцентиле, то есть «как у большинства, а не у счастливчиков на Wi-Fi». Нормы простые: LCP до 2,5 с, INP до 200 мс, CLS до 0,1. Если хотя бы одна метрика красная у заметной доли трафика, вы теряете и позиции, и конверсию.

Диагностика за 30 минут, чтобы не лечить «всё подряд»

  • Смотрите поле, а не только Lighthouse. В PageSpeed Insights берите Field data и сегменты Mobile и Desktop, держите в голове скользящее окно 28 дней.
  • В DevTools Performance фиксируйте LCP element и Long Tasks, включайте Web Vitals overlay.
  • Снимайте водопад сети и смотрите, что блокирует первый экран: CSS, шрифты, hero-картинка, JS-бандл, TTFB.
  • Проверяйте три шаблона: главная, листинг, карточка. Дальше всё масштабируется.

LCP, цель 2,5 секунды

LCP почти всегда упирается в «герой» на первом экране. На услугах это баннер 800–1200 КБ, на e-commerce — фото товара в слайдере, который тянет полстраницы. Лечится не шаманством, а дисциплиной ассетов и серверной части.

Делайте так. Готовьте hero в AVIF или WebP и держите реальный вес 80–180 КБ на мобиле, отдавайте размеры через srcset. Указывайте width и height, чтобы браузер сразу планировал место. Прелоадьте LCP-картинку и ключевой шрифт, для изображения ставьте fetchpriority="high" и не прячьте его за lazy-load. Убирайте render-blocking: критический CSS инлайн на 10–20 КБ, остальное грузится позже.

Серверная часть тоже решает. Для SSR держите TTFB стабильно в диапазоне 200–400 мс на большинстве запросов, иначе LCP не взлетит. Работают кэш HTML для анонимных, микро-кэш на 1–5 секунд, Brotli, HTTP/2 или HTTP/3, CDN на статику и картинки.

INP, цель 200 миллисекунд

INP показывает, как быстро страница отвечает на клики, тап и ввод. Порог «зелёного» — 200 мс, «красного» — 500 мс Самая частая причина — длинные задачи JS. В профайле это выглядит как пачка Long Task по 150–800 мс во время скролла или клика по фильтру.

Тут я обычно говорю разработчикам прямо: сначала режем ненужный JavaScript, потом обсуждаем «оптимизацию». Убирайте тяжёлые виджеты, которые не дают продаж, или переносите их на after-interaction. Делите бандл по маршрутам и компонентам, чтобы на карточке не жил код личного кабинета. Тяжёлые вычисления уводите в Web Worker, особенно сортировки, фильтрации, расчёты доставки.

Отдельная зона боли — рендер и гидрация. Чистый CSR даёт поздний первый экран, тяжёлый SSR даёт дорогую гидрацию и провалы INP на первом взаимодействии. Нормальный компромисс выглядит так: SSR для первого экрана, затем частичная гидрация, «острова» интерактивности, отложенные компоненты, постепенная загрузка фильтров и личных блоков. На низких устройствах это часто даёт минус 100–200 мс по INP без потери функциональности.

Плюс мелочи, которые дают ощутимый эффект. Ставьте passive listeners на touch и wheel. Используйте event delegation вместо сотен обработчиков. Не гоняйте синхронный layout thrash в обработчиках кликов, сначала собирайте данные, потом одним батчем меняйте DOM.

CLS, цель 0,1

CLS — визуальная стабильность. Хорошо до 0,1, плохо выше 0,25. В коммерции CLS бьёт прямо в деньги. Человек тянется нажать «Заказать», а блок смещается из-за баннера или шрифта.

Фиксы, которые закрывают основную долю проблем:

  • Всегда задавайте размеры для изображений, видео, iframe, рекламных блоков. Нет размеров — будет сдвиг.
  • Резервируйте место под баннеры, куки-плашки, чат-виджеты. Вставка «сверху и внезапно» почти гарантирует красный CLS.
  • Шрифты. Делайте preload на woff2, subset по глифам, font-display: swap или optional, и подбирайте fallback с похожими метриками.
  • Не меняйте высоту элементов после рендера, особенно карточек в листинге. Скелетоны держите по размерам финального контента.

Кэш, CDN, изображения

Я люблю правки, которые делаются один раз и улучшают всё. Ставьте CDN для статики и картинок, задавайте cache-control: public, max-age и immutable для хэширующихся файлов. Делайте оптимизацию картинок на лету через image proxy, если контент грузят менеджеры и никто не думает о весе. Добавляйте preconnect к критичным доменам, если медиа живут отдельно.

Контроль, чтобы скорость не умерла через месяц

Ставьте бюджеты: LCP до 2,5 с на 75-м перцентиле, INP до 200 мс, CLS до 0,1. В CI гоняйте Lighthouse на ключевых шаблонах, в проде собирайте RUM через web-vitals и ловите регресс после релизов. У команды должен быть простой ритуал: любой новый виджет приносит цифры и план отката.

Автор

Статьи Евгения Шошина | Разработка, архитектура, релизы

Евгений Шошин

Евгений Шошин – начальник отдела программирования и тот самый человек, после которого релизы перестают быть лотереей. Он держит архитектуру в порядке, команду – в тонусе, а продукт – в стабильном и безопасном состоянии.

10 публикаций

Комментарии

Готовы погрузится и решить вашу задачу!
+7 927 510-77-60 Пн-Пт с 9:00 до 18:00

Рубрики, которые удваивают выручку

SEOVOLGA WEB STUDIO
Остались
Вопросы?
Задайте их напрямую нашим специалистам, позвонив в компанию или оставив заявку
Позвонить в компанию
5,0

Рейтинг организации в Yandex

5,0

Рейтинг организации в Google

5,0

Рейтинг организации в 2GIS

Информация на сайте носит ознакомительный характер и не является публичной офертой. Актуальные сведения и действующие акции уточняйте по телефону +7 927 510-77-60