В Web Vitals используются различные методы статистической оценки, чтобы понять, насколько эффективно страница работает для пользователей. Среди таких методов ключевое значение имеют медиана и 75-й перцентиль, поскольку они дают представление о распределении пользовательского опыта.
Медиана — это значение, которое делит набор данных пополам: половина пользователей испытывает результат лучше или равный медиане, а другая половина — хуже. В контексте Web Vitals медиана позволяет оценить типичный опыт пользователя.
Например, если метрика Largest Contentful Paint (LCP) для 100 пользователей имеет медиану 2.5 секунды, это означает, что для 50 пользователей LCP равен или меньше 2.5 секунд, а для остальных 50 — больше. Медиана полезна для выявления типичных сценариев, исключая экстремальные значения, которые могут сильно искажать среднее арифметическое.
75-й перцентиль — это значение, которое показывает, что 75% пользователей имеют результаты лучше или равные этому значению, а 25% — хуже. В метриках Web Vitals 75-й перцентиль используется для оценки худшего пользовательского опыта среди значительной части аудитории, что важно для выявления проблем, влияющих на меньшую, но критически важную группу пользователей.
Пример с LCP: если 75-й перцентиль LCP равен 3.5 секунды, значит 75 пользователей из 100 видят загрузку контента за 3.5 секунды или быстрее, а 25 — медленнее. Это помогает выявлять «узкие места» в производительности, которые могут остаться незамеченными при анализе медианы.
Библиотека web-vitals предоставляет функции для
измерения ключевых метрик, таких как CLS,
FID и LCP, и позволяет агрегировать
данные, чтобы вычислять медиану и 75-й перцентиль.
Пример кода для сбора LCP и расчёта медианы и 75-го перцентиля:
import {getLCP} from 'web-vitals';
const lcpValues = [];
getLCP(metric => {
lcpValues.push(metric.value);
lcpValues.sort((a, b) => a - b);
const medianIndex = Math.floor(lcpValues.length / 2);
const percentile75Index = Math.floor(lcpValues.length * 0.75);
const median = lcpValues[medianIndex];
const percentile75 = lcpValues[percentile75Index];
console.log('LCP медиана:', median);
console.log('LCP 75-й перцентиль:', percentile75);
});
В этом коде значения LCP собираются в массив, сортируются по возрастанию и затем извлекаются медиана и 75-й перцентиль по соответствующим индексам. Такой подход позволяет одновременно отслеживать типичный опыт и выявлять проблемы у значительной части пользователей.
Использование медианы и 75-го перцентиля в Web Vitals является стандартом для оценки производительности. Медиана описывает типичный опыт, а 75-й перцентиль — опыт пользователей с менее удачными условиями, что делает анализ данных более полным и ориентированным на реальных пользователей.
Эти показатели критически важны при мониторинге страниц, особенно на сайтах с большим трафиком и разнообразными устройствами, где производительность может сильно варьироваться между пользователями.