Метрики и измерения
Core Web Vitals
MUST
- Следить за LCP, INP, CLS в продакшене.
- Использовать реальные пользовательские данные (RUM), а не только лабораторные.
SHOULD
- Фиксировать базовую линию метрик перед оптимизациями.
- Отслеживать регрес сии в CI/CD и релизах.
Источники данных
Подходы
- Field data (RUM): реальные пользователи.
- Lab data: Lighthouse / DevTools.
Инструменты
- Chrome DevTools Performance
- Lighthouse
- CrUX Vis
Диагностика проблем
LCP
Частые причины:
- тяжелые изображения на первом экране
- блокирующие ресурсы
- долгие серверные ответы
INP
Частые причины:
- длинные синхронные обработчики
- тяжелые вычисления в main thread
- лишние ререндеры
CLS
Частые причины:
- изображения без размеров
- поздние вставки контента
- динамические шрифты без резерва
Пример: базовый измеритель INP (RUM)
import { onINP } from 'web-vitals';
onINP((metric) => {
// отправить в аналитику
sendMetric('INP', metric.value);
});
Процедуры контроля (Code Review)
Ревьюер должен убедиться, что:
- ключевые метрики измеряются
- изменения не ухудшают LCP/INP/CLS
- тяжелые операции вынесены из main thread