В библиотеке Web Vitals Google использует различные показатели для оценки производительности веб-страниц, включая LCP (Largest Contentful Paint), FID (First Input Delay) и CLS (Cumulative Layout Shift). Одним из ключевых принципов анализа является использование 75-го перцентиля (p75) для оценки пользовательского опыта. Это решение не случайно и имеет глубокие основания в аналитике и практике веб-разработки.
p75 — это статистический показатель, который определяет значение метрики, ниже которого находятся 75% пользователей. Другими словами, если рассматривать все измерения LCP на сайте за определённый период, значение p75 показывает, что 75% пользователей видят загрузку страницы быстрее этого времени, а 25% — медленнее.
Пример:
[800, 900, 950, 1000, 1100, ..., 3000] Значение
p75 будет таким, что 75 пользователей видят LCP меньше
или равно этому значению.Среднее значение искажается крайними показателями Среднее арифметическое чувствительно к выбросам. Например, если большинство пользователей видят LCP около 1 секунды, но у нескольких пользователей — 10 секунд из-за медленных сетей, среднее будет выше реальной нормы и не отражает типичный опыт большинства.
Фокус на большинстве пользователей p75 фиксирует показатель, который важен для основной аудитории, исключая редкие экстремальные случаи. Это позволяет разработчикам концентрироваться на улучшении опыта большинства посетителей.
Согласованность с практиками индустрии Использование перцентилей, а не средних, соответствует практике измерений производительности, принятой в аналитике приложений и веб-сервисов, где крайне важен опыт большинства пользователей, а не статистическая средняя.
LCP (Largest Contentful Paint) p75 показывает, за какое время загружается основной контент страницы для большинства пользователей. Цель: не просто минимизировать LCP для «среднего» пользователя, а убедиться, что три четверти аудитории видят страницу быстро.
FID (First Input Delay) p75 фиксирует задержку реакции страницы на первый ввод пользователя для большинства. Даже если несколько пользователей сталкиваются с экстремально долгой задержкой, это не искажает показатель для основной аудитории.
CLS (Cumulative Layout Shift) p75 позволяет оценить, насколько стабильна страница при загрузке для большинства пользователей, игнорируя редкие ситуации с аномальными сдвигами верстки.
Для получения значения p75 используется агрегация данных из RUM (Real User Monitoring):
import { getLCP } from 'web-vitals';
getLCP(metric => {
console.log('LCP p75:', metric.value);
});
На сервере или в аналитической системе собираются все значения метрики и вычисляется 75-й перцентиль:
Math.ceil(0.75 * количество_измерений) - 1.Использование p75 в Web Vitals обеспечивает баланс между реальным опытом большинства пользователей и устойчивостью метрик к выбросам. Это позволяет веб-разработчикам и владельцам сайтов оптимизировать производительность не для редких случаев, а для основного потока аудитории, что напрямую влияет на удовлетворённость пользователей и рейтинг в поисковой выдаче Google.
Хотите, я могу дополнительно подробно разобрать алгоритм расчёта p75 для больших потоков данных в реальном времени с примером на Node.js и визуализацией распределения LCP?