Saltar al contenido
Construcción, optimización y experimentos web[email protected]
La Trastienda WebLo que pasa detrás de una web
Experimentos

Cómo montar un experimento web: laboratorio frente a datos de campo

Un método sencillo para saber si un cambio en tu web mejoró algo: hipótesis escrita, línea base, Lighthouse para el laboratorio y CrUX o web-vitals para el campo.

Por Redacción de La Trastienda WebPublicado el 8 min de lectura
Mesa de trabajo con un cuaderno de registro, un cronómetro y un navegador esquemático con una gráfica de barras antes y después

Cambias el formato de la imagen principal, pasas PageSpeed Insights, la puntuación sube ocho puntos y lo das por bueno. Al día siguiente vuelves a pasarlo y ha bajado cinco. Sin un método, cualquier cambio parece funcionar o fallar según el momento en que mires. Aquí tienes una forma modesta pero ordenada de montar un experimento en una web pequeña: qué anotar antes, qué herramienta responde a cada pregunta y cuánto esperar antes de leer los datos de usuarios reales.

Antes de tocar nada: la hipótesis por escrito

Un experimento empieza con una frase que se pueda refutar. «Quiero que la web vaya más rápida» no sirve. «Si sirvo la imagen principal en AVIF con fetchpriority="high", el LCP móvil de la ficha de producto bajará de 3,4 s a menos de 2,5 s» sí sirve: nombra el cambio, la métrica, el tipo de dispositivo, la página y el resultado esperado.

Escribirla antes tiene una ventaja práctica: te obliga a elegir la métrica correcta. Si el cambio afecta a la carga de una imagen, mira LCP; si afecta al JavaScript que responde a clics, mira INP en campo y TBT (Total Blocking Time, tiempo total de bloqueo) en laboratorio; si toca la reserva de espacio de un anuncio, mira CLS. Los umbrales de cada una están en LCP, INP y CLS: qué miden y con qué umbrales se evalúan.

Una variable cada vez

Si en el mismo despliegue comprimes imágenes, quitas un plugin y cambias de tipografía, y el LCP mejora, no sabrás cuál de las tres cosas ayudó, ni si una de ellas empeoró algo que las otras compensaron. La regla es aburrida y eficaz: un cambio por experimento. Si tienes prisa, al menos agrupa cambios que actúen sobre métricas distintas y anota cuál esperas que mueva cada una.

Laboratorio y campo responden preguntas distintas

Según la documentación de PageSpeed Insights (PSI), los datos de laboratorio se generan con Lighthouse simulando la carga de la página en un único dispositivo y con unas condiciones de red fijas; los datos de campo vienen de usuarios reales de Chrome, en dispositivos y redes variados, agregados en el informe CrUX (Chrome UX Report). La consecuencia, que web.dev desarrolla en su artículo sobre las diferencias entre ambos, es que no tienen por qué coincidir y que ninguno de los dos es «el bueno»: cada uno sirve para algo.

Comparación en dos columnas entre datos de laboratorio de Lighthouse y datos de campo de CrUX: dispositivo, red, periodo, métrica de interactividad y uso de cada uno
Laboratorio para diagnosticar y comparar versiones al momento; campo para confirmar el efecto en usuarios reales, con semanas de retraso.
Qué aporta cada fuente de datos
AspectoLaboratorio (Lighthouse, PSI)Campo (CrUX)Campo propio (web-vitals JS)
Quién carga la páginaUn navegador automatizado con red y CPU limitadasUsuarios reales de Chrome que comparten estadísticasTus visitantes con navegadores compatibles
PeriodoUna carga, ahoraVentana móvil de los últimos 28 díasEl que tú definas
InteractividadTBT (no hay usuario que haga clic)INPINP
AgregaciónUn valor por ejecuciónPercentil 75 por tipo de dispositivoLa que calcules (conviene p75)
Uso típicoDiagnosticar y comparar antes/después enseguidaConfirmar el efecto real; es la fuente que usa Search ConsoleVer el efecto en días y por página, sin esperar a CrUX

La ventana de 28 días de CrUX

