Cos'è CrUX
CrUX (Chrome UX Report) è un dataset ufficiale di Google che raccige dati di performance reali dalle pagine web, basati sulle visite degli utenti Chrome che hanno aderito alla statistica. A differenza dei test sintetici (Lighthouse), CrUX mostra come si comporta una pagina sul campo. I dati sono anonimizzati e aggregati su una finestra mobile di 28 giorni.
Quali metriche raccoglie CrUX
CrUX include le metriche chiave di performance che riflettono l'esperienza utente:
- LCP (Largest Contentful Paint): tempo di render dell'elemento più grande (buono ≤ 2,5 s).
- INP (Interaction to Next Paint): ritardo di interazione (buono ≤ 200 ms). Sostituisce la FID.
- CLS (Cumulative Layout Shift): instabilità del layout (buono ≤ 0,1).
- FCP (First Contentful Paint): primo render del contenuto (buono ≤ 1,8 s).
- TTFB (Time to First Byte): tempo di risposta del server (buono ≤ 800 ms).
CrUX presents metrics as a distribution:
- 'good' → percentage of users meeting the threshold
- 'needs improvement'
- 'poor'
Example: LCP: good: 85%, needs: 10%, poor: 5%Dove si usa CrUX
- PageSpeed Insights: la scheda «Field Data» viene da CrUX. Se una pagina non è nel dataset, vedrai solo i dati da laboratorio.
- Google Search Console → report Core Web Vitals: usa anch'esso i dati CrUX, raggruppati per URL o gruppo di pagine.
- API CrUX: accesso programmatico per gli sviluppatori (interroga le metriche di qualsiasi sito con traffico sufficiente).
- BigQuery: dataset CrUX pubblico per analisi avanzate (richiede competenze SQL).
Requisiti per entrare in CrUX
Perché un sito o una pagina specifica compaia nei report CrUX devono essere soddisfatte alcune condizioni:
- Traffico Chrome sufficiente: un numero minimo di visitatori reali (soglia esatta ignota, tipicamente qualche centinaio di visualizzazioni uniche in 28 giorni).
- Sito pubblico: non dietro login, non localhost, non staging.
- HTTPS: la maggior parte dei siti moderni lo usa; senza HTTPS i dati potrebbero non essere raccolti.
- Statistiche attive: gli utenti non devono bloccare l'invio dei dati (in Chrome l'impostazione predefinita è attiva).
API CrUX
L'API CrUX permette di ottenere programmaticamente le metriche per qualsiasi URL o origin. Utile per il monitoraggio automatico dei Core Web Vitals.
// Example CrUX API request (JavaScript)
const response = await fetch('https://chromeuxreport.googleapis.com/v1/records:queryRecord?key=YOUR_API_KEY', {
method: 'POST',
body: JSON.stringify({
origin: 'https://example.com',
formFactors: ['PHONE', 'DESKTOP']
})
});
const data = await response.json();
console.log(data.record.metrics);