CrUX: qué contiene y qué se deja fuera
El conjunto de datos público de experiencia de usuario de Chrome: criterios de inclusión, ventanas de agregación por herramienta, y los seis límites que hay que conocer antes de fiarse de él.
CrUX es la única fuente pública de datos de rendimiento de usuarios reales, y por eso alimenta PageSpeed Insights, Search Console y prácticamente cualquier herramienta comercial de análisis. Es enormemente útil y tiene límites concretos que conviene conocer con precisión, porque decidir sobre datos cuyo alcance no entiendes es peor que no tener datos.
- Enumerar los criterios de elegibilidad de usuario, origen y página.
- Distinguir la ventana de agregación de cada herramienta que expone CrUX.
- Explicar qué tráfico queda fuera del conjunto y cómo sesga los resultados.
- Elegir la herramienta adecuada según la pregunta que quieras responder.
Quién entra en el conjunto
Para que la experiencia de un usuario se agregue a CrUX tienen que cumplirse simultáneamente cuatro condiciones de usuario, y las de origen y página.
Condiciones de usuario. El usuario debe tener activado el envío de estadísticas de uso, tener sincronizado su historial de navegación, no tener configurada una frase de contraseña de sincronización, y usar una plataforma soportada.
Las plataformas soportadas son las versiones de escritorio de Chrome en Windows, macOS, ChromeOS y Linux, y Chrome en Android, incluidas las aplicaciones móviles que usan pestañas personalizadas y las aplicaciones web empaquetadas.
Y aquí lo importante: quedan fuera Chrome en iOS, las aplicaciones Android que usan WebView, y cualquier otro navegador basado en Chromium, incluido Edge. Por supuesto, tampoco entran Safari ni Firefox.
Condiciones de origen y página. Un origen o una página deben ser públicamente descubribles y suficientemente populares. Descubrible significa indexable según los mismos criterios que usa un buscador: no se incluye una página que responda con un código distinto de 200 tras redirecciones, que lleve la cabecera X-Robots-Tag: noindex, o que tenga la etiqueta <meta name="robots" content="noindex">. Suficientemente popular significa superar un umbral mínimo de visitantes que no se publica, y que es el mismo para páginas que para orígenes.
Si una página no llega al umbral, no habrá datos a nivel de página, pero sus experiencias sí cuentan para el agregado del origen, siempre que el origen sea descubrible.
En mercados donde iOS tiene cuota alta, una parte sustancial de tu tráfico móvil real no está representada en CrUX bajo ninguna circunstancia, ni siquiera si el usuario usa Chrome, porque en iOS todos los navegadores usan el motor del sistema. Si tu producto tiene un sesgo fuerte hacia iOS, los datos de CrUX describen a la otra mitad de tus usuarios. Es la razón más fuerte para montar instrumentación propia además de mirar CrUX.
Las ventanas de agregación, herramienta por herramienta
Este punto se confunde constantemente y tiene consecuencias directas en cuánto hay que esperar para ver el efecto de un cambio. No hay una única ventana de CrUX: depende de la herramienta.
| Herramienta | Frecuencia | Histórico | Nivel |
|---|---|---|---|
| API de CrUX | Media móvil de 28 días, actualizada a diario | No | Origen y página |
| API de histórico de CrUX | Semanal, los lunes | Últimos 40 periodos de 28 días | Origen y página |
| CrUX Vis | Semanal | Últimos 40 periodos | Origen y página |
| PageSpeed Insights y su API | Media móvil de 28 días, actualizada a diario | No | Origen y página |
| Search Console | Media móvil de 28 días, actualizada a diario | Tres meses | Grupos de páginas |
| CrUX en BigQuery | Mensual | Desde 2017 | Solo origen |
La agregación mensual es exclusiva del conjunto de datos de BigQuery, que se publica el segundo martes posterior al periodo de recogida e incluye los últimos 28 días de cada mes. Todo lo demás, que es lo que consulta casi todo el mundo, es una media móvil de 28 días actualizada a diario.
La implicación práctica es de calendario. Si despliegas una mejora hoy, mañana el percentil 75 de la API de CrUX incorpora un día bueno y veintisiete anteriores. El efecto completo tarda 28 días en verse, y a mitad de camino verás una mejora parcial que es aritmética, no ruido. Planifica las verificaciones sabiendo esto y no saques conclusiones a los tres días.
BigQuery tiene otras dos características que conviene tener presentes: solo contiene datos a nivel de origen, no de página, y los percentiles se interpretan a partir de histogramas de granularidad gruesa, con lo cual son aproximados. A cambio, es la única fuente que permite cruzar todas las dimensiones disponibles, incluido el país y el tipo de conexión efectiva, y la única con histograma completo.
Qué le hace CrUX a los datos
Tres tratamientos que hay que conocer.
Normalización de URL. Los parámetros de consulta y los fragmentos se eliminan de la URL antes de agregar. Es decir, pagina.html?utm_medium=email y pagina.html#seccion se agregan juntas con pagina.html. Esto suele ser lo que quieres, porque evita fragmentar el tráfico de una misma página. Pero tiene un caso patológico: si tus parámetros distinguen páginas de verdad, como ?productID=101 frente a ?productID=102, todas esas páginas se agregan como una sola y el dato pierde sentido.
Filtrado. Además de los criterios de elegibilidad, se aplica un filtro adicional: los orígenes o páginas con más del 20% de su tráfico total excluido por combinaciones de dimensiones no elegibles se eliminan por completo del conjunto.
Difuminado. Se añade una pequeña cantidad de aleatoriedad para impedir que se deduzcan datos sensibles como el volumen total de tráfico. No afecta a la precisión de los estadísticos agregados.
Y una cuarta característica que no es tratamiento sino atribución: los iframes no se reportan por separado, pero sus métricas contribuyen a las de la página que los contiene. Si pagina.html incrusta marco.html y este último tiene mal CLS, ese CLS se cuenta en pagina.html. Esto es correcto desde el punto de vista del usuario, que no sabe qué es un iframe, y es la principal causa de discrepancia entre CrUX y la instrumentación propia, que sí está ciega a los iframes.
Las aplicaciones de una sola página
Hay un caso que merece mención aparte porque afecta a muchos productos. Cuando una aplicación cambia de vista mediante un mecanismo de enrutado en JavaScript en lugar de una navegación real del navegador, el usuario percibe una página nueva pero la plataforma atribuye toda la experiencia a la carga inicial.
La consecuencia es que las métricas de todas las vistas siguientes se pierden: no hay LCP de la segunda vista, y el CLS y el INP de toda la sesión se acumulan contra la URL de entrada. Esto no es un defecto de CrUX sino una limitación de las APIs de la plataforma sobre las que se construyen las métricas, y afecta igual a tu instrumentación propia.
Elegir herramienta según la pregunta
Con todo lo anterior, la elección es casi mecánica.
- ¿Estoy en verde o en rojo, para esta página, ahora mismo? PageSpeed Insights o la API de CrUX. Datos de los últimos 28 días, a nivel de página si hay suficiente tráfico.
- ¿Cómo ha evolucionado en los últimos meses? API de histórico o CrUX Vis. Cuarenta periodos semanales dan casi diez meses de serie.
- ¿Qué secciones de mi sitio están peor? Search Console, que agrupa páginas de experiencia similar y muestra hasta veinte URLs de ejemplo por grupo.
- ¿Cómo se comporta mi origen por país o por tipo de conexión? ¿Cómo estoy frente a mi sector? BigQuery, la única con todas las dimensiones y con datos de todos los orígenes públicos.
- ¿Qué pasa con el 40% de mi tráfico que CrUX no ve? Instrumentación propia. No hay alternativa.
Un detalle práctico sobre PageSpeed Insights: muestra hasta cuatro conjuntos de datos, móvil y escritorio para esta URL y para el origen completo. Si no hay datos suficientes a nivel de URL, muestra los del origen sin que sea evidente a primera vista. Antes de actuar sobre un dato, comprueba cuál de los cuatro estás mirando; optimizar una página guiándote por el agregado del origen es un clásico.
Como el umbral mínimo de visitantes no se publica y se evalúa periodo a periodo, una página que ronda ese umbral entra y sale del conjunto según fluctúe su tráfico. Cuando sale, la herramienta cae silenciosamente al dato del origen completo, y el origen suele tener números distintos a los de esa página concreta. El resultado es un salto en tu gráfico que no corresponde a ningún cambio de rendimiento: es un cambio de la población medida. Lo he visto interpretarse como una regresión súbita y desencadenar una investigación de dos días que terminó descubriendo que la página había perdido tráfico en agosto. La defensa es guardar siempre, junto al valor, la marca de si el dato es de página o de origen, y no comparar puntos de la serie que no tengan el mismo nivel. Si tu herramienta no expone esa marca, cámbiala por una que sí, porque sin ella tu histórico mezcla dos poblaciones distintas y no sirve para detectar regresiones.