Почему Google использует p75

В библиотеке Web Vitals Google использует различные показатели для оценки производительности веб-страниц, включая LCP (Largest Contentful Paint), FID (First Input Delay) и CLS (Cumulative Layout Shift). Одним из ключевых принципов анализа является использование 75-го перцентиля (p75) для оценки пользовательского опыта. Это решение не случайно и имеет глубокие основания в аналитике и практике веб-разработки.

Что такое p75

p75 — это статистический показатель, который определяет значение метрики, ниже которого находятся 75% пользователей. Другими словами, если рассматривать все измерения LCP на сайте за определённый период, значение p75 показывает, что 75% пользователей видят загрузку страницы быстрее этого времени, а 25% — медленнее.

Пример:

  • Для страницы с 100 пользователями LCP в миллисекундах: [800, 900, 950, 1000, 1100, ..., 3000] Значение p75 будет таким, что 75 пользователей видят LCP меньше или равно этому значению.

Почему используется p75, а не среднее значение

  1. Среднее значение искажается крайними показателями Среднее арифметическое чувствительно к выбросам. Например, если большинство пользователей видят LCP около 1 секунды, но у нескольких пользователей — 10 секунд из-за медленных сетей, среднее будет выше реальной нормы и не отражает типичный опыт большинства.

  2. Фокус на большинстве пользователей p75 фиксирует показатель, который важен для основной аудитории, исключая редкие экстремальные случаи. Это позволяет разработчикам концентрироваться на улучшении опыта большинства посетителей.

  3. Согласованность с практиками индустрии Использование перцентилей, а не средних, соответствует практике измерений производительности, принятой в аналитике приложений и веб-сервисов, где крайне важен опыт большинства пользователей, а не статистическая средняя.

p75 для разных Web Vitals

  • LCP (Largest Contentful Paint) p75 показывает, за какое время загружается основной контент страницы для большинства пользователей. Цель: не просто минимизировать LCP для «среднего» пользователя, а убедиться, что три четверти аудитории видят страницу быстро.

  • FID (First Input Delay) p75 фиксирует задержку реакции страницы на первый ввод пользователя для большинства. Даже если несколько пользователей сталкиваются с экстремально долгой задержкой, это не искажает показатель для основной аудитории.

  • CLS (Cumulative Layout Shift) p75 позволяет оценить, насколько стабильна страница при загрузке для большинства пользователей, игнорируя редкие ситуации с аномальными сдвигами верстки.

Применение p75 на практике

Для получения значения p75 используется агрегация данных из RUM (Real User Monitoring):

import { getLCP } from 'web-vitals';

getLCP(metric => {
  console.log('LCP p75:', metric.value);
});

На сервере или в аналитической системе собираются все значения метрики и вычисляется 75-й перцентиль:

  1. Сортируются все измерения по возрастанию.
  2. Определяется индекс: Math.ceil(0.75 * количество_измерений) - 1.
  3. Полученное значение соответствует p75, которое фиксируется для отчетности.

Преимущества использования p75

  • Снижение влияния выбросов — минимизируется эффект пользователей с крайне медленным соединением или нестабильным устройством.
  • Чёткая цель оптимизации — разработчики понимают, какого уровня производительности должны достичь, чтобы удовлетворить большинство.
  • Соответствие метрикам Google — Google использует p75 для Core Web Vitals в алгоритмах ранжирования, поэтому фокус на этом показателе напрямую влияет на SEO.

Различие между p50, p75 и p90

  • p50 (медиана) отражает средний пользовательский опыт, но игнорирует 50% самых медленных сессий. Может быть слишком оптимистичным.
  • p75 отражает опыт практически всех пользователей и служит золотой серединой.
  • p90 фиксирует показатели для 90% пользователей, что полезно для продвинутого анализа экстремальных сценариев, но не является стандартом Core Web Vitals.

Заключение по концепции

Использование p75 в Web Vitals обеспечивает баланс между реальным опытом большинства пользователей и устойчивостью метрик к выбросам. Это позволяет веб-разработчикам и владельцам сайтов оптимизировать производительность не для редких случаев, а для основного потока аудитории, что напрямую влияет на удовлетворённость пользователей и рейтинг в поисковой выдаче Google.

Хотите, я могу дополнительно подробно разобрать алгоритм расчёта p75 для больших потоков данных в реальном времени с примером на Node.js и визуализацией распределения LCP?