PageSpeed Insights (PSI) — это инструмент Google для анализа производительности веб-страниц. Он оценивает скорость загрузки и интерактивность страниц на основе двух источников данных: лабораторных метрик и полевых данных. Лабораторные данные собираются в контролируемой среде с помощью движка Lighthouse, что позволяет воспроизводить тесты на разных устройствах и соединениях. Полевые данные формируются из реальных сеансов пользователей и агрегируются в Chrome User Experience Report (CrUX).
Core Web Vitals включают три ключевые метрики, отражающие пользовательский опыт:
Largest Contentful Paint (LCP)
First Input Delay (FID)
Cumulative Layout Shift (CLS)
CrUX предоставляет полевые данные, которые собираются из реальных сеансов пользователей Chrome, что позволяет видеть производительность сайта на разных устройствах, сетевых условиях и географических регионах.
Особенности CrUX:
CrUX особенно ценен для оценки производительности крупных сайтов с большим количеством посетителей. Лабораторные тесты могут показывать оптимистичные результаты, в то время как реальные пользователи сталкиваются с разными условиями сети и устройств.
Для измерения Core Web Vitals непосредственно на странице существует
библиотека web-vitals. Она позволяет получать метрики в
реальном времени и отправлять их на сервер для анализа.
Установка библиотеки через npm:
npm install web-vitals
Пример использования:
import { getCLS, getFID, getLCP } from 'web-vitals';
getCLS(console.log); // вывод значения CLS в консоль
getFID(console.log); // вывод значения FID в консоль
getLCP(console.log); // вывод значения LCP в консоль
Метрики можно также отправлять на сервер для хранения и анализа:
function sendToAnalytics(metric) {
const body = JSON.stringify(metric);
navigator.sendBeacon('/analytics', body);
}
getCLS(sendToAnalytics);
getFID(sendToAnalytics);
getLCP(sendToAnalytics);
PageSpeed Insights использует CrUX как источник полевых данных, чтобы оценить пользовательский опыт реальных посетителей сайта. Лабораторные метрики Lighthouse позволяют идентифицировать конкретные узкие места на странице, а CrUX показывает, как эти узкие места влияют на реальных пользователей.
Пример отчета PSI включает:
Такой подход позволяет сочетать прогнозируемый анализ и наблюдения за реальным пользовательским опытом.
Сравнение лабораторных и полевых метрик Лабораторные данные помогают разработчику локализовать проблемные участки, а CrUX показывает, насколько изменения реально повлияли на пользователей.
Мониторинг на сервере Отправка Web Vitals с
помощью navigator.sendBeacon позволяет собирать данные от
пользователей в реальном времени без задержки для них.
Анализ трендов CrUX предоставляет исторические данные, что позволяет отслеживать улучшения производительности после оптимизации ресурсов.
Приоритет Core Web Vitals LCP, FID и CLS — это метрики, влияющие на поисковый рейтинг и опыт пользователей. Их оптимизация повышает скорость, отзывчивость и визуальную стабильность страниц.