PSI indica que sus datos de campo describen la experiencia de los usuarios durante el periodo de recogida de los 28 días anteriores y que se actualizan a diario. Es una ventana que se desplaza: cada día entra un día nuevo y sale el más antiguo. Si cambias algo el día 0, el día 7 sólo una cuarta parte de la ventana refleja la versión nueva; el día 14, la mitad; hasta el día 28 la ventana no contiene únicamente datos posteriores al cambio (suponiendo tráfico constante).

Además, si la URL no tiene suficientes muestras, PSI recurre a los datos del origen completo (todas las páginas del sitio), y si el origen tampoco llega, no muestra datos de campo. En una web con poco tráfico, eso significa que a menudo no podrás medir en CrUX una página concreta.

Gráfica de la proporción de datos posteriores al cambio dentro de la ventana de 28 días de CrUX: 0 % el día 0, 25 % el día 7, 50 % el día 14, 75 % el día 21 y 100 % el día 28
Con tráfico constante, la parte de la ventana que refleja el cambio crece de forma lineal y llega al 100 % el día 28.

web-vitals: no esperar a CrUX

La biblioteca web-vitals (repositorio GoogleChrome/web-vitals) expone funciones como onLCP, onINP y onCLS que reciben el valor medido en el navegador de cada visitante. Tú decides adónde enviarlo: a tu analítica o a un registro propio. Su ventaja para experimentar es que puedes separar datos por fecha exacta del despliegue y por página, sin la mezcla de la ventana de 28 días. Su compilación de atribución (web-vitals/attribution) añade qué elemento causó el valor, útil para saber qué imagen fue el LCP o qué nodo se desplazó.

import {onLCP, onINP, onCLS} from 'web-vitals';

function enviar(metrica) {
  navigator.sendBeacon('/vitals', JSON.stringify({
    nombre: metrica.name,
    valor: metrica.value,
    pagina: location.pathname
  }));
}
onLCP(enviar);
onINP(enviar);
onCLS(enviar);

El endpoint /vitals es un ejemplo: necesitas algo en el servidor que guarde esos datos, y calcular tú el percentil 75 por día y por plantilla.

La línea base

Sin una medida previa no hay comparación. La línea base se toma en las mismas condiciones que usarás después: misma URL, mismo tipo de dispositivo, misma herramienta y misma configuración. En laboratorio, la documentación de variabilidad de Lighthouse recomienda no fiarse de una ejecución suelta y usar valores agregados, como la mediana; según ese documento, la mediana de cinco ejecuciones es el doble de estable que una sola. En Por qué PageSpeed Insights da una puntuación distinta cada vez tienes el cálculo detallado.

En campo, anota el p75 de CrUX del día del cambio, para móvil y escritorio por separado, y guarda una captura: dentro de 28 días ese número ya no estará en pantalla.

Plantilla de registro de experimento

Una hoja de cálculo o un archivo de texto basta. Lo que importa es rellenarla antes del cambio y no retocarla después para que cuadre.

