Glosario

Cómo Largest Contentful Paint se divide en cuatro partes que puedes arreglar

Taras Shynkarenko
Taras Shynkarenko
•Actualizado: •9 min de lectura
Cómo Largest Contentful Paint se divide en cuatro partes que puedes arreglarCómo Largest Contentful Paint se divide en cuatro partes que puedes arreglar

TL;DR, Respuesta rápida

9 min de lectura

Largest Contentful Paint es bueno en 2.5 segundos o menos, necesita mejorar entre 2.5 y 4.0 segundos y es pobre por encima de 4.0 segundos, leído en el percentil 75. Mide cuándo terminó de renderizarse la imagen o el bloque de texto más grande del viewport, y Google lo divide en cuatro subpartes: time to first byte, resource load delay, resource load duration y element render delay. Mide la división antes de optimizar, porque tres de los cuatro arreglos no hacen nada por la cuarta.

¿Qué es LCP (Largest Contentful Paint) y qué es una buena puntuación?

Google puntúa Largest Contentful Paint como bueno en 2.5 segundos o menos, necesita mejorar entre 2.5 y 4.0 segundos y pobre por encima de 4.0 segundos, leído en el percentil 75 de las cargas de página y puntuado por separado para móvil y escritorio (web.dev, "Largest Contentful Paint (LCP)", actualizado 4 de septiembre de 2025). La métrica marca el momento en que terminó de renderizarse la imagen o el bloque de texto más grande visible dentro del viewport, que es la mejor aproximación del navegador al momento en que un visitante decide que la página ya llegó. Compara tu número con 2.5 segundos en p75 primero, porque una media que aprueba con un p75 que suspende sigue siendo una página que suspende.

El tamaño se juzga solo dentro del viewport, y para las imágenes el navegador reporta el tamaño visible o el tamaño intrínseco, el que sea menor.

¿Qué elementos pueden ser el elemento LCP?

La especificación de LCP cuenta cinco tipos de elemento, así que el ganador en tu página es uno de ellos y nada más. Todo lo que queda fuera de la lista, elementos canvas y degradados CSS incluidos, no puede llevarse el título por mucha pantalla que ocupe.

Elemento elegibleQué mide el navegador
<img>Tamaño visible o intrínseco, el que sea menor
<image> dentro de <svg>La misma regla que <img>
<video>La imagen del póster, o el primer fotograma pintado
Cualquier elemento con una imagen de fondo url()El área pintada del elemento
Elementos de bloque que contienen nodos de textoEl rectángulo más pequeño alrededor de todos los nodos de texto

Identifica el tuyo antes de tocar nada. Chrome DevTools nombra el elemento ganador en el panel Performance, y las herramientas de campo lo adjuntan a cada muestra, lo que importa porque los dos rara vez coinciden.

¿Cuáles son las cuatro subpartes de Largest Contentful Paint?

Google divide Largest Contentful Paint en time to first byte (tiempo hasta el primer byte), resource load delay (espera hasta que empieza la descarga), resource load duration (duración de la descarga del recurso) y element render delay (espera hasta que el elemento se pinta), cuatro tramos consecutivos que suman la métrica entera. El equipo de Chrome publica una cuota objetivo para cada uno en "Optimize Largest Contentful Paint" (web.dev, actualizado 31 de marzo de 2025): alrededor del 40% para time to first byte, por debajo del 10% para resource load delay, alrededor del 40% para resource load duration y por debajo del 10% para element render delay. Mide las cuotas antes de elegir un arreglo, porque una subparte que ya está dentro de su presupuesto no puede devolverte los segundos que necesitas.

SubparteQué cubreCuota objetivoQué la vuelve lentaEl arreglo
Time to first byteDel inicio de la navegación hasta que llega el primer byte de la respuesta HTML~40%Cadenas de redirecciones, respuestas de origen sin cachear, trabajo lento en el backend, distancia al origenCortar redirecciones, servir HTML cacheado desde nodos edge de un CDN, reducir el tiempo de procesamiento del backend
Resource load delayDel primer byte hasta que el navegador empieza a descargar el recurso LCP<10%La imagen solo se referencia en CSS o JS, así que el preload scanner nunca la ve; loading="lazy" en el hero; renderizado en cliente que la inyecta tardePoner la imagen LCP en el HTML inicial, añadir <link rel="preload" fetchpriority="high"> cuando solo se alcanza vía CSS o JS, quitar el lazy loading del hero
Resource load durationLa descarga del recurso LCP en sí, de principio a fin~40%Imágenes sobredimensionadas o sin comprimir, formatos antiguos, competencia por el ancho de banda, sin cabeceras de cachéComprimir y redimensionar, servir AVIF o WebP, servir desde un CDN, fijar caducidades de caché largas, incrustar recursos pequeños
Element render delayDel fin de la descarga hasta que el elemento se pinta de verdad<10%Hojas de estilo y scripts que bloquean el renderizado, tareas largas en el hilo principal, hidratación que retiene el primer pintadoDiferir o incrustar el CSS y el JS bloqueantes, renderizar en el servidor, partir las tareas largas

