Page Experience Signal — это совокупность показателей, отражающих качество взаимодействия пользователя с веб-страницей. Он объединяет как производительность загрузки, так и юзабилити, влияя на ранжирование в поисковых системах и на общую удовлетворённость пользователей. Основной инструмент для измерения этих показателей в браузере — библиотека Web Vitals.
Библиотека Web Vitals предоставляет API для измерения ключевых метрик, которые составляют Page Experience Signal:
Largest Contentful Paint (LCP) Измеряет время, за которое отображается самый крупный видимый элемент контента страницы. Крупный элемент может быть изображением, видео или текстовым блоком. LCP — индикатор скорости загрузки страницы с точки зрения пользователя.
Ключевые моменты реализации:
PerformanceObserver с типом
largest-contentful-paint.Пример использования:
import {getLCP} from 'web-vitals';
getLCP(metric => {
console.log('LCP:', metric.value, 'ms');
});First Input Delay (FID) Оценивает интерактивность страницы, то есть задержку между первым взаимодействием пользователя (клик, тач, клавиша) и моментом, когда браузер способен обработать это событие.
Техническая реализация:
PerformanceObserver для событий
first-input.Пример использования:
import {getFID} from 'web-vitals';
getFID(metric => {
console.log('FID:', metric.value, 'ms');
});Cumulative Layout Shift (CLS) Показывает стабильность визуального контента, измеряя количество неожиданных сдвигов элементов на странице.
Особенности измерения:
Пример использования:
import {getCLS} from 'web-vitals';
getCLS(metric => {
console.log('CLS:', metric.value);
});Additional metrics (необязательные, но полезные)
Их использование помогает более детально анализировать пользовательский опыт.
Web Vitals можно отправлять в системы аналитики для построения полной картины производительности:
import {getLCP, getFID, getCLS} from 'web-vitals';
function sendToAnalytics({name, value}) {
gtag('event', name, {
event_category: 'Web Vitals',
value: Math.round(name === 'CLS' ? value * 1000 : value),
event_label: window.location.pathname,
non_interaction: true,
});
}
getLCP(sendToAnalytics);
getFID(sendToAnalytics);
getCLS(sendToAnalytics);
non_interaction: true), чтобы не искажать стандартные
данные о сессиях.Скорость загрузки (LCP)
preload для крупных изображений и
шрифтов.Интерактивность (FID, INP)
Стабильность страницы (CLS)
Web Vitals строятся на основе PerformanceObserver и событий браузера, позволяя получить объективные, стандартизированные метрики. Использование этих показателей в комбинации с аналитикой позволяет:
Комплексное измерение всех компонентов Page Experience Signal обеспечивает стратегический подход к улучшению веб-продукта, делая его не только быстрым, но и комфортным для взаимодействия.