Aller au contenu
Core Web Vitals : optimiser LCP, CLS et INP en 2026

Core Web Vitals : optimiser LCP, CLS et INP en 2026

Par Baptiste P.

11 min de lecture
Lien copié dans le presse-papiers
Baptiste P.

47 % des sites web ne passent pas les seuils Core Web Vitals de Google. Autrement dit, presque un site sur deux perd des positions dans les résultats de recherche à cause de performances techniques insuffisantes. Et depuis mars 2024, les règles ont changé : INP a remplacé FID, et les exigences sont plus strictes que jamais.

Ce guide t'explique concrètement comment mesurer, diagnostiquer et optimiser les trois métriques qui comptent en 2026 : LCP, CLS et INP. Pas de théorie abstraite, des actions que tu peux appliquer dès aujourd'hui.

Les trois métriques en un coup d'œil#

Avant de plonger dans les optimisations, voici les seuils définis par Google pour chaque métrique. Ton objectif : que 75 % de tes visiteurs aient une expérience classée "bon" sur les trois indicateurs.

MétriqueMesureBonÀ améliorerMauvais
LCP (Largest Contentful Paint)Temps de chargement du plus grand élément visibleMoins de 2,5 s2,5 s à 4 sPlus de 4 s
CLS (Cumulative Layout Shift)Stabilité visuelle de la pageMoins de 0,10,1 à 0,25Plus de 0,25
INP (Interaction to Next Paint)Réactivité aux interactions utilisateurMoins de 200 ms200 ms à 500 msPlus de 500 ms

Ces seuils proviennent de la documentation officielle Google (web.dev, mise à jour 2026). Ils s'appliquent au 75e percentile, c'est-à-dire que 75 % des chargements de page doivent atteindre le seuil "bon" pour que la page soit considérée comme performante.

LCP : le chargement perçu#

Le Largest Contentful Paint mesure le temps nécessaire pour afficher le plus grand élément visible dans la fenêtre (viewport). C'est souvent une image hero, un titre en gros caractères ou un bloc de texte principal.

Pourquoi c'est critique pour le SEO#

Google utilise le LCP comme signal direct de classement dans ses Core Web Vitals. Selon une analyse de Portent (2024), chaque seconde de chargement supplémentaire réduit le taux de conversion de 4,42 %. Je me souviens d'un client en cosmétique, 40 000 visites/mois, dont la page produit héro chargeait en 4 secondes. On a agressé son image LCP avec du WebP + preload, on a viré trois scripts d'analytics inutiles. Deux mois plus tard : LCP à 1,8 sec, et les conversions ont grimpé de 18 %. L'étrange : les vendeurs avaient remarqué aucune différence perceptible. Les utilisateurs, eux, l'avaient clairement senti. C'est bête à dire, mais c'est vrai : sur un site e-commerce à 100 000 visites par mois, passer de 4 secondes à 2,5 secondes de LCP peut représenter des milliers d'euros de chiffre d'affaires supplémentaire.

Quick wins pour améliorer le LCP#

La première action : précharger ton image LCP. Si ton élément LCP est une image (cas le plus fréquent), ajoute un preload dans le <head> avec l'attribut fetchpriority="high":

<link rel="preload" as="image" href="/hero.webp" fetchpriority="high" />

Cet attribut indique au navigateur de prioriser cette ressource. Combiné au preload, tu élimines le délai de découverte, le navigateur commence à télécharger avant même d'avoir analysé le CSS et JavaScript.

Ensuite, passe tes images en WebP ou AVIF. Les formats modernes réduisent de 25 à 50 % par rapport au JPEG (tests Google 2025). Utilise <picture> pour proposer AVIF en premier, WebP en fallback :

<picture>
  <source srcset="/hero.avif" type="image/avif" />
  <source srcset="/hero.webp" type="image/webp" />
  <img src="/hero.jpg" alt="Description" width="1200" height="675" />
</picture>

Troisième gain : inline le CSS critique. Le CSS externe bloque le rendu. Extrais le CSS nécessaire au contenu au-dessus de la ligne de flottaison et injecte-le dans un <style> du <head>. Le reste se charge de manière asynchrone.

Enfin, élimine les scripts bloquants. Chaque script sans defer ou async retarde le rendu. Audite tes scripts tiers (analytics, chat, pixel tracking) et ajoute defer à ceux qui ne s'exécutent pas immédiatement.

Stratégie avancée : optimiser le TTFB#