¿Cómo se reparte un Largest Contentful Paint de 4.2 segundos entre las cuatro partes?

La división convierte un número inútil en un objetivo evidente, porque la métrica es una suma simple:

LCP = time to first byte + resource load delay + resource load duration + element render delay

Toma una página cuyo LCP p75 es de 4.2 segundos, que es pobre. Los datos de campo lo reparten en 0.9s de time to first byte, 2.0s de resource load delay, 1.0s de resource load duration y 0.3s de element render delay. Aplica las cuotas objetivo a 4.2 segundos para obtener el presupuesto de cada subparte.

SubparteMedidoCuota de 4.2sPresupuesto en 4.2sVeredicto
Time to first byte0.9s21%1.68sDentro del presupuesto
Resource load delay2.0s48%0.42s4.8x por encima
Resource load duration1.0s24%1.68sDentro del presupuesto
Element render delay0.3s7%0.42sDentro del presupuesto

Tres de las cuatro están sanas. La imagen del hero no se pide hasta dos segundos completos después de que llega el HTML, lo que apunta al descubrimiento: la imagen está detrás de una regla CSS, detrás de un script o detrás de loading="lazy". Comprimirla más atacaría el 1.0s que ya está bien y dejaría la página en pobre.

Arregla el problema de descubrimiento y el resource load delay baja a unos 0.2s. La nueva suma es 0.9 + 0.2 + 1.0 + 0.3 = 2.4s, que aprueba. Un cambio, 1.8 segundos, ninguna imagen recodificada. Lleva el mismo desglose a Cumulative Layout Shift y a Interaction to Next Paint, y úsalo para decidir qué cuenta como un buen LCP en una página concreta.

Una persona navega por un sitio web en un smartphone, lo que ilustra cómo la misma página se muestra de forma distinta en móvil que en escritorio.

¿Por qué cambia el elemento LCP entre móvil y escritorio?

El elemento LCP es lo que sea más grande dentro del viewport de ese visitante, así que un diseño que se reordena entre breakpoints entrega el título a un elemento distinto en cada dispositivo. Una foto de hero de escritorio de 1200px de ancho puede quedar oculta por una media query en móvil, donde el bloque de texto del titular pasa a ser el elemento pintado más grande. Los dos números no comparten entonces ningún mecanismo: el LCP de escritorio lo domina resource load duration y el LCP móvil lo dominan time to first byte y element render delay, porque el texto no necesita una descarga aparte.

Esta es la trampa detrás de la mayoría del trabajo de LCP que fracasa. Un equipo hace preload de la imagen del hero, ve mejorar el LCP de escritorio y ve que el p75 móvil se niega a moverse, porque en móvil esa imagen nunca fue el elemento LCP. Google puntúa móvil y escritorio por separado, así que depúralos por separado: saca el elemento LCP por formato de dispositivo de los datos de campo y cuenta con dos arreglos distintos. Cuando gana el texto, una fuente web que bloquea el renderizado mueve la métrica entera a element render delay y ningún trabajo sobre imágenes la toca.

Misma página, elemento LCP distinto
EscritorioLa foto de hero, de 1200px de ancho, gana por tamaño; el LCP está dominado por resource load duration
MóvilUna media query oculta el hero, así que el bloque de texto del titular gana en su lugar; el LCP está dominado por time to first byte y render delay
Un layout que se reorganiza entre breakpoints entrega el título de LCP a un elemento distinto en cada dispositivo.

¿Por qué el lazy loading de una imagen de hero empeora el LCP?

