Renderizado del contenido visible más grande (LCP)

Qué mide LCP, sus umbrales, las cuatro subpartes que lo componen y cómo mejorarlo de verdad: la Core Web Vital con la que más lucha la gente.

Publicado por primera vez: 26 jun 2026 · Última actualización: 11 ago 2026 · Avanzado
Idiomas

Largest Contentful Paint (LCP) es el tiempo de renderizado del bloque de imagen o texto más grande visible en el viewport, en relación con el inicio de la carga de la página. Lo bueno es ≤2,5 s en el percentil 75 de usuarios reales; es una de las tres Core Web Vitals. Se divide en cuatro subpartes: TTFB, retraso de carga del recurso, duración de carga del recurso y retraso de renderizado del elemento; y TTFB más duración de carga suelen dominar. Las mayores mejoras: no usar lazy-load en la imagen LCP, darle fetchpriority=high, precargarla, reducir los recursos que bloquean el renderizado y arreglar el TTFB. Es una métrica de campo: las herramientas de laboratorio solo la aproximan; y de las Core Web Vitals, es la que más cuesta superar, especialmente en móvil.

TL;DR — LCP es el tiempo de renderizado del elemento más grande (imagen o bloque de texto) visible en el viewport, relativo a cuando la página empezó a cargar. Bueno es ≤ 2,5 s en el percentil 75 de usuarios reales (dividido por dispositivo); 2,5–4 s necesita trabajo, más de 4 s es pobre. Es una de las tres Core Web Vitals y se divide en cuatro subpartes — TTFB, retraso de carga de recursos, duración de carga de recursos, retraso de renderizado del elemento — donde TTFB y la duración de carga suelen dominar (pautas, no proporciones fijas — diagnostica tu propia página). Principales correcciones: nunca hagas lazy-load de la imagen LCP, añade fetchpriority="high" en el candidato real, precárgala cuando no esté en el HTML, elimina CSS/JS que bloqueen el renderizado y corrige TTFB. Es una métrica de campo — las herramientas de laboratorio solo la aproximan — y el elemento LCP puede cambiar durante la carga. Google confirma que las Core Web Vitals alimentan los sistemas de ranking pero no publica un peso exacto de LCP ni lo llama desempate; la relevancia del contenido sigue dominando.

Qué mide realmente LCP

El LCP informa el tiempo de renderizado de la imagen o bloque de texto más grande visible en el viewport, medido en relación con el momento en que el usuario navegó por primera vez a la página. El propio marco de Google: es el proxy estandarizado más cercano a cuándo aparece el contenido principal al usuario. Reemplazó métricas anteriores más difusas como First Meaningful Paint y Speed Index.

Algunas cosas que confunden a la gente de inmediato:

  • No es el “tiempo de carga de la página”. Una página puede tener todos los recursos obtenidos y aún así mostrar un LCP lento si el renderizado del elemento más grande fue bloqueado. El LCP se trata de ese elemento, no de toda la página.
  • No es lo mismo que el FCP. El First Contentful Paint se dispara cuando cualquier contenido aparece por primera vez; el LCP espera al elemento más grande. Una página puede tener un FCP rápido (la barra de navegación se pinta) y un LCP lento (la imagen principal carga tarde).
  • Es una métrica dinámica. El navegador envía un nuevo candidato de LCP cada vez que un elemento más grande se vuelve visible. La última entrada antes de que el usuario interactúe (toque, desplazamiento, pulsación de tecla) o de que la página se descargue es el valor que cuenta: la interacción a menudo cambia lo que es visible, por lo que el informe se detiene ahí. Un candidato que luego se elimina del DOM no borra su propia entrada: sigue siendo el elemento informado a menos que un elemento aún más grande se renderice antes de que el informe se detenga.

Los umbrales — y por qué 2,5 segundos

CategoríaLCP
Bueno≤ 2,5 s
Necesita mejoras2,5 s – 4,0 s
Pobre> 4,0 s