Columnas recomendadas para cada experimento
ColumnaQué escribirEjemplo
ID y fecha de despliegueIdentificador y día exacto del cambio en producciónEXP-07 · 2026-09-01
HipótesisCambio → métrica → resultado esperadoAVIF + fetchpriority bajará el LCP móvil por debajo de 2,5 s
Variable cambiadaUna solaFormato y prioridad de la imagen principal
Página y dispositivoURL o plantilla; móvil o escritorio/producto/*, móvil
Métrica principalLa que decide el resultadoLCP
Métricas de controlLas que no deberían empeorarCLS, TBT
Línea base de laboratorioMediana de N ejecuciones y configuración3,4 s (mediana de 5, PSI móvil)
Línea base de campop75 de CrUX o de web-vitals y periodo3,1 s (CrUX, 28 días a 2026-09-01)
Fecha de lecturaCuándo se mirará el campo2026-09-29 (día 28)
Resultado y decisiónValores finales y qué haces: mantener, revertir, repetirPendiente

Ejemplo trabajado (hipotético)

Ejemplo de cálculo

Supongamos una tienda pequeña cuya ficha de producto tiene una foto principal JPEG de 310 KB. Hipótesis: servirla en AVIF (unos 95 KB) y con fetchpriority="high" bajará el LCP móvil por debajo de 2,5 s.

Línea base de laboratorio. Cinco ejecuciones de PSI en móvil dan un LCP de 3,6 / 3,3 / 3,4 / 4,1 / 3,2 s. Ordenadas: 3,2 – 3,3 – 3,4 – 3,6 – 4,1. Mediana: 3,4 s.

Después del cambio. Cinco ejecuciones: 2,7 / 2,4 / 2,6 / 2,5 / 3,0 s. Mediana: 2,6 s. Mejora de laboratorio: 0,8 s, un 24 %. La peor ejecución de después (3,0 s) es mejor que la mejor de antes (3,2 s), lo que da cierta confianza en que la diferencia no es ruido.

Campo. El p75 de CrUX en móvil era 3,1 s. Supón que web-vitals, separando por fecha, muestra un p75 de 2,4 s para las visitas posteriores al cambio. El día 14, con tráfico constante, la mitad de la ventana es nueva y el p75 de CrUX estará en algún punto entre ambos valores, quizá hacia 2,7–2,8 s (los percentiles de dos mezclas no se promedian de forma exacta; tómalo como orientación). Sólo a partir del día 28 el p75 de CrUX debería acercarse a 2,4 s.

Decisión. Se lee el día 28. Si el p75 está por debajo de 2,5 s y ni CLS ni TBT han empeorado, se mantiene y se extiende a otras plantillas. Fíjate en que el laboratorio (2,6 s) no cruzó el umbral y el campo sí: no es una contradicción, son condiciones distintas.

Tres errores que invalidan el experimento

Cambiar tres cosas a la vez

Es el error más común porque los despliegues reales mezclan cambios. Si no puedes evitarlo, anota todo lo que entró en ese despliegue, incluidas actualizaciones de plugins o del tema, y acepta que el resultado es del conjunto, no de cada pieza.

Comparar móvil con escritorio

Lighthouse en móvil simula un dispositivo de gama media con red lenta; en escritorio usa otra configuración mucho más rápida. CrUX también separa los datos por tipo de dispositivo. Una línea base de escritorio comparada con un resultado de móvil no mide nada. Fija el tipo de dispositivo en la plantilla y respétalo en cada lectura.

Leer un solo test

Una ejecución aislada de Lighthouse puede variar varios puntos sin que la página cambie: red, carga del servidor, anuncios distintos en cada carga. Una lectura de CrUX el día 3 tampoco vale, porque la ventana todavía es casi toda antigua. Medianas en laboratorio y ventana completa en campo.

Lista de comprobación antes de dar un resultado por bueno

  • La hipótesis estaba escrita antes del cambio, con métrica, página, dispositivo y valor esperado.
  • Sólo cambió una variable, o están anotadas todas las que cambiaron.
  • Línea base y resultado usan la misma herramienta, configuración y tipo de dispositivo.
  • En laboratorio se comparan medianas de al menos cinco ejecuciones.
  • En campo han pasado 28 días desde el despliegue, o tienes datos propios de web-vitals separados por fecha.
  • Las métricas de control (por ejemplo, CLS si tocaste imágenes) no han empeorado.
  • El resultado y la decisión quedaron escritos, también si el experimento falló.

Cuándo no merece la pena tanto rigor: si el problema es evidente (una imagen de 4 MB en la portada, un script bloqueante olvidado), arréglalo y ya está. El método sirve para decisiones con coste o con dudas, como elegir entre dos maneras de cargar fuentes o decidir cuánto JavaScript admite una plantilla. Para lo segundo, el siguiente paso es Presupuesto de rendimiento: cómo calcularlo con números.

Cómo se ha elaborado este artículo

Este artículo se basa en la documentación oficial de PageSpeed Insights, en el artículo de web.dev sobre diferencias entre datos de laboratorio y de campo, en la documentación de CrUX, en el documento de variabilidad de Lighthouse y en el repositorio de la biblioteca web-vitals. El ejemplo trabajado es hipotético y sus cifras son ilustrativas; no corresponde a pruebas propias.

Fuentes consultadas

  1. Google for Developers: About PageSpeed Insights
  2. web.dev: Why lab and field data can be different (and what to do about it)
  3. Chrome for Developers: Overview of CrUX
  4. GoogleChrome (GitHub): web-vitals
  5. GoogleChrome (GitHub): Lighthouse Variability

¿Has visto un dato erróneo o desactualizado? Escribe a [email protected] indicando la URL. Las correcciones se aplican según la política editorial.