Core Web Vitals: Mide y mejora el rendimiento web
Tu sitio web carga, pero los usuarios siguen abandonándolo. Las interacciones lentas frustran a los visitantes, y los motores de búsqueda lo notan. Core Web Vitals son las métricas de Google para la experiencia de usuario en el mundo real: Largest Contentful Paint (LCP), Interaction to Next Paint (INP) y Cumulative Layout Shift (CLS). En esta guía, te mostraremos cómo medirlas con precisión y mejorarlas con técnicas prácticas a nivel de código.
¿Qué son Core Web Vitals?
Core Web Vitals son un conjunto de métricas que cuantifican aspectos clave de la experiencia de usuario:
- LCP mide el rendimiento de carga. Marca el tiempo en que el elemento de contenido más grande (imagen, bloque de texto, video) se vuelve visible. Objetivo: ≤ 2,5 segundos.
- INP mide la interactividad. Rastrea la latencia de todas las interacciones (clics, toques, pulsaciones de teclas) y reporta la peor. Objetivo: ≤ 200 milisegundos.
- CLS mide la estabilidad visual. Puntúa los cambios de diseño inesperados durante la carga. Objetivo: ≤ 0,1.
Estas métricas forman parte de la señal de Page Experience de Google, pero lo más importante es que reflejan la frustración real de los usuarios. Mejorarlas beneficia tanto al SEO como a las tasas de conversión.
Cómo medir Core Web Vitals
Necesitas datos de laboratorio y de campo. Las herramientas de laboratorio simulan condiciones; los datos de campo provienen de usuarios reales.
Herramientas de laboratorio
- Lighthouse (en Chrome DevTools o CI) proporciona una instantánea con oportunidades de mejora.
- PageSpeed Insights combina datos de laboratorio y de campo del Chrome User Experience Report (CrUX).
- WebPageTest ofrece scripting avanzado y vistas de tira de película.
Herramientas de campo
- Chrome UX Report (CrUX) muestra datos agregados de usuarios reales para tu origen.
- La librería web-vitals te permite recopilar métricas de usuarios reales y enviarlas a tu analítica.
- Search Console informa el estado de Core Web Vitals de tu sitio.
Empieza consultando PageSpeed Insights para tus páginas clave. Después, configura la monitorización de usuarios reales con la librería web-vitals para hacer seguimiento del rendimiento a lo largo del tiempo.
Mejorar LCP
LCP suele ser la métrica más impactante de corregir. El elemento más grande normalmente es una imagen hero o un bloque de texto grande.
1. Optimiza la ruta crítica
- Reduce el tiempo de respuesta del servidor (TTFB) con caché, CDNs y código backend eficiente.
- Elimina los recursos que bloquean el renderizado: incrusta el CSS crítico, difiere el CSS y JavaScript no críticos.
- Precarga la imagen LCP:
<link rel="preload" as="image" href="#">.
2. Optimiza las imágenes
- Usa formatos modernos como WebP o AVIF.
- Sirve imágenes responsive con
srcsetysizes. - Comprime las imágenes sin pérdida visible de calidad. Para una compresión rápida, prueba nuestro Compresor de Imágenes.
3. Mejora la respuesta del servidor
- Usa una CDN para cachear activos estáticos globalmente.
- Habilita la compresión Brotli o gzip.
- Optimiza las consultas a la base de datos y usa caché del lado del servidor.
Ejemplo: preload y fetchpriority para la imagen LCP:
<link rel="preload" as="image" href="#" fetchpriority="high">
<img src="#" alt="Hero" width="1200" height="600" fetchpriority="high">
Mejorar INP
INP mide con qué rapidez responde tu página a la entrada del usuario. Un INP alto significa interacciones lentas.
1. Divide las tareas largas
- Usa
setTimeout,requestIdleCallbackoscheduler.yieldpara ceder el hilo principal. - Evita funciones JavaScript de larga duración; divídelas en fragmentos más pequeños.
2. Optimiza los manejadores de eventos
- Aplica debounce o throttle a los eventos frecuentes (scroll, resize, input).
- Usa listeners de eventos pasivos para eventos de touch y wheel.
- Minimiza las actualizaciones del DOM dentro de los manejadores.
3. Reduce la ejecución de JavaScript
- Divide el código y carga de forma diferida el JavaScript no crítico.
- Elimina dependencias y polyfills no utilizados.
- Usa web workers para cálculos pesados.
Ejemplo: ceder el hilo principal en una tarea larga:
async function processLargeArray(items) {
for (let i = 0; i < items.length; i++) {
// Process item
if (i % 50 === 0) {
await new Promise(resolve => setTimeout(resolve, 0));
}
}
}
Mejorar CLS
CLS mide los cambios de diseño inesperados. Causas comunes: imágenes sin dimensiones, anuncios, embeds y contenido inyectado dinámicamente.
1. Define siempre las dimensiones
- Incluye los atributos
widthyheighten imágenes y videos. - Usa
aspect-ratiode CSS para contenedores responsive.
2. Reserva espacio para contenido dinámico
- Usa placeholders o skeleton screens para anuncios y embeds.
- Evita insertar contenido por encima del contenido existente, salvo en respuesta a una interacción del usuario.
3. Optimiza la carga de fuentes
- Usa
font-display: swappara evitar texto invisible, pero ten en cuenta posibles cambios de diseño. - Precarga las fuentes clave para reducir los retrasos de swap.
Ejemplo: reservar espacio con aspect-ratio:
.video-container {
aspect-ratio: 16 / 9;
width: 100%;
}
Herramientas y flujo de trabajo
Integra las comprobaciones de rendimiento en tu flujo de desarrollo:
- Ejecuta Lighthouse en CI (p. ej., GitHub Actions) para detectar regresiones.
- Usa la librería web-vitals para enviar datos de campo a tu analítica.
- Monitoriza CrUX y Search Console para ver tendencias de usuarios reales.
- Prueba en dispositivos reales, especialmente en móviles de gama media.
Recuerda: el rendimiento es una característica. Trátalo como cualquier otra métrica de calidad.
Preguntas frecuentes
¿Cuáles son los umbrales actuales de Core Web Vitals?
LCP: bueno ≤ 2,5s, necesita mejorar ≤ 4,0s. INP: bueno ≤ 200ms, necesita mejorar ≤ 500ms. CLS: bueno ≤ 0,1, necesita mejorar ≤ 0,25. Estos umbrales se basan en datos de usuarios reales.
¿Con qué frecuencia debo medir Core Web Vitals?
Monitoriza los datos de campo de forma continua mediante herramientas como CrUX y tu propia RUM. Ejecuta pruebas de laboratorio en cada cambio significativo de código y al menos mensualmente para las páginas clave.
¿Puedo mejorar Core Web Vitals sin un desarrollador?
Algunas correcciones, como la compresión de imágenes y la caché, se pueden hacer mediante plugins o ajustes de CDN. Sin embargo, las optimizaciones más profundas (división de código, CSS crítico) normalmente requieren la intervención de un desarrollador.
¿Listo para optimizar tus imágenes y mejorar el LCP? Prueba nuestro Compresor de Imágenes gratuito para reducir el tamaño de archivo sin perder calidad.