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