Chrome User Experience Report (CrUX)

CrUX (Chrome User Experience Report) — публичный датасет от Google с реальными данными производительности (Core Web Vitals) миллионов сайтов, собранными от анонимных пользователей Chrome с включённой синхронизацией истории.

Зачем нужно

CrUX — это данные реальных пользователей (field data), в отличие от лабораторных тестов Lighthouse. Именно CrUX влияет на ранжирование в Google Search через Page Experience сигнал. Анализ CrUX показывает реальные метрики на разных устройствах и соединениях.

Где используется

  • Google Search Console — CrUX данные для конкретного сайта
  • PageSpeed Insights — сравнение lab vs field данных
  • Анализ производительности конкурентов
  • Проверка влияния оптимизаций на реальных пользователей

Основной контент

Источники доступа к CrUX

1. Google Search Console — Core Web Vitals отчёт (бесплатно, для своего сайта)
2. PageSpeed Insights    — https://pagespeed.web.dev (бесплатно, любой URL)
3. CrUX API             — REST API для программного доступа (бесплатно, ключ API)
4. BigQuery             — полный датасет, SQL-запросы (платно по объёму)
5. CrUX Dashboard       — Data Studio дашборд (бесплатно)

CrUX API — получение данных программно

// Метрики для конкретного URL
const API_KEY = process.env.CRUX_API_KEY;

async function getCruxData(url) {
  const response = await fetch(
    `https://chromeuxreport.googleapis.com/v1/records:queryRecord?key=${API_KEY}`,
    {
      method: 'POST',
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify({
        url,
        metrics: ['largest_contentful_paint', 'cumulative_layout_shift', 'interaction_to_next_paint'],
        formFactor: 'PHONE', // PHONE, DESKTOP, ALL_FORM_FACTORS
      }),
    }
  );

  const data = await response.json();
  return data.record?.metrics;
}

const metrics = await getCruxData('https://example.com/');
const lcp = metrics?.largest_contentful_paint;
console.log(`LCP p75: ${lcp?.percentiles?.p75}ms`);
console.log(`Good: ${lcp?.histogram?.[0]?.density * 100}%`);
// Good: <2500ms, Needs Improvement: 2500-4000ms, Poor: >4000ms

BigQuery — анализ конкурентов

-- Сравнение LCP с конкурентами (публичный датасет)
SELECT
  origin,
  ROUND(experimental.lcp.p75 / 1000, 2) AS lcp_p75_sec,
  ROUND(experimental.cls.p75, 3) AS cls_p75
FROM `chrome-ux-report.materialized.origin_summary`
WHERE origin IN (
  'https://example.com',
  'https://competitor1.com',
  'https://competitor2.com'
)
ORDER BY lcp_p75_sec;

Интерпретация данных CrUX

Пороговые значения (75-й перцентиль):
LCP: Good < 2.5s | NI 2.5-4.0s | Poor > 4.0s
INP: Good < 200ms | NI 200-500ms | Poor > 500ms
CLS: Good < 0.1  | NI 0.1-0.25 | Poor > 0.25

Статус сайта в Google Search:
- Все метрики "Good" → "Good" статус
- Хотя бы одна "Poor" → "Poor" статус
- Остальное → "Needs Improvement"

Частые ошибки

  • Путать CrUX (field data) и Lighthouse (lab data) — они могут сильно различаться
  • CrUX обновляется раз в 28 дней — оптимизации не видны мгновенно
  • Отсутствие данных для нового сайта — CrUX требует минимального порога трафика
  • Анализ только desktop, игнорируя phone — большинство трафика с mobile

Связанные темы

Ресурсы