Aplicar loading="lazy" a la imagen LCP siempre añade resource load delay, porque el preload scanner la salta durante el parseo del HTML y la descarga espera a que el layout se ejecute y coloque el elemento cerca del viewport. El equipo de Chrome lo dice sin rodeos en "Optimize Largest Contentful Paint" (web.dev, actualizado 31 de marzo de 2025): "a lazy-loaded LCP image will always lead to unnecessary resource load delay", es decir: una imagen LCP cargada de forma diferida siempre provocará resource load delay innecesario. La espera no compra nada, ya que un hero por encima del pliegue ya está en el viewport.

El daño llega por los valores por defecto. Un CMS o una librería de componentes que estampa loading="lazy" en cada imagen acierta con las 40 que están debajo del pliegue y falla con la única que está arriba. Pon loading="eager" y fetchpriority="high" en el hero, mantén el lazy loading en todo lo demás y confírmalo en datos de campo en vez de en una prueba de laboratorio.

Flowsery
Flowsery

Empieza tu prueba gratis de 14 días

Panel en tiempo real

Seguimiento de objetivos

Rastreo sin cookies

Un analista observa la repetición de una sesión en un monitor, el tipo de datos de campo usado para ver el LCP que tuvieron los visitantes reales.

¿Cómo ves el LCP que recibieron tus visitantes reales?

Los datos de campo son la única fuente que reporta el elemento LCP y la división en subpartes desde dispositivos reales en redes reales, y por eso el real user monitoring está debajo de cada número de esta página. Una prueba de laboratorio devuelve un LCP repetible para una máquina que tú configuraste; el p75 que decide tu veredicto de Core Web Vitals sale de las visitas que de verdad recibiste.

El peso es la restricción, porque un script de monitorización que retrasa la página corrompe la métrica que reporta. Flowsery recoge datos de campo con un único script de menos de 10 KB, sin cookies y alojado en la UE, sin muestreo de datos, así que el p75 sale de todas las sesiones y no de un subconjunto. Graba la sesión junto a los tiempos y marca rage clicks, dead clicks, errores de JavaScript y abandonos, lo que convierte un p75 lento en una repetición que puedes ver.

Preguntas frecuentes

¿Largest Contentful Paint se mide antes o después de la interacción del usuario?

El navegador deja de reportar nuevos candidatos a LCP en la primera interacción del usuario, sea un scroll, un toque o una pulsación de tecla. Nada de lo que se pinte después de ese punto llega a ser el elemento LCP, por grande que sea. El corte mantiene la métrica atada a la carga inicial en lugar de al contenido que el visitante trajo a la vista con el scroll.

¿El elemento LCP tiene que quedarse en la página?

No. Una vez que un elemento queda registrado como largest contentful paint, conserva el título aunque salga del viewport con el scroll o abandone el DOM por completo, salvo que después se renderice un elemento mayor. Una imagen de bienvenida que desaparece a los 500ms fija igualmente tu LCP, y en un carrusel gana la primera diapositiva mientras que las siguientes no cambian nada.

¿Por qué mi LCP de laboratorio es rápido y mi LCP de campo es pobre?

Las herramientas de laboratorio miden un dispositivo en una conexión que tú configuraste, y los datos de campo miden los dispositivos que tu audiencia tiene de verdad. Un LCP de Lighthouse de 1.6s y un p75 de campo de 4.2s son las dos respuestas correctas a preguntas distintas. Verifica un arreglo en el laboratorio, decide si la página aprueba en el campo.

¿Un CDN arregla Largest Contentful Paint?

Un CDN reduce dos de las cuatro subpartes: time to first byte, al servir el HTML desde un nodo edge cerca del visitante, y resource load duration, al servir la imagen igual. No hace nada por el resource load delay causado por un descubrimiento tardío, ni por el element render delay causado por scripts que bloquean el renderizado. Divide tu LCP primero y la respuesta ya está a la vista.

¿Puede un vídeo ser el elemento LCP?

Sí. Los elementos de vídeo son elegibles, y el navegador mide la imagen del póster o el primer fotograma pintado. Poner un póster en un vídeo por encima del pliegue le da al navegador algo que pintar antes de que lleguen los datos del vídeo; sin él, el título de LCP se va a lo que sea más grande.

¿Cuántas muestras necesito para que un número de LCP signifique algo?

Las suficientes para que el percentil 75 deje de moverse cuando llega un solo dispositivo atípico. Una ruta con 40 visitas por semana produce un p75 que oscila con un único visitante en un móvil lento, así que agrega a la plantilla de página o amplía la ventana. Dividir por país y dispositivo a la vez multiplica el tráfico necesario, ya que cada segmento arrastra su propia distribución.

