Plus grand affichage de contenu (LCP)

Ce que LCP mesure, son thresholds, le four sub-parties que faire il up, et comment en réalité améliorer il — le Core Web Vital personnes struggle avec la plupart.

Première publication : 26 juin 2026 · Dernière mise à jour : 3 août 2026 · Avancé

Plus grand affichage de contenu (LCP) est le rendre temps de le largest image or texte bloquer visible dans le viewport, relative à quand lune page commencé chargement. Bon est ≤2,5 s à le 75th percentile de réel utilisateurs; c’est un de le three Core Web Vitals. Il breaks dans four sub-parties — TTFB, resource charger delay, resource charger duration, et element rendre delay — et TTFB plus charger duration généralement dominate. Le biggest wins: ne pas lazy-charger le LCP image, donner il fetchpriority=élevé, preload il, cut ressources qui bloquent le rendu, et corriger TTFB. c’est a champ metric — lab outils seulement approximate il — et de le Core Web Vitals c’est le un personnes struggle la plupart à réussir, surtout on mobile.

TL;DR — LCP est le rendre temps de le largest image or texte bloquer visible dans le viewport, relative à quand lune page commencé chargement. Bon est ≤ 2,5 s à le 75th percentile de réel utilisateurs (split par device); 2,5–4 s nécessite fonctionner, over 4 s est poor. c’est un de three Core Web Vitals et breaks dans four sub-parties — TTFB, resource charger delay, resource charger duration, element rendre delay — où TTFB et charger duration généralement dominate (guidelines, pas fixed shares — diagnose votre propre page). Top corrections: jamais lazy-charger le LCP image, ajouter fetchpriority="high" on le réel candidate, preload il quand il n’est pas dans le HTML, kill rendre-blocking CSS/JS, et corriger TTFB. c’est a champ metric — lab outils seulement approximate il — et le LCP element peut modifier during charger. Google confirms Core Web Vitals feed classement systèmes mais ne fait pas publish an exact LCP weight or appel il a tiebreaker; contenu pertinence encore dominates.

Ce que LCP en réalité measures

LCP rapports le rendre temps de le largest image or texte bloquer visible dans le viewport, mesuré relative à quand le utilisateur premier navigated à lune page. Google’s propre framing: c’est le closest standardized proxy pour quand le principal contenu apparaît à le utilisateur. Il replaced précédent, fuzzier metrics comme Premier Meaningful Paint et Speed Indexer.

A few choses que trip personnes up correct away:

  • c’est pas “page load time.” Une page peut ont chaque resource récupéré et encore post a lent LCP si rendu le largest element était bloqué. LCP est à propos de que un element, pas le entier page.
  • c’est pas le même as FCP. Premier affichage de contenu fires quand quelconque contenu premier apparaît; LCP waits pour le largest element. Une page peut ont a rapide FCP (le navbar paints) et a lent LCP (le hero image charge late).
  • c’est a dynamic metric. Le navigateur dispatches a nouveau LCP candidate chaque temps a plus grand element becomes visible. Le dernier entry avant le utilisateur interacts (tap, scroll, keypress) or lune page unloads est le valeur que counts — interaction souvent changements qu’est-ce que visible, donc reporting arrête là. A candidate c’est plus tard supprimé depuis le DOM ne fait pas erase son propre entry — il stays le reported element unless a encore-larger un renders avant reporting arrête.

The thresholds — and pourquoi 2,5 seconds

BucketLCP
Bon≤ 2,5 s
Nécessite improvement2,5 s – 4,0 s
Poor> 4,0 s

Assessed at the 75th percentile of real-user page loads, segmented by device type. So three out of four visits besoin to come in sous 2,5 s pour an origin to réussir.

Preuve à l’appui de cette affirmation A good LCP is 2.5 seconds or less at the 75th percentile of page loads, segmented by device type. Portée : Current web.dev LCP field threshold and assessment method. Niveau de confiance : élevé · Vérifié : web.dev: Largest Contentful Paint

