Comment optimiser ses Core Web Vitals en 2026 — guide technique complet
Seulement 47 % des sites passent les trois Core Web Vitals simultanément en mars 2026. INP (Interaction to Next Paint) reste la métrique la plus difficile avec 43 % d'échec. Ce guide technique couvre les optimisations INP, LCP et CLS avec du code prêt à copier-coller, des benchmarks réels et le workflow Lighthouse 13.

Les métriques CWV en 2026 : ce qui a changé
Les trois seuils restent identiques : INP ≤ 200 ms, LCP ≤ 2,5 s, CLS ≤ 0,1, mesurés au 75e percentile des données terrain (CrUX). Ce qui a changé, c'est l'exigence de Google :
| Métrique | Seuil « bon » | Taux d'échec | Pondération Lighthouse 13 |
|---|---|---|---|
| INP | ≤ 200 ms | 43 % | — |
| LCP | ≤ 2,5 s | 32 % | 25 % |
| CLS | ≤ 0,1 | 22 % | 25 % |
| TBT (proxy INP en lab) | ≤ 200 ms | — | 30 % |
| FCP | ≤ 1,8 s | — | 10 % |
| Speed Index | — | — | 10 % |
Lighthouse 13 (Chrome 143, oct. 2025) a consolidé ses audits en « Performance Insights ». Seules les données terrain (CrUX) comptent pour le ranking — les scores lab servent au diagnostic, pas au classement.
Optimiser INP : le défi principal de 2026
INP mesure le cycle complet de toutes les interactions (clics, taps, clavier) — pas seulement la première comme l'ancien FID. Il se décompose en 3 phases :
- Input Delay — réduire avec
defer/asyncsur les scripts,requestIdleCallbackpour le travail non critique - Processing Duration — découper les longues tâches avec
scheduler.yield(), utiliserrequestAnimationFramepour les mises à jour DOM - Presentation Delay — DOM < 1 500 éléments,
content-visibility: auto, CSScontain: layout
Code — scheduler.yield() pour découper les tâches longues :
async function processLargeDataset(items) {
const chunks = chunkArray(items, 50);
for (const chunk of chunks) {
chunk.forEach(item => heavyTransform(item));
await scheduler.yield();
}
}En React : startTransition et useDeferredValue pour les mises à jour non urgentes. En Vue : v-memo. En Angular : @defer.
Benchmark réel : QuintoAndar a réduit son INP de 80 % et observé +36 % de conversions.
Optimiser LCP : les 4 phases à maîtriser
72 % des pages ont une image comme élément LCP. Les 5 fixes les plus impactants :
<link rel="preload" as="image" href="/hero.webp" fetchpriority="high">— économise 200-800 ms- Formats AVIF/WebP avec
<picture>et fallback JPEG - JAMAIS
loading="lazy"sur l'image LCP — 16-17 % des sites font encore cette erreur - CSS critique inline +
preconnectpour les CDN - SSR/SSG pour les SPA — Next.js Server Components, Astro, Qwik
Cible TTFB : < 200 ms (gold standard). Préchargement des polices avec font-display: swap et métriques de fallback ajustées (size-adjust, ascent-override).
Optimiser CLS : stabilité visuelle
Les 4 règles d'or du CLS :
- Dimensions explicites (
width,height,aspect-ratio) sur tous les médias - Ajustement des métriques de polices fallback (
size-adjust,ascent-override,descent-override) - Espace réservé pour les bannières cookies (
position: fixed,min-height) - Animations uniquement sur
transformetopacity— jamaisheight/width/top
Benchmark : Rakuten 24 a corrigé son CLS et observé +53 % de revenu par visiteur. Les sites passant les 3 CWV ont en moyenne 24 % de taux de rebond en moins.
Outils et workflow de monitoring
| Type | Outil | Usage |
|---|---|---|
| Lab | Lighthouse 13, PageSpeed Insights, WebPageTest | Diagnostic, debugging |
| Terrain | CrUX, Search Console, web-vitals JS | Impact réel, ranking |
Code — monitoring INP en production :
import { onINP } from 'web-vitals/attribution';
onINP((metric) => {
navigator.sendBeacon('/api/analytics', JSON.stringify({
metric: 'INP', value: metric.value,
inputDelay: metric.attribution.inputDelay,
processing: metric.attribution.processingDuration,
presentation: metric.attribution.presentationDelay,
}));
});Seuils d'alerte recommandés : INP > 160 ms, LCP > 2,0 s, CLS > 0,08. Comptez 4 à 6 semaines pour voir les améliorations dans Search Console, 2 à 3 mois pour l'impact ranking.
Questions fréquentes
fetchpriority, le CSS critique inline, et content-visibility. Score PageSpeed moyen : 95+ sur mobile.