Evaluado en el percentil 75 de las cargas de página de usuarios reales, segmentado por tipo de dispositivo. Así que tres de cada cuatro visitas deben llegar a menos de 2,5 s para que un origen pase. Evidence for this claim A good LCP is 2.5 seconds or less at the 75th percentile of page loads, segmented by device type. Scope: Current web.dev LCP field threshold and assessment method. Confidence: high · Verified: web.dev: Largest Contentful Paint

¿Por qué 2,5 específicamente? La metodología de umbrales de Google se apoyó en dos cosas: investigación de percepción humana que apunta a aproximadamente 1–3 segundos como la banda que se siente “inmediata”, y datos de viabilidad de CrUX que muestran que 2,5 s era consistentemente alcanzable para sitios bien optimizados sin ser trivialmente fácil. Objetivos más estrictos como 1,5 s o 2,0 s no eran consistentemente alcanzables en suficientes orígenes, por lo que no pasaron el corte.

Qué cuenta como elemento LCP

Los tipos de elementos considerados para el LCP:

  • Elementos <img>
  • Elementos <image> dentro de un <svg>
  • Elementos <video> (el tiempo de carga de la imagen del póster, o el primer fotograma, lo que ocurra antes)
  • Un elemento con una imagen de fondo cargada mediante la función CSS url()
  • Elementos a nivel de bloque que contienen nodos de texto u otros hijos de texto en línea

El tamaño informado es lo que realmente es visible en el viewport: las porciones recortadas o desplazadas fuera no cuentan, y para las imágenes es el tamaño visible o el tamaño intrínseco, el que sea menor. Los márgenes, el relleno y los bordes se ignoran. Un puñado de elementos se excluyen mediante heurísticas: cualquier cosa con opacity: 0, elementos que cubren todo el viewport (tratados como fondos) e imágenes de marcador de posición de baja entropía.

Alrededor de tres cuartas partes de las páginas tienen una imagen como su elemento LCP, por lo que el trabajo de imagen suele ser el primer movimiento correcto. Pero no siempre, y no siempre compresión (más sobre eso a continuación). El resto son LCP de texto, donde la palanca es completamente diferente: es la carga de fuentes, no el peso de la imagen.

Las cuatro subpartes — la parte que la mayoría de los artículos omiten

Este es el marco con el que comenzaría cualquier diagnóstico de LCP. web.dev divide el LCP en cuatro subpartes secuenciales:

  1. Tiempo hasta el primer byte (TTFB) — desde que el usuario comienza a cargar la página hasta que el navegador recibe el primer byte de HTML. Participación típica: ~40 % del LCP total.
  2. Retraso de carga del recurso — la brecha entre el TTFB y el momento en que el navegador comienza a cargar el recurso LCP. Este es el tiempo de descubrimiento. Participación típica: menos del 10 %.
  3. Duración de la carga del recurso — cuánto tarda el recurso LCP en descargarse. Participación típica: ~40 %.
  4. Retraso de renderizado del elemento — desde que el recurso termina de cargarse hasta que el elemento realmente se pinta. Participación típica: menos del 10 %.
Subparte de LCPParticipación típica del LCP total
Tiempo hasta el primer byte~40 %
Retraso en la carga de recursos< 10 %
Duración de la carga de recursos~40 %
Retraso en el renderizado del elemento< 10 %

El principio detrás de la tabla: la gran mayoría del tiempo de LCP debería dedicarse a cargar el documento HTML y el recurso LCP. Cualquier tramo en el que ni uno ni el otro se esté cargando es una oportunidad para mejorar.

web.dev es explícito en que estos porcentajes son pautas, no reglas estrictas — no los conviertas en objetivos de segundos absolutos y no fuerces a cada página a coincidir con la división. Solo tienen sentido en relación entre sí, y si tu LCP ya está constantemente dentro de 2,5 segundos, las proporciones relativas no importan en absoluto. Usa la tabla para detectar qué subparte está consumiendo una parte desproporcionada en tu página y luego corrige esa — no para perseguir una división exacta de 40/10/40/10.

Evidence for this claim An LCP image should not be lazy-loaded, and reducing resource load delay is a primary LCP optimization. Scope: web.dev guidance for image-based LCP elements. Confidence: high · Verified: web.dev: Optimize LCP
Break LCP into four sequential sub-parts, then optimize the part consuming more than its intended share. Fuente: web.dev