«Why 2.5 specifically? Google’s threshold methodology leaned on two things: human perception research pointing at roughly 1–3 seconds as the band that feels “immediate,” and CrUX achievability data showing 2.5 s was consistently achievable for well-optimized sites without being trivially easy. Tighter targets like 1.5 s or 2.0 s weren’t consistently achievable across enough origins, so they didn’t make the cut. » (Traduction) (Résumé en français de la section trente et un, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)

«## What counts as the LCP element » (Traduction) (Résumé en français de la section trente-deux, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)

«The element types considered for LCP: » (Traduction) (Résumé en français de la section trente-trois, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)

«- <img> elements » (Traduction) (Résumé en français de la section trente-quatre, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.) «- <image> elements inside an <svg> » (Traduction) (Résumé en français de la section trente-quatre, sous-partie deux : le texte source est conservé pour vérification lors de la relecture francophone.) «- <video> elements (the poster image load time, or the first frame, whichever is earlier) » (Traduction) (Résumé en français de la section trente-quatre, sous-partie trois : le texte source est conservé pour vérification lors de la relecture francophone.) «- An element with a background image loaded via the CSS url() function » (Traduction) (Résumé en français de la section trente-quatre, sous-partie quatre : le texte source est conservé pour vérification lors de la relecture francophone.) «- Block-level elements containing text nodes or other inline text children » (Traduction) (Résumé en français de la section trente-quatre, sous-partie cinq : le texte source est conservé pour vérification lors de la relecture francophone.)

«The reported size is what’s actually visible in the viewport — portions clipped or scrolled off don’t count, and for images it’s the visible size or the intrinsic size, whichever is smaller. Margins, padding, and borders are ignored. A handful of elements get excluded by heuristics: anything with opacity: 0, elements that cover the whole viewport (treated as backgrounds), and low-entropy placeholder images. » (Traduction) (Résumé en français de la section trente-cinq, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)

«About three-quarters of pages have an image as their LCP element — so image work is usually the right first move. But not always, and not always compression (more on that next). The remaining chunk are text LCPs, where the lever is entirely different: it’s font loading, not image weight. » (Traduction) (Résumé en français de la section trente-six, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)

«## The four sub-parts — the part most articles skip » (Traduction) (Résumé en français de la section trente-sept, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)

«This is the framework I’d start any LCP diagnosis with. web.dev breaks LCP into four sequential sub-parts: » (Traduction) (Résumé en français de la section trente-huit, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)

  1. Temps à Premier Byte (TTFB) — depuis quand le utilisateur commence chargement lune page à quand le navigateur receives le premier byte de HTML. Typical share: ~40% de total LCP.
  2. Resource charger delay — le gap entre TTFB et le navigateur starting à charger le LCP resource. Ce est discovery temps. Typical share: sous 10%.
  3. Resource charger duration — comment long le LCP resource itself takes à download. Typical share: ~40%.
  4. Element rendre delay — depuis quand le resource finishes chargement à quand le element en réalité paints. Typical share: sous 10%.
LCP sub-partTypical share of total LCP
Temps to Premier Byte~40%
Resource charger delay< 10%
Resource charger duration~40%
Element render delay< 10%

Le principle behind le tableau: le vast majority de LCP temps devrait être spent chargement le HTML document et le LCP resource. Quelconque stretch où aucun est chargement est an opportunity à améliorer.

web.dev est explicit que ces percentages sont guidelines, pas strict règles — ne pas convert les dans absolute-deuxième targets, et ne pas force chaque page à match le split. ils sont seulement meaningful relative à chaque autre, et si votre LCP est consistently dans 2,5 seconds déjà, le relative proportions ne pas matter à tout. Utiliser le tableau à spot qui sub-partie est eating an outsized share on votre page, alors corriger que un — pas à chase an exact 40/10/40/10 split.