¿Puede un degradado CSS ser el elemento LCP?

La especificación de LCP reconoce cinco tipos de elemento: imágenes, imágenes SVG, vídeos, elementos con una imagen de fondo url() y bloques de texto. Los degradados CSS y los elementos canvas quedan fuera de esa lista, así que ninguno de los dos puede ganar el título sin importar cuánto viewport ocupen.

¿Puede un titular convertirse en el elemento LCP en lugar de una imagen?

Cualquier elemento de bloque que contenga nodos de texto califica, medido como el rectángulo más pequeño que envuelve esos nodos. Es justo lo que ocurre en los layouts móviles donde una media query oculta la foto de hero y el bloque de texto del titular pasa a ser el elemento más grande pintado.

¿Comprimir la imagen de hero siempre arregla un LCP lento?

Solo cuando resource load duration es la subparte que excede su presupuesto. En el ejemplo de 4.2 segundos de esta página, resource load duration ya estaba dentro de presupuesto en 1.0s mientras resource load delay iba 4.8 veces por encima, así que comprimir más la imagen habría dejado la página igual de pobre. Revisa el reparto antes de tocar la imagen.

¿Qué porcentaje del LCP debería ocupar resource load duration?

Alrededor del 40%, la misma cuota objetivo que time to first byte. Las otras dos subpartes, resource load delay y element render delay, deberían quedarse cada una por debajo del 10% del total.

¿Te resultó útil este artículo?

¡Cuéntanos qué opinas!

Vernos más en Google

Un clic marca Flowsery como fuente preferida y nuestros artículos aparecen más arriba en tus Noticias destacadas, el modo IA y los resúmenes con IA.

Antes de irte...

Flowsery

Flowsery

Analítica orientada a ingresos para tu sitio web

Rastrea cada visitante, fuente y conversión en tiempo real. Simple, potente y sin cookies.

Panel en tiempo real

Seguimiento de objetivos

Rastreo sin cookies

Términos relacionados del glosario

Cómo se calcula realmente el Cumulative Layout ShiftCómo se calcula realmente el Cumulative Layout Shift
Glosario

Cómo se calcula realmente el Cumulative Layout Shift

Cada puntuación de Cumulative Layout Shift es impact fraction por distance fraction, y Google reporta la mayor ráfaga de desplazamientos, no su suma.

•9 min de lectura
Cómo Interaction to Next Paint puntúa tu peor clicCómo Interaction to Next Paint puntúa tu peor clic
Glosario

Cómo Interaction to Next Paint puntúa tu peor clic

Chrome puntúa Interaction to Next Paint por la peor interacción de una página: input delay, processing y presentation delay hasta el siguiente frame pintado.

•9 min de lectura
Qué demuestra la monitorización de usuarios reales que el laboratorio no puedeQué demuestra la monitorización de usuarios reales que el laboratorio no puede
Glosario

Qué demuestra la monitorización de usuarios reales que el laboratorio no puede

Pasiva por diseño, la monitorización de usuarios reales recoge rendimiento y errores de visitas que ocurrieron de verdad, y los lee en p75, no en media.

•9 min de lectura
¿Cuánto ralentiza el session replay la velocidad de un sitio web?¿Cuánto ralentiza el session replay la velocidad de un sitio web?
Glosario

¿Cuánto ralentiza el session replay la velocidad de un sitio web?

La respuesta real a si el session replay ralentiza un sitio web, con cifras publicadas de rrweb y Sentry sobre script, CPU y ancho de banda de subida.

•9 min de lectura
Cuándo empieza el muestreo de datos y cómo detectarlo en un informeCuándo empieza el muestreo de datos y cómo detectarlo en un informe
Glosario

Cuándo empieza el muestreo de datos y cómo detectarlo en un informe

En GA4, el muestreo de datos empieza por encima de 10 millones de eventos en propiedades estándar y 100 millones en Analytics 360. Un icono es la única pista.

•11 min de lectura
Qué registran los datos de clickstream, fila a filaQué registran los datos de clickstream, fila a fila
Glosario

Qué registran los datos de clickstream, fila a fila

Cada fila de datos de clickstream es un hit con marca de tiempo, un identificador y una URL, y por eso el RGPD y la CCPA la tratan como dato personal.

•9 min de lectura

Artículos relacionados