Разбор

Как улучшить Core Web Vitals за 48 часов: чеклист из 14 шагов + инструменты

53% мобильных посетителей уходят, если страница грузится дольше 3 секунд. Пошаговый чеклист: что чинить в первую очередь, какие инструменты использовать и как не сломать сайт в процессе.

• 8 мин чтения

  • #core-web-vitals
  • #LCP
  • #CLS
  • #INP
  • #скорость-сайта
  • #оптимизация
  • #SEO

Ты читаешь очередной отчёт по скорости сайта и видишь красные метрики. PageSpeed Insights показывает 38 из 100. Тебе говорят «оптимизируйте» — но никто не говорит что конкретно делать и в каком порядке.

Антагонист этой истории — хаотичная оптимизация. Когда команда одновременно жмёт картинки, переписывает CSS и ставит CDN — и через неделю ничего не меняется, потому что настоящее узкое горлышко было в JavaScript.

53%мобильных посетителей уходят, если страница грузится дольше 3 секундGoogle / Think with Google, 2024

Перевёртыш

Старое убеждение: «Оптимизация скорости — это работа на месяцы, нужен DevOps»
Новая реальность: 80% прироста Core Web Vitals даёт 20% действий. Самые результативные фиксы — изображения, шрифты и блокирующий JS — можно сделать за 48 часов без единого DevOps-инженера.

Что ты получишь: 14 конкретных шагов с приоритетами (что чинить первым), инструменты для диагностики и интерактивный чеклист, чтобы ничего не забыть. Посчитай, сколько денег теряет твой сайт прямо сейчас — в калькуляторе потерь от скорости.


Три метрики CWV: что именно измеряем

По данным HTTP Archive Web Almanac 2024, только 39% мобильных сайтов проходят все три порога Core Web Vitals одновременно. Три метрики — три разных аспекта пользовательского опыта.

LCP (Largest Contentful Paint) — скорость загрузки

Время до отрисовки главного элемента: hero-изображения, заголовка, видео. Порог: до 2.5 секунд — хорошо, больше 4 — плохо.

Что обычно является LCP-элементом:

  • Hero-картинка (60% случаев)
  • Видео-постер
  • Большой текстовый блок на фоне кастомного шрифта

CLS (Cumulative Layout Shift) — визуальная стабильность

Суммарный сдвиг элементов при загрузке. Когда ты целишься нажать кнопку, а она уезжает вниз — это CLS. Порог: до 0.1 — хорошо.

Главные виновники:

  • Картинки без width/height
  • Динамически подгружаемая реклама
  • Шрифты, которые меняют размер текста при загрузке (FOUT)

INP (Interaction to Next Paint) — отзывчивость

Заменил FID в марте 2024. Измеряет задержку между кликом/тапом пользователя и визуальным откликом. Порог: до 200 мс — хорошо.

Частая причина: тяжёлый JavaScript, который блокирует главный поток.

Сделай за 5 минут

Открой PageSpeed Insights, вбей URL главной страницы. Запиши три числа: LCP, CLS, INP. Это твоя точка отсчёта. Без неё не поймёшь, помогли ли твои действия.


Час 0—4: диагностика и приоритизация

По данным CrUX, 72% проблем с LCP связаны с изображениями и шрифтами. Не начинай оптимизацию, пока не знаешь, что именно сломано.

Инструменты диагностики

ИнструментЧто показываетКогда использовать
PageSpeed InsightsПолевые данные CrUX + лабораторный аудитПервый шаг: общая картина
Chrome DevTools (Performance)Точный waterfall загрузки, Long TasksКогда нужно найти конкретный файл-виновник
WebPageTest.orgWaterfall из разных локаций, filmstripПроверка из региона целевой аудитории
Search Console (CWV report)Реальные данные пользователей по URL-группамОценка масштаба: сколько страниц проваливают
Lighthouse CIАвтоматический аудит при деплоеЗащита от регрессий