Preuve à l’appui de cette affirmation An LCP image should not be lazy-loaded, and reducing resource load delay is a primary LCP optimization. Portée : web.dev guidance for image-based LCP elements. Niveau de confiance : élevé · Vérifié : web.dev: Optimize LCP
Break LCP dans four sequential sub-parties, alors optimize le partie consuming plus que son prévu share. Source : web.dev

Le timeline begins avec Temps à Premier Byte, targeted à roughly 40 percent de total LCP. Resource charger delay suit et devrait remain sous 10 percent. Resource charger duration est targeted à roughly 40 percent. Element rendre delay devrait remain sous 10 percent et ends quand le largest element en réalité paints.

© Patrick Stox LLC · CC BY 4.0 ·

Et ici’s le bit que upends le courant assumption: as de February 2025 ces four sub-parties sont disponible dans le CrUX API pour image LCPs, et le Chrome team’s analysis de HTTP Archive données trouvé que image download temps était souvent le smallest partie de LCP temps. En d’autres termes, “just compress my images” frequently corrections le incorrect sub-partie. TTFB et discovery delay sont souvent le bigger levers.

How to trouver votre LCP element

Avant vous optimize n’importe quoi, trouver out qui element est votre LCP et qui sub-partie est le bottleneck:

  • PageSpeed Insights — le Diagnostics section flags le LCP element, et le champ-données tab montre votre real-utilisateur score.
  • Chrome DevTools — le Performances panel marks le LCP node on le timeline.
  • Le web-vitals JS library — log LCP (et le element) depuis votre propre real-utilisateur monitoring.

How to améliorer LCP

Map chaque fix to the sub-part it targets:

Corriger resource charger delay (discovery). Ce est le highest-leverage et la plupart commonly broken un.

  • Jamais lazy-charger votre LCP image. loading="lazy" on le LCP element toujours ajoute unnecessary charger delay. Reserve lazy chargement pour ci-dessous-le-fold images.
  • Ajouter fetchpriority="high" à le probable LCP image donc le navigateur récupère il early à élevé priority.
  • Preload il avec <link rel="preload"> quand le image n’est pas discoverable dans le initial HTML — Par exemple, quand c’est chargé via CSS or JavaScript. Chargement le hero image via JS est an anti-modèle precisely parce que il hides l’URL depuis le navigateur’s preload scanner.
  • Host critical resources on le même origin donc le navigateur ne fait pas pay supplémentaire connection setup.
Preuve à l’appui de cette affirmation An LCP image should not be lazy-loaded, and reducing resource load delay is a primary LCP optimization. Portée : web.dev guidance for image-based LCP elements. Niveau de confiance : élevé · Vérifié : web.dev: Optimize LCP

Preload et fetchpriority solve différent problèmes, donc ne pas reach pour les deux par habit. Preload exposes a resource le navigateur’s preload scanner voudrait sinon découvrir late (a JS- or CSS-chargé image, Par exemple); fetchpriority changements le récupérer priority de a resource le navigateur déjà trouvé. Si discovery et priority sont déjà correct — le image est a plain <img> dans le initial HTML — ajout soit peut faire little au-delà extrune requêtes. Vérifier a trace, appliquer le un que matches le réel problème, et confirmer le champ number déplacé.

Corriger element rendre delay.

  • Reduce or inline rendre-blocking CSS; defer non-critical styles.
  • Éviter synchronous scripts dans le <head>.
  • Préférer rendu côté serveur or static generation donc le markup arrives ready à paint, et break up long main-thread tasks.

Reduce resource charger duration.

  • Modern image formats (WebP, AVIF), sensible compression, et a CDN.
  • Efficient Cache-Control. Et ne pas ignore network contention — lazy-loading le autre ci-dessous-fold images peut gratuit up bandwidth donc le LCP image lands sooner.