The timeline begins with Time to First Byte, targeted at roughly 40 percent of total LCP. Resource load delay follows and should remain under 10 percent. Resource load duration is targeted at roughly 40 percent. Element render delay should remain under 10 percent and ends when the largest element actually paints.

© Patrick Stox LLC · CC BY 4.0 ·

Y aquí está el detalle que trastoca la suposición común: a partir de febrero de 2025, estas cuatro subpartes están disponibles en la API de CrUX para LCP de imágenes, y el análisis del equipo de Chrome de los datos de HTTP Archive encontró que el tiempo de descarga de la imagen a menudo era la parte más pequeña del tiempo de LCP. En otras palabras, “solo comprime mis imágenes” con frecuencia corrige la subparte equivocada. El TTFB y el retraso de descubrimiento suelen ser las palancas más grandes.

Cómo encontrar tu elemento LCP

Antes de optimizar cualquier cosa, averigua cuál elemento es tu LCP y cuál subparte es el cuello de botella:

  • PageSpeed Insights — la sección Diagnóstico señala el elemento LCP, y la pestaña de datos de campo muestra tu puntuación de usuarios reales.
  • Chrome DevTools — el panel Rendimiento marca el nodo LCP en la línea de tiempo.
  • La biblioteca JS web-vitals — registra el LCP (y el elemento) desde tu propio monitoreo de usuarios reales.

Cómo mejorar el LCP

Asocia cada corrección con la subparte a la que se dirige:

Corrige el retraso en la carga de recursos (descubrimiento). Esta es la de mayor apalancamiento y la más comúnmente rota.

  • Nunca cargues de forma diferida tu imagen LCP. loading="lazy" en el elemento LCP siempre añade un retraso de carga innecesario. Reserva la carga diferida para imágenes debajo del pliegue.
  • Añade fetchpriority="high" a la imagen LCP probable para que el navegador la obtenga temprano con alta prioridad.
  • Precárgala con <link rel="preload"> cuando la imagen no sea descubrible en el HTML inicial — por ejemplo, cuando se carga mediante CSS o JavaScript. Cargar la imagen principal mediante JS es un antipatrón precisamente porque oculta la URL del escáner de precarga del navegador.
  • Aloja los recursos críticos en el mismo origen para que el navegador no pague una configuración de conexión adicional.
Evidence for this claim An LCP image should not be lazy-loaded, and reducing resource load delay is a primary LCP optimization. Scope: web.dev guidance for image-based LCP elements. Confidence: high · Verified: web.dev: Optimize LCP

La precarga y fetchpriority resuelven problemas diferentes, así que no recurras a ambos por costumbre. La precarga expone un recurso que el escáner de precarga del navegador de otro modo descubriría tarde (una imagen cargada por JS o CSS, por ejemplo); fetchpriority cambia la prioridad de obtención de un recurso que el navegador ya encontró. Si el descubrimiento y la prioridad ya son correctos — la imagen es un <img> simple en el HTML inicial — añadir cualquiera de los dos puede hacer poco más que solicitudes adicionales. Revisa un rastro, aplica el que coincida con el problema real y confirma que el número de campo se movió.

Corrige el retraso en el renderizado del elemento.

  • Reduce o integra el CSS que bloquea el renderizado; difiere los estilos no críticos.
  • Evita scripts síncronos en el <head>.
  • Prefiere el renderizado del lado del servidor o la generación estática para que el marcado llegue listo para pintar, y divide las tareas largas del hilo principal.

Reduce la duración de la carga de recursos.

  • Formatos de imagen modernos (WebP, AVIF), compresión sensata y una CDN.
  • Cache-Control eficiente. Y no ignores la contención de red — cargar de forma diferida las otras imágenes debajo del pliegue puede liberar ancho de banda para que la imagen LCP llegue antes.

Reduce el TTFB.

  • Minimiza las redirecciones, elimina los parámetros de URL únicos innecesarios y optimiza el tiempo de respuesta del servidor. Ten en cuenta que el LCP incluye cualquier tiempo de descarga de la página anterior, la configuración de conexión y el tiempo de redirección — todo lo cual se suma al TTFB.