Le Time to First Byte (TTFB) représente le temps entre la requête du navigateur et le premier octet reçu du serveur. Un TTFB supérieur à 800 ms rend un LCP inférieur à 2,5 secondes quasi impossible. Les leviers : CDN, mise en cache serveur, optimisation des requêtes base de données, et pré-rendu des pages les plus consultées.

CLS : la stabilité visuelle#

Le Cumulative Layout Shift mesure les décalages visuels inattendus. Tu as déjà cliqué sur un bouton qui s'est déplacé au dernier moment à cause d'une pub qui s'est chargée ? C'est exactement ce que le CLS quantifie.

Les coupables habituels#

CauseFréquenceImpact CLS
Images sans dimensionsTrès fréquentÉlevé
Publicités et embeds dynamiquesFréquentTrès élevé
Polices web (FOUT/FOIT)FréquentModéré
Contenu injecté par JavaScriptModéréVariable
Iframes sans dimensionsModéréÉlevé

Quick wins pour réduire le CLS#

Premièrement, déclare systématiquement les dimensions de tes images. Ajoute width et height sur chaque <img> pour que le navigateur réserve l'espace avant le chargement :

<img src="/photo.webp" alt="Description" width="800" height="450" />

Pour les images responsives, le navigateur maintient le ratio via aspect-ratio calculé à partir de ces valeurs.

Deuxièmement, réserve de l'espace pour les publicités. Les espaces publicitaires sont le premier facteur de CLS. Définis des conteneurs avec dimensions minimales fixes :

.ad-slot {
	min-height: 250px;
	width: 100%;
}

Même sans pub chargée, la mise en page reste stable.

Troisièmement, gère les polices web correctement. Utilise font-display: swap pour afficher le texte immédiatement avec une police système, puis basculer vers la perso une fois chargée. Choisis une fallback avec des métriques proches de ta cible :

@font-face {
	font-family: 'MaPolice';
	src: url('/fonts/mapolice.woff2') format('woff2');
	font-display: swap;
	size-adjust: 98%;
}

Enfin, évite d'injecter du contenu au-dessus du viewport. Chaque élément injecté dynamiquement (bannières cookies, barres) pousse le contenu vers le bas. Place-les en position fixe ou overlay.

INP : la réactivité aux interactions#

L'Interaction to Next Paint (INP) est la métrique la plus récente du trio. Elle a remplacé le First Input Delay (FID) en mars 2024. La différence fondamentale : FID mesurait uniquement la latence de la première interaction. INP évalue la réactivité de toutes les interactions, clics, taps, frappes clavier, et rapporte la valeur au 75e percentile.

Pourquoi INP est plus exigeant que FID#

FID était indulgent : il suffisait que la première interaction soit rapide. INP capture l'ensemble de l'expérience utilisateur. Un site peut avoir un FID excellent et un INP catastrophique si ses interactions suivantes sont lentes, par exemple, un filtre de recherche qui bloque le thread principal pendant 500 ms.

Je sais pas trop quoi en penser sur INP pour les petits sites. Les données du Chrome User Experience Report (CrUX, janvier 2026) disent 31 % des sites qui passaient FID échouent à INP, mais en audit, j'ai des clients qui ont un INP pourri et ranke quand même. C'est pas le facteur qui va changer vos positions si tu as un contenu correct. Mais c'est en train de devenir structurel, donc il faut l'adresser.

Quick wins pour améliorer l'INP#

Commence par identifier les interactions lentes. Ouvre Chrome DevTools, lance un profil de performance et interagis avec ta page. Le panneau Performance te montre chaque interaction avec sa durée. Cible celles qui dépassent 200 ms.

Ensuite, décompose les tâches JavaScript longues. Le thread principal ne peut exécuter qu'une tâche à la fois. Un script qui tourne 300 ms retarde toute interaction. La solution : découpe les tâches longues avec requestIdleCallback() ou scheduler.yield() :

// Avant : une tâche longue bloque le thread
function processItems(items) {
	items.forEach((item) => heavyComputation(item))
}

// Après : découpage avec scheduler.yield()
async function processItems(items) {
	for (const item of items) {
		heavyComputation(item)
		await scheduler.yield()
	}
}

Troisièmement, réduis l'impact des scripts tiers. Analytics, chat et publicité sont les premiers responsables d'un INP élevé. Charge-les en defer ou async, et utilise un gestionnaire de consentement pour ne charger que ce qui est accepté.

Enfin, optimise les event handlers. Si un clic déclenche animation, API et DOM update simultanément, tout blocage. Sépare le feedback visuel immédiat (animation CSS) du traitement lourd (API) pour une réponse instantanée à l'utilisateur.

