Core Web Vitals — это не просто модная аббревиатура. Это три конкретные метрики, которые Google с 2021 года учитывает в ранжировании. И да, их можно исправить без тотальной переделки сайта. Мы в вебпоиск.рф регулярно проводим аудиты и видим: большинство проблем решается точечными правками. Расскажем, как именно, с примерами и чек-листом.
Автор: Григорий Федотов, основатель студии · Обновлено: 15.10.2026
Core Web Vitals — это набор метрик, которые оценивают пользовательский опыт: скорость загрузки, интерактивность и визуальную стабильность. Google использует их как сигнал ранжирования. Если сайт грузится долго, кнопки не нажимаются или контент прыгает — пользователи уходят, а поисковик это видит.
Метрики делятся на лабораторные (измеряются в момент проверки, например, в Lighthouse) и полевые (реальные данные пользователей из Chrome UX Report). Для SEO важнее полевые, потому что они отражают реальный опыт. Лабораторные помогают диагностировать проблемы.
Три ключевые метрики:
Раньше вместо INP была FID (First Input Delay), но с 2024 года Google заменил её на INP, потому что FID не учитывал задержки после первого взаимодействия. Многие сайты, которые считались быстрыми по FID, оказались проблемными по INP.
Почему это важно? Потенциально метрики влияют на позиции. Google не говорит, что это главный фактор, но в кейсах видно: ускорение LCP на 1–2 секунды даёт рост трафика на 5–10% на конкурентных запросах. А ещё это просто хорошо для бизнеса — быстрые сайты конвертят лучше.
Прежде чем что-то чинить, нужно понять текущее состояние. Многие сразу лезут в код, но без замеров это гадание. Мы всегда начинаем с трёх инструментов:
1. PageSpeed Insights — показывает и лабораторные, и полевые данные. Если сайт новый и полевых данных нет, ориентируйтесь на лабораторные.
2. Search Console — отчёт «Основные веб-показатели» покажет, сколько URL в красной, жёлтой и зелёной зонах. Это агрегированные данные по группам страниц.
3. Chrome DevTools — вкладка Performance и Lighthouse для детального анализа.
Важный нюанс: полевые данные (CrUX) обновляются раз в 28 дней. Если вы только что что-то исправили, в отчёте это появится не сразу. Не паникуйте и не делайте повторных правок, пока не увидите результат.
Ещё один момент: метрики могут отличаться для мобильных и десктопов. Google ранжирует по мобильной версии, поэтому смотрим в первую очередь на смартфоны. В PageSpeed Insights переключайтесь на вкладку «Мобильные».
LCP — это время до отрисовки самого крупного элемента. Обычно это изображение баннера, заголовок или блок с текстом. Чтобы улучшить, нужно понять, что именно является LCP-элементом. В DevTools наведите на элемент — он подсветится.
Основные причины плохого LCP:
Что делать:
1. Ускорить сервер. Если TTFB высокий, никакие оптимизации не помогут. Проверьте хостинг: возможно, он перегружен. Включите кэширование на стороне сервера (например, через Redis или Memcached). Используйте CDN для статики — это снимет нагрузку и ускорит отдачу для удалённых регионов. Мы часто видим, как перенос сайта на VPS с правильной настройкой снижает LCP на 30–40% без единой правки в коде.
2. Оптимизировать изображения. LCP-картинку нужно сжать и отдать в современном формате (WebP или AVIF). Уберите лишние размеры: если изображение отображается 800px, не загружайте 2000px. Используйте атрибуты `width` и `height`, чтобы браузер знал пропорции. Добавьте `fetchpriority="high"` для LCP-изображения — это подскажет браузеру загрузить его в первую очередь.
3. Убрать блокирующие ресурсы. CSS и JS в `<head>` блокируют рендеринг. Критический CSS можно встроить инлайном, а остальное загружать асинхронно. Для JS используйте `defer` или `async`. Но осторожно: `async` может нарушить порядок выполнения, если скрипты зависят друг от друга.
4. Предзагрузка шрифтов. Если используете кастомные шрифты, добавьте `<link rel="preload">` для файлов шрифтов. Это сократит время до отрисовки текста. И обязательно `font-display: swap`, чтобы текст не был невидимым.
На одном интернет-магазине LCP был 4.2 секунды. Оказалось, что баннер на главной весил 1.5 МБ и был в PNG. Сжали в WebP, добавили `fetchpriority`, уменьшили до нужного размера — LCP упал до 2.1 секунды. Никакой переделки сайта, только работа с изображением и одной строкой кода.
CLS измеряет, насколько сильно смещаются элементы при загрузке. Причина всегда одна: браузер не знает заранее размеры элемента и выделяет место под него после загрузки. Пользователь уже начал читать или кликать, а контент прыгнул.
Типичные виновники:
Что делать:
1. Всегда указывайте размеры изображений. Даже если картинка адаптивная, атрибуты `width` и `height` помогают браузеру зарезервировать место. В CSS можно задать `max-width: 100%; height: auto;` — пропорции сохранятся.
2. Фиксируйте место под рекламу. Если у вас есть рекламные блоки, задайте им фиксированную высоту через CSS. Да, это может быть неудобно, если реклама не загрузилась, но пустое место лучше, чем прыгающий контент.
3. Управляйте шрифтами. Используйте `font-display: optional` или `swap`. `optional` даёт браузеру очень короткое время на загрузку шрифта, и если не успел — использует системный. Это полностью убирает сдвиг, но может быть некрасиво, если брендовый шрифт важен. `swap` показывает текст системным шрифтом сразу, а потом меняет на кастомный — сдвиг возможен, но минимальный.
4. Не вставляйте контент сверху без необходимости. Если нужно показать уведомление, делайте это поверх контента (`position: fixed`), а не сдвигая его.
Многие ставят `height: auto` для изображений и думают, что этого достаточно. Но без явных `width` и `height` в HTML браузер не знает пропорций, пока не загрузит картинку. Всегда указывайте оба атрибута, даже если они не соответствуют реальному размеру — главное соотношение.
INP заменил FID в 2024 году. Он измеряет задержку между действием пользователя (клик, тап, нажатие клавиши) и визуальной реакцией. Плохой INP обычно из-за тяжёлого JavaScript, который выполняется в основном потоке.
Что вызывает высокий INP:
Как улучшить:
1. Разбейте длинные задачи. Если у вас есть скрипт, который выполняется 200 мс, разбейте его на части с помощью `setTimeout` или `requestIdleCallback`. Это позволит браузеру обрабатывать другие события между частями.
2. Оптимизируйте обработчики событий. Не вешайте тяжёлые вычисления на `click` или `scroll`. Используйте делегирование событий и троттлинг. Например, для скролла — `passive: true` в addEventListener.
3. Отложите сторонние скрипты. Все счётчики, чаты и виджеты загружайте после основного контента. Используйте `defer` или динамическую загрузку. Если виджет не критичен, грузите его при взаимодействии.
4. Проверьте свой JS. Уберите неиспользуемый код, минифицируйте, используйте code splitting. Если у вас старая библиотека, возможно, есть более лёгкий аналог.
В PageSpeed Insights INP показывается в полевых данных. В лабораторных условиях его сложно воспроизвести, потому что нужны реальные взаимодействия. Для отладки используйте Performance Monitor в DevTools или расширение Web Vitals.
| Метод | Влияние на LCP | Влияние на CLS | Влияние на INP | Сложность внедрения |
|---|---|---|---|---|
| Сжатие изображений | Высокое | Нет | Нет | Низкая |
| Указание width/height | Нет | Высокое | Нет | Низкая |
| Кэширование на сервере | Высокое | Нет | Нет | Средняя |
| CDN | Высокое | Нет | Низкое | Средняя |
| Инлайн критического CSS | Среднее | Среднее | Нет | Высокая |
| Отложенная загрузка JS | Среднее | Низкое | Высокое | Средняя |
| Оптимизация шрифтов | Среднее | Высокое | Нет | Низкая |
| Разбиение длинных задач | Нет | Нет | Высокое | Высокая |
Как видите, некоторые методы влияют только на одну метрику. Начинайте с низкой сложности — они часто дают наибольший эффект при минимальных трудозатратах.
Этот чек-лист мы используем на проектах. Он помогает быстро пройтись по основным точкам и не упустить важное.
Шаг 1. Замер и аудит
Шаг 2. Работа с изображениями
Шаг 3. Сервер и кэширование
Шаг 4. Шрифты
Шаг 5. JavaScript
Шаг 6. CSS
Шаг 7. Проверка и мониторинг
Даже опытные разработчики наступают на одни и те же грабли. Вот что мы видим чаще всего:
Ошибка 1. Оптимизация только главной страницы. Google оценивает весь сайт. Если главная зелёная, а карточки товаров красные, общий статус будет плохим. Проверяйте все типы страниц.
Ошибка 2. Игнорирование мобильных. Мобильный трафик часто превышает десктопный, а метрики на смартфонах хуже из-за слабого железа и медленного интернета. Всегда тестируйте на мобильных.
Ошибка 3. Слишком агрессивная ленивая загрузка. Если поставить `loading="lazy"` на LCP-изображение, оно загрузится с задержкой, и LCP ухудшится. Ленивая загрузка — только для контента ниже первого экрана.
Ошибка 4. Надежда на плагины. Плагины для кэширования и оптимизации могут помочь, но они не решают всех проблем. Иногда они сами создают новые: например, объединяют скрипты так, что порядок нарушается, и сайт ломается.
Ошибка 5. Отсутствие мониторинга. Один раз исправили и забыли. Но сайт обновляется, добавляются новые скрипты и картинки. Метрики могут снова упасть. Нужен регулярный контроль.
Core Web Vitals — это не страшно. Большинство проблем решается без переписывания сайта: сжатием картинок, правильными атрибутами, настройкой кэширования и порядком загрузки скриптов. Начните с замера, выберите самую проблемную метрику и действуйте по чек-листу. Уже через месяц вы увидите улучшения в Search Console, а пользователи — более быстрый и стабильный сайт. Помните: скорость — это не разовая акция, а процесс. Удачи!
Да, в большинстве случаев достаточно точечных правок: оптимизации изображений, настройки кэширования, исправления шрифтов и скриптов. Полная переделка требуется редко — обычно когда сайт собран на устаревшей CMS с тяжёлым конструктором.
С замера текущих значений в PageSpeed Insights и Search Console. Смотрите на реальные данные пользователей (поле CrUX), а не только на лабораторные. Затем выбираете самую проблемную метрику и работаете над ней.
Все три влияют на ранжирование, но LCP обычно даёт наибольший эффект, так как связан с восприятием скорости. INP важен для интерактивности, CLS — для визуальной стабильности. Начинайте с LCP, если он в красной зоне.
Раз в месяц смотрите отчёт в Search Console. После любых изменений на сайте — сразу. Если заметили падение, проверяйте в течение недели: CrUX обновляется с задержкой.
Яндекс официально не использует термин Core Web Vitals, но учитывает скорость загрузки и стабильность вёрстки в своих алгоритмах. Улучшая метрики, вы косвенно улучшаете и Яндекс-факторы.
Оставьте контакт — пришлём расчёт и предложим решение под вашу задачу. Ни к чему не обязывает.
Без навязчивых звонков · Смета бесплатно · Оплата поэтапно по договору
или позвоните: +7 (495) 487-44-70