Caso especial: LCP basado en texto. Cuando el elemento más grande es texto, la ruta crítica es la carga de fuentes, no el peso de la imagen. font-display: optional o las fuentes del sistema eliminan el retraso de renderizado inducido por fuentes; font-display: swap sin precargar el archivo de fuente puede introducirlo.

Laboratorio vs. campo: esta distinción importa

LCP es fundamentalmente una métrica de campo. Google la evalúa en usuarios reales mediante CrUX, que se muestra en la pestaña de campo de PageSpeed Insights y en el informe de Core Web Vitals de Search Console. Esos datos de campo son los que alimentan los rankings.

Las herramientas de laboratorio (Lighthouse, Chrome DevTools, WebPageTest) solo la aproximan en condiciones simuladas, y ni siquiera usan la misma puntuación. Lighthouse aplica umbrales de escritorio más estrictos (Bueno ≤ 1,2 s) que el estándar de campo (≤ 2,5 s). Por lo tanto, una puntuación aprobatoria en Lighthouse no garantiza una puntuación aprobatoria en CrUX, y viceversa. Usa las herramientas de laboratorio para depurar y reproducir; confía en los datos de campo para el veredicto real.

Hay una segunda razón por la que los números de laboratorio y de campo pueden divergir, que vale la pena conocer para que una lectura extraña no te haga perseguir un error fantasma: la API actual del navegador LargestContentfulPaint (aún un Borrador de Trabajo del W3C) está limitada a una sola carga de documento. No se reinicia en restauraciones de caché de retroceso/avance (bfcache) ni en navegaciones SPA del mismo documento, y las páginas que comienzan fuera de pantalla (pestañas en segundo plano, páginas prerenderizadas) pueden informar valores inflados porque el tiempo se mide desde la carga, no desde cuando la página realmente se hizo visible. El algoritmo de informe también se detiene ante la entrada de usuario calificada, por lo que si un usuario interactúa antes de que se muestre tu contenido principal, LCP no lo capturará. Nada de esto cambia la tabla de umbrales anterior; explica por qué el número de una sesión específica puede parecer incorrecto cuando la navegación subyacente no es una primera carga simple.

¿Afecta LCP a los rankings?

Sí, en el sentido de que Google confirma que Core Web Vitals alimentan sus sistemas de ranking y recomienda lograr buenas puntuaciones. Pero la documentación actual de Search Central no publica un peso exacto para LCP ni lo describe como un desempate: el propio marco de Google es que la experiencia de página “can contribute to success in Search” (traducción) «puede contribuir al éxito en la Búsqueda» para consultas donde varias páginas ya ofrecen contenido comparable y relevante, y que una buena puntuación no garantiza un impulso en el ranking. La relevancia y la calidad del contenido siguen dominando. Optimiza LCP porque una página que se siente más rápida es genuinamente mejor para los usuarios (y las conversiones), no porque el mecanismo esté documentado como un desempate de rankings, porque no lo está.

Evidence for this claim Google says Core Web Vitals are used by ranking systems, but current documentation does not specify an LCP weight, tiebreaker rule, or ranking guarantee. Scope: ranking systems Confidence: high · Verified: Understanding page experience in Google Search results

Un par de realidades de los datos: de los Core Web Vitals, LCP es el que más cuesta mejorar a los sitios, y es notablemente más difícil en móvil que en escritorio (CPU y conexiones más lentas). En 3G o más lento, el umbral de 2,5 s puede sentirse casi imposible de alcanzar.

Dónde encaja esto

LCP es uno de los tres Core Web Vitals, junto con Interaction to Next Paint y Cumulative Layout Shift. Su primera subparte, Time to First Byte, es su propia métrica de diagnóstico, y First Contentful Paint se sitúa justo al lado en la línea de tiempo de carga. Verás todos estos en PageSpeed Insights, Lighthouse y el Chrome User Experience Report (CrUX). Cada uno es su propio análisis profundo en este clúster.

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.