Алгоритм приоритизации

  1. Если LCP > 4 сек — начинай с изображений и шрифтов (Час 4—16)
  2. Если CLS > 0.25 — начинай с размеров картинок и рекламных блоков (Час 16—24)
  3. Если INP > 500 мс — начинай с JavaScript-аудита (Час 24—40)
  4. Если всё плохо — начинай с LCP (даёт максимальный эффект на конверсию)

Кстати, мы замеряли скорость сайтов по 37 нишам российского бизнеса в большом исследовании — посмотри бенчмарки для своей отрасли.


Час 4—16: убиваем LCP

Google Developers называют LCP главной метрикой конверсии: каждые 100 мс прироста LCP — это минус 1.3% конверсии в e-commerce.

Шаг 1. Конвертируй изображения в WebP / AVIF

AVIF на 50% легче JPEG при том же качестве. WebP — на 30%. Если ты до сих пор раздаёшь PNG — это первый фикс.

Инструменты: Squoosh (ручное сжатие), Sharp (Node.js, batch), Cloudflare Polish (автоматическое).

Шаг 2. Добавь loading="lazy" ко всем картинкам ниже фолда

Но не к LCP-элементу. Hero-картинку грузи с fetchpriority="high" и без lazy.

<!-- Hero (LCP) -- грузи сразу -->
<img src="hero.webp" fetchpriority="high" width="1200" height="630" alt="..." />
<!-- Остальные -- лениво -->
<img src="photo.webp" loading="lazy" width="600" height="400" alt="..." />

Шаг 3. Preload критических ресурсов

В <head> добавь preload для LCP-изображения и основного шрифта:

<link rel="preload" as="image" href="/hero.webp" fetchpriority="high" />
<link rel="preload" as="font" href="/fonts/main.woff2" type="font/woff2" crossorigin />

Шаг 4. Оптимизируй шрифты

  • Используй font-display: swap (текст виден сразу)
  • Подмножествуй кириллицу: unicode-range: U+0400-04FF
  • Самохости шрифты вместо Google Fonts (экономишь DNS-lookup + connect)

Шаг 5. Включи CDN или проверь его настройки

Без CDN пользователь из Владивостока ждёт ответа от московского сервера ~120 мс только на RTT. CDN сокращает это до 10—20 мс.

Сделай за 5 минут

Открой DevTools → Network. Найди LCP-элемент (он подсвечен во вкладке Performance). Посмотри его размер. Если больше 200 КБ — конвертируй в WebP/AVIF прямо сейчас через Squoosh.


Час 16—24: убиваем CLS

По данным HTTP Archive, 75-й перцентиль CLS в мобильном вебе — 0.15. Это выше порога «хорошо» (0.1), и большинство сайтов проваливаются именно на мобильных.

Шаг 6. Задай width и height всем <img> и <video>

Браузер резервирует место до загрузки. Без этих атрибутов он рисует элемент с нулевой высотой, а потом сдвигает всё вниз.

Шаг 7. Зарезервируй место под рекламу

Если на сайте есть баннеры — оберни их в контейнер с фиксированным min-height:

.ad-slot { min-height: 250px; background: var(--surface); }

Шаг 8. Используй font-display: optional для некритичных шрифтов

swap решает проблему невидимого текста, но создаёт CLS при замене fallback → кастомный шрифт. Для декоративных шрифтов используй optional — если шрифт не загрузился за 100 мс, браузер остаётся на fallback без сдвига.

Шаг 9. Не вставляй элементы выше видимой области динамически

Баннеры «подпишись» и нотификации, которые появляются вверху страницы после загрузки — классический источник CLS. Используй position: fixed или sticky, не сдвигай контент.


Час 24—40: убиваем INP

INP — самая коварная метрика. Её нельзя увидеть в Lighthouse (он измеряет только TBT как прокси). Реальные данные — только из CrUX или RUM.

Шаг 10. Найди и разбей Long Tasks

Откройте Chrome DevTools → Performance → Record. Взаимодействуй с сайтом. Красные полосы сверху — это Long Tasks (>50 мс). Именно они блокируют INP.

Типичные виновники:

  • Analytics-скрипты (GA4, Метрика, пиксели)
  • Тяжёлые слайдеры и карусели
  • Инициализация чат-виджетов

