Core Web Vitals 2026: nuevos umbrales, INP definitivamente y cómo los garantizamos en cada entrega
Google confirmó INP como métrica definitiva de interactividad. LCP y CLS ajustan umbrales. Explicamos qué cambia, cómo medimos en Trement y por qué nuestro criterio de aceptación sigue siendo ≥ 90 en mobile.
Resumen ejecutivo: qué cambia en 2026
- INP (Interaction to Next Paint) reemplaza a FID definitivamente desde marzo 2024. Mide latencia de todas las interacciones, no solo la primera.
- LCP (Largest Contentful Paint): umbral "bueno" se mantiene en ≤ 2.5 s, pero Google pondera más la estabilidad visual del elemento LCP.
- CLS (Cumulative Layout Shift): umbral "bueno" ≤ 0.1, pero ahora se penalizan shifts post-carga (ej. fuentes, anuncios, iframes tardíos).
En Trement nuestro criterio de aceptación interno es ≥ 90 en PageSpeed Insights mobile antes de lanzar. No es aspiración: es definition of done.
INP: la métrica que expone lo que FID ocultaba
FID solo medía el retraso de la primera interacción. INP mide el percentil 98 de todas las interacciones (clicks, taps, teclado). Si tu menú hamburguesa tarda 300 ms en abrir, tu INP es malo aunque el primer click fuera rápido.
Causas típicas de INP alto
- Main thread bloqueado por JS pesado (hydration, frameworks, third-parties)
- Event handlers síncronos que hacen trabajo pesado antes de pintar
- Layout thrashing (leer/escibir layout en bucle)
- Third-parties sin
defer/async(chat widgets, analytics, mapas)
Cómo lo resolvemos en Trement
- Zero-hydration / islands architecture: HTML funcional desde el servidor, JS solo donde hay interactividad real
- Event delegation +
requestIdleCallbackpara trabajo no urgente - Web Workers para cómputo pesado (filtros, búsquedas, gráficos)
- Third-parties cargados bajo demanda (intersection observer en chat, mapas, videos)
- CSS-first interactions:
:hover,:focus-visible,transitionen lugar de JS para feedback visual
LCP: más allá del "primer elemento grande"
Google ahora evalúa la estabilidad del elemento LCP. Si tu hero image hace layout shift al cargar la fuente o la imagen, tu LCP "bueno" no cuenta.
Nuestra checklist LCP
- Hero image como
conwidth/heightexplícitos - Fuente del headline:
preload+font-display: swap+ fallback métrico (size-adjust,ascent-override) - Sin JS bloqueante antes del hero (ni analytics, ni chat, ni A/B testing)
- CDN para assets estáticos (Cloudflare / CloudFront) con
Cache-Control: immutable
CLS: los shifts invisibles que te penalizan
En 2026, los shifts post-carga pesan más: fuentes que cambian dimensiones, iframes de mapas/videos sin aspect-ratio, anuncios inyectados, skeletons que no coinciden con contenido real.
Nuestra defensa anti-CLS
aspect-ratioen todo elemento con dimensiones intrínsecas (imágenes, videos, iframes, mapas)- Font metrics overrides (
ascent-override,descent-override,line-gap-override) para que fallback ocupe mismo espacio que web font - Skeletons con mismas proporciones que contenido real (no placeholders genéricos)
- Anuncios/embeds en contenedores con
min-heightreservado
Nuestra pipeline de medición (no confiamos en una sola herramienta)
- Lighthouse CI en cada PR (budget: LCP < 2.5s, INP < 200ms, CLS < 0.1)
- PageSpeed Insights API diaria en staging y producción
- Chrome UX Report (CrUX) mensual para datos de campo reales
- Web Vitals JS library en producción enviando a GA4/BigQuery para alertas
Tabla de umbrales 2026 (oficiales Google)
| Métrica | Bueno | Mejorable | Malo |
|---|---|---|---|
| LCP | ≤ 2.5 s | 2.5 – 4.0 s | > 4.0 s |
| INP | ≤ 200 ms | 200 – 500 ms | > 500 ms |
| CLS | ≤ 0.1 | 0.1 – 0.25 | > 0.25 |
¿Tu sitio actual pasa el filtro?
La mayoría de sitios en builders (Elementor, Wix, WordPress + themes pesados) fallan en INP y CLS. En Trement entregamos con reporte PageSpeed ≥ 90 mobile como parte del QA. Si tu proveedor actual no te da ese reporte, no te está entregando un sitio optimizado.