Les outils pour mesurer tes Core Web Vitals#

Données de terrain (field data)#

OutilTypeCe qu'il mesure
Google Search ConsoleRapportDonnées CrUX agrégées sur 28 jours, page par page
PageSpeed InsightsWebScore 75e percentile CrUX + audit Lighthouse
Chrome UX Report (CrUX)API/BigQueryDonnées brutes anonymisées des utilisateurs Chrome
Web Vitals extensionExtension ChromeMétriques en temps réel pendant ta navigation

Les données de terrain sont les seules que Google utilise pour le classement. Elles reflètent l'expérience réelle de tes visiteurs.

Données de laboratoire (lab data)#

OutilTypeUsage
Lighthouse (DevTools ou CLI)AuditDiagnostic détaillé avec recommandations
WebPageTestWebTests multi-localisations, connexions variées
DebugBearSaaSMonitoring continu + alertes

Les données lab sont utiles pour diagnostiquer et corriger, mais elles ne représentent pas l'expérience réelle.

Workflow recommandé#

  1. Identifie les pages problématiques via Google Search Console (rapport Core Web Vitals)
  2. Diagnostique avec PageSpeed Insights (données terrain + recommandations lab)
  3. Corrige en suivant les recommandations prioritaires
  4. Valide en lab avec Lighthouse (mode timespan pour INP)
  5. Attends 28 jours pour voir l'impact sur les données CrUX

Checklist d'optimisation rapide#

Voici les actions classées par impact et facilité de mise en œuvre. Commence par le haut de la liste.

Gains rapides (moins d'une heure)#

  • Ajouter width et height sur toutes les images (CLS)
  • Ajouter fetchpriority="high" sur l'image LCP (LCP)
  • Passer les images hero en WebP (LCP)
  • Ajouter defer aux scripts non critiques (LCP + INP)
  • Utiliser font-display: swap sur les polices web (CLS)

Gains modérés (quelques heures)#

  • Inliner le CSS critique au-dessus de la ligne de flottaison (LCP)
  • Réserver de l'espace fixe pour les publicités (CLS)
  • Auditer et retirer les scripts tiers inutiles (INP)
  • Mettre en place un preload pour les ressources critiques (LCP)

Gains structurels (projet dédié)#

  • Migrer vers un CDN pour réduire le TTFB (LCP)
  • Implémenter le pré-rendu côté serveur / SSG (LCP)
  • Refactorer le JavaScript pour découper les tâches longues (INP)
  • Mettre en place un monitoring continu avec alertes (tous)

FAQ#

Les Core Web Vitals sont-ils un facteur de classement majeur ?#

Les Core Web Vitals font partie des signaux "page experience" de Google, aux côtés du HTTPS, du mobile-friendly et de l'absence d'interstitiels intrusifs. À contenu et autorité équivalents, un site avec de bons Core Web Vitals sera favorisé. Ce n'est pas le facteur numéro 1, mais c'est un avantage compétitif mesurable, surtout dans les niches concurrentielles.

Combien de temps faut-il pour voir l'impact d'une optimisation ?#

Google utilise les données CrUX collectées sur les 28 derniers jours. Après une optimisation, il faut donc attendre environ un mois pour que les nouvelles données remplacent les anciennes dans les rapports Search Console et PageSpeed Insights.

INP est-il vraiment plus difficile que FID ?#

Oui. FID ne mesurait que la première interaction, et la plupart des sites passaient le seuil de 100 ms sans difficulté. INP évalue toutes les interactions sur la page et utilise un seuil de 200 ms au 75e percentile. D'après le CrUX (janvier 2026), environ 31 % des sites qui réussissaient FID échouent à INP.

Faut-il optimiser les Core Web Vitals sur mobile et desktop séparément ?#

Google utilise principalement les données mobiles pour le classement (mobile-first indexing). Cependant, les rapports Search Console distinguent mobile et desktop. Priorise le mobile, mais ne néglige pas le desktop, tes utilisateurs desktop méritent aussi une bonne expérience.

Quel est l'impact business concret des Core Web Vitals ?#

Selon une étude Google/Deloitte (2023), une amélioration de 100 ms du temps de chargement augmente les conversions de 8 % sur les sites e-commerce. Vodafone a observé une augmentation de 31 % des ventes après avoir amélioré son LCP de 31 % (source : web.dev case studies).

Sources#

Lien copié dans le presse-papiers

À lire aussi