Core Web Vitals: измерение и улучшение для веб-производительности
Почему Core Web Vitals важны
Вы создали красивый сайт, но пользователи уходят, потому что он кажется медленным. Core Web Vitals — это метрики Google для оценки реального пользовательского опыта: Largest Contentful Paint (LCP), First Input Delay (FID) и Cumulative Layout Shift (CLS). Они влияют на позиции в поиске и, что важнее, на то, останутся ли посетители. Это руководство покажет, как их измерять и улучшать.
Понимание трёх метрик
Каждая метрика отражает разные аспекты загрузки, интерактивности и визуальной стабильности.
| Метрика | Что измеряет | Хороший порог |
|---|---|---|
| LCP | Время отрисовки самого крупного элемента контента (изображение, текстовый блок) | ≤ 2,5 с |
| FID | Время от первого взаимодействия пользователя до ответа браузера | ≤ 100 мс |
| CLS | Визуальная стабильность: неожиданные сдвиги макета | ≤ 0,1 |
Примечание: в 2024 году FID заменяется на Interaction to Next Paint (INP), но принципы оптимизации остаются схожими.
Как измерить Core Web Vitals
Вам нужны как лабораторные, так и полевые данные. Лабораторные инструменты моделируют условия; полевые данные отражают реальных пользователей.
- Chrome DevTools Lighthouse: Запустите аудит на вкладке Lighthouse. Он предоставляет лабораторные оценки и возможности для улучшения.
- PageSpeed Insights: Введите свой URL, чтобы увидеть полевые данные из отчёта Chrome User Experience Report (CrUX) и лабораторные рекомендации.
- Search Console: Проверьте отчёт Core Web Vitals для полевых данных на уровне групп.
- JavaScript-библиотека Web Vitals: Добавьте
web-vitalsна сайт для сбора метрик реальных пользователей.
import {onLCP, onFID, onCLS} from 'web-vitals';
onLCP(console.log);
onFID(console.log);
onCLS(console.log);
Используйте эти данные для выявления закономерностей и приоритизации исправлений.
Улучшение Largest Contentful Paint (LCP)
LCP часто является наиболее значимой метрикой. Оптимизируйте следующие области:
- Оптимизируйте изображения: Сжимайте изображения, используйте WebP или AVIF и предоставляйте адаптивные размеры. Такие инструменты, как Image Compressor, помогают уменьшить размер файла без видимой потери качества.
- Предзагружайте критически важные ресурсы: Используйте
<link rel="preload">для главных изображений и шрифтов. - Устраните ресурсы, блокирующие рендеринг: Встраивайте критический CSS, откладывайте некритический JavaScript.
- Используйте CDN: Отдавайте ресурсы из мест, более близких к пользователям.
- Кэшируйте ресурсы: Устанавливайте длительное время кэширования для статических файлов.
Пример: предзагрузка LCP-изображения:
<link rel="preload" as="image" href="#">
Улучшение First Input Delay (FID)
FID измеряет отзывчивость. Длительные задачи JavaScript блокируют главный поток.
- Разбивайте длительные задачи: Используйте
setTimeoutилиrequestIdleCallback, чтобы уступить главному потоку. - Минимизируйте работу главного потока: Удалите неиспользуемый JavaScript, разделите код и отложите некритические скрипты.
- Используйте веб-воркеры для тяжёлых вычислений.
- Избегайте больших синхронных скриптов: Загружайте сторонние скрипты асинхронно.
Проверьте с помощью возможностей Lighthouse «Minimize main-thread work» и «Reduce JavaScript execution time».
Улучшение Cumulative Layout Shift (CLS)
CLS возникает, когда элементы неожиданно смещаются. Распространённые причины и исправления:
- Изображения без размеров: Всегда указывайте атрибуты
widthиheightили используйте CSSaspect-ratio. - Реклама, встраиваемые элементы, iframe: Резервируйте место с помощью плейсхолдера или контейнера фиксированного размера.
- Динамическое внедрение контента: Избегайте вставки контента выше существующего, если это не вызвано взаимодействием с пользователем.
- Веб-шрифты: Используйте
font-display: swapи предзагружайте шрифты, чтобы избежать невидимого текста или сдвигов макета.
Пример: резервирование места для изображения:
<img src="#" width="800" height="600" alt="...">
Инструменты и рабочий процесс для непрерывного мониторинга
Производительность — это не разовое исправление. Интегрируйте мониторинг в процесс разработки:
- Lighthouse CI: Запускайте аудиты при каждом пул-реквесте, чтобы выявлять регрессии.
- Real User Monitoring (RUM): Используйте библиотеку
web-vitalsи отправляйте данные в вашу аналитическую платформу. - Бюджеты производительности: Устанавливайте пороги для метрик и прерывайте сборки при их превышении.
Регулярно проверяйте PageSpeed Insights и Search Console для отслеживания прогресса.
FAQ
Что такое Core Web Vitals?
Core Web Vitals — это набор метрик, определённых Google, которые измеряют реальный пользовательский опыт: Largest Contentful Paint (загрузка), First Input Delay (интерактивность) и Cumulative Layout Shift (визуальная стабильность).
Как часто нужно измерять Core Web Vitals?
Отслеживайте непрерывно с помощью RUM и запускайте лабораторные аудиты при каждом значительном изменении кода. Проверяйте полевые данные ежемесячно через Search Console или PageSpeed Insights.
Можно ли улучшить Core Web Vitals без разработчика?
Некоторые исправления, такие как сжатие изображений и использование CDN, можно выполнить с помощью плагинов или инструментов, но более глубокая оптимизация часто требует изменений в коде. Начните с изображений и кэширования.
Готовы оптимизировать изображения для лучшего LCP? Попробуйте наш бесплатный Image Compressor, чтобы уменьшить размер файлов без потери качества.