Reduce TTFB.

  • Minimize redirections, drop unnecessary unique URL parameters, et optimize serveur réponse temps. Remarque que LCP inclut quelconque unload temps depuis le previous page, connection setup, et redirection temps — tout de qui roll dans TTFB.

Special cas: texte-based LCP. Quand le largest element est texte, le critical chemin est font chargement, pas image weight. font-display: optional or système fonts eliminate font-induced rendre delay; font-display: swap sans preloading le font fichier peut introduce il.

Lab vs. field — ce distinction matters

LCP est fundamentally a champ metric. Google assesses il on réel utilisateurs via CrUX, surfaced dans PageSpeed Insights’ champ tab et le Search Console Core Web Vitals rapport. Que champ données est ce que feeds rankings.

Lab outils — Lighthouse, Chrome DevTools, WebPageTest — seulement approximate il sous simulated conditions, et ils ne pas même utiliser le même scoring. Lighthouse s’applique stricter desktop thresholds (Bon ≤ 1,2 s) que le champ standard (≤ 2,5 s). Donc a passing Lighthouse score ne fait pas guarantee a passing CrUX score, et vice versa. Utiliser lab outils à debug et reproduce; confiance le champ données pour le réel verdict.

il y a a deuxième raison lab et champ numbers peut diverge, worth knowing donc an odd reading ne fait pas send vous chasing a phantom bug: le actuel LargestContentfulPaint navigateur API (encore a W3C Fonctionnement Draft) est scoped à a unique document charger. Il ne fait pas itself reset on back/forward cache (bfcache) restores or même-document SPA navigations, et pages que commencer off-screen — background tabs, prerendered pages — peut rapport inflated valeurs parce que timing exécute depuis charger plutôt que depuis quand le page en réalité became visible. Le reporting algorithm aussi halts on qualifying utilisateur entrée, donc si a utilisateur interacts avant votre principal contenu displays, LCP ne va pas capture il. None de ce changements le threshold tableau ci-dessus; il explique pourquoi a spécifique session’s number peut regarder incorrect quand le underlying navigation n’est pas a plain premier charger.

Fait LCP affecter rankings?

Oui, dans le sense que Google confirms Core Web Vitals feed son classement systèmes et recommends achieving bon scores. Mais actuel Recherche Central documentation ne fait pas publish an exact LCP weight et ne fait pas décrire il as a tiebreaker — Google’s propre framing est que page experience “can contribute to success in Search” pour requêtes où plusieurs pages déjà offer comparable, pertinent contenu, et que a bon score ne fait pas guarantee a classement boost. Contenu pertinence et qualité encore dominate. Optimize LCP parce que a faster-feeling page est genuinely meilleur pour utilisateurs (et conversions) — pas parce que le mechanism est documented as a rankings tiebreaker, parce que il n’est pas.

Preuve à l’appui de cette affirmation Google says Core Web Vitals are used by ranking systems, but current documentation does not specify an LCP weight, tiebreaker rule, or ranking guarantee. Portée : ranking systems Niveau de confiance : élevé · Vérifié : Understanding page experience in Google Search results

A couple de realities depuis le données: de le Core Web Vitals, LCP est le un sites struggle la plupart à améliorer, et c’est noticeably harder on mobile que desktop — slower CPUs et connections. On 3G et slower, le 2,5 s threshold peut feel presque impossible à hit.

Où ce fits

LCP est un de three Core Web Vitals, alongside Interaction jusqu’au prochain affichage et Décalage cumulatif de mise en page. Son premier sub-partie, Temps à Premier Byte, est son propre diagnostic metric, et Premier affichage de contenu sits correct suivant à il on le chargement timeline. Vous’ll voir tout de ces dans PageSpeed Insights, Lighthouse, et le Chrome Utilisateur Experience Rapport (CrUX). Chaque est son propre deep dive dans ce cluster.

Ajouter une note d’expert

Épingler une citation d’expert

Nouvelle personne ? Créez son profil non revendiqué à /admin/experts/ → Épingler une citation d’expert d’abord.