Шаг 11. Перенеси некритичный JS на defer или async

<!-- Блокирует рендер -->
<script src="analytics.js"></script>
<!-- Не блокирует -->
<script src="analytics.js" defer></script>

Порядок: критичный JS для above-the-fold → defer для интерактива → async для аналитики.

Шаг 12. Используй requestIdleCallback для тяжёлых операций

Инициализацию чата, подгрузку рекомендаций, пиксели ретаргетинга — всё это можно отложить до момента, когда браузер свободен.

Шаг 13. Проверь обработчики событий

Если на каждый скролл висит тяжёлый обработчик — добавь passive: true и debounce. Это прямо влияет на INP.

Сделай за 5 минут

Открой DevTools → Performance → Record → кликни 5 раз по сайту на разных элементах → Stop. Посмотри вкладку Interactions. Если любой interaction длиннее 200 мс — это твой первый кандидат на оптимизацию.


Час 40—48: проверка и защита от регрессий

Шаг 14. Настрой мониторинг

Разовая оптимизация бесполезна без мониторинга. Через месяц кто-то добавит новый скрипт — и всё вернётся.

  • Search Console → Core Web Vitals — бесплатный мониторинг раз в 28 дней
  • CrUX Dashboard (Looker Studio) — визуализация динамики
  • Lighthouse CI — автоматическая проверка при каждом деплое

Мы также публикуем ежемесячные замеры скорости по индустриям. Посмотри, как выглядит твоя ниша: банки, e-commerce, клиники, EdTech.


Интерактивный чеклист: отметь что сделано

Core Web Vitals: 14 шагов за 48 часов


Квиз: проверь понимание CWV

LCP сайта — 3.8 секунды. Главный элемент — hero-картинка 1.2 МБ в PNG. Какой фикс даст максимальный эффект?

CLS сайта — 0.35. В PageSpeed видишь, что сдвиг происходит при загрузке шрифта. Что поможет?

INP сайта — 450 мс. В Performance видишь Long Task на 380 мс при клике на кнопку «Добавить в корзину». Что делать?


Сколько денег ты теряешь прямо сейчас

Связь между скоростью и деньгами прямая. По данным Google, ускорение с 3 до 1.5 секунд увеличивает конверсию на 20—30%. Посчитай свои потери: калькулятор потерь от скорости сайта. А если нужно обосновать бюджет на оптимизацию перед руководством — калькулятор ROI покажет окупаемость.

Следи за свежими данными по скорости и рынку в разделе новостей — мы регулярно публикуем обновления бенчмарков.


«Скорость — это не техническая метрика. Это бизнес-метрика. Каждые 100 мс задержки — это потерянные деньги, которые вы не увидите ни в одном отчёте.»

— Addy Osmani, Google Chrome Team

Что дальше

Ты прошёл 14 шагов за 48 часов — основная работа сделана. Но Web Vitals — это не разовый проект, а процесс. Регрессии будут: новый скрипт аналитики, обновление CMS, баннер к акции. Lighthouse CI и мониторинг в Search Console — твоя страховка.

Если хочешь понять, как твой сайт выглядит на фоне конкурентов — загляни в наш рейтинг скорости сайтов по отраслям. А для расчёта влияния скорости на рекламный бюджет используй калькулятор CPM и калькулятор CR.

Что дальше?

В Telegram-канале @lexamarketolog выходят оперативные разборы скорости сайтов по индустриям — с конкретными цифрами и рекомендациями. Подпишись, чтобы не пропустить.

Также: видео на MAX · разборы в ВК · сторис @loading_express

Источники

Обсуждение

    Пока без комментариев. Будьте первым.

    Войдите, чтобы отправить комментарий

    Вы сможете комментировать статьи, сохранять материалы

    или войдите по email

    Бесплатная диагностика · 30 минут · без обязательств

    Маркетинг работает, но продажи не растут?

    Отвечу на 3–5 вопросов о вашем бизнесе — и мы вместе разберём, где именно теряются клиенты и что с этим делать.

    Без продаж. Без навязчивых звонков.