Depuis mars 2024, INP a remplacé FID. En 2026, les trois Core Web Vitals (LCP, INP, CLS) sont un signal de ranking stable, et surtout : un mauvais score casse le taux de rebond et pénalise toute la chaîne de conversion.
Les seuils
- LCP (Largest Contentful Paint) : < 2,5s bon, > 4s mauvais
- INP (Interaction to Next Paint) : < 200ms bon, > 500ms mauvais
- CLS (Cumulative Layout Shift) : < 0,1 bon, > 0,25 mauvais
Semaine 1 — Audit et quick-wins
Jour 1 : mesure de base
Outils gratuits à utiliser dans cet ordre :
- PageSpeed Insights (données de terrain + lab)
- Search Console → Core Web Vitals (données CrUX agrégées)
- Chrome DevTools → Performance → Lighthouse (reproduction locale)
- WebPageTest.org (filmstrip détaillé, waterfall)
Jour 2-3 : optimiser LCP
LCP mesure le temps d'affichage du plus gros élément visible (souvent une image hero ou un titre). Les wins :
- Preload l'image LCP :
<link rel="preload" as="image" href="/blog/hero.webp"> - Servir en WebP/AVIF : −60 à −80 % de poids vs JPEG
- Dimensions explicites (
width,height) - CDN avec edge locations proches de vos utilisateurs (Vercel, Cloudflare)
- Supprimer les render-blocking resources (JS synchrone, CSS externe bloquant)
- Inline critical CSS pour le above-the-fold
Jour 4-5 : optimiser CLS
CLS mesure les sauts de contenu pendant le chargement. Les causes fréquentes :
- Images sans
width/height→ toujours les préciser - Fonts qui swap tardivement →
font-display: optionalou preload +size-adjust - Pubs ou embeds sans hauteur réservée →
aspect-ratioou conteneur fixe - Contenu injecté dynamiquement au-dessus du fold (bannières cookies) → réserver l'espace
Jour 6-7 : optimiser INP
INP mesure la réactivité aux interactions (clic, scroll). Les leviers :
- Réduire le JavaScript main-thread : code-splitting, dynamic imports
- Débouncer les handlers coûteux
- Déplacer les tâches lourdes en Web Worker
- Utiliser
requestIdleCallbackpour les tâches non-critiques - Désactiver les tiers scripts lourds ou les charger après interaction
Semaine 2 — Réécritures ciblées
Migration vers images modernes
Si votre site sert encore du JPEG/PNG classique : Next.js Image ou un CDN image (Cloudinary, imgix, Vercel Image) génère automatiquement WebP/AVIF. Gain typique : −50 % de LCP sur les pages hero.
Suppression des tiers scripts inutiles
Chaque tag tiers ajoute 50 à 300ms d'INP. Audit :
- Google Analytics → gtag → vérifier le nécessaire, envisager Plausible ou PostHog
- Facebook Pixel, LinkedIn Insight → ne charger qu'après consentement
- Chat widgets (Intercom, Drift) → lazy-load après 3s ou sur scroll
- A/B testing tools → délai de chargement en non-critique
Migration de stack si nécessaire
Si vous êtes sur WordPress shared hosting et que rien ne passe au vert malgré les correctifs, la stack elle-même peut être le bloqueur. Voir Next.js vs WordPress et le comparatif hébergement.
Cas concret : e-commerce passé de rouge à vert en 10 jours
| Métrique | Avant | Après |
|---|---|---|
| LCP mobile | 4,8s | 1,9s |
| INP | 680ms | 140ms |
| CLS | 0,34 | 0,04 |
| Taux de rebond | 62 % | 41 % |
| Conversion | 1,4 % | 2,3 % |
Actions : preload image hero, compression WebP, hauteur explicite sur bannière promo, lazy-load du chat, code-splitting des composants de checkout.
Les Core Web Vitals ne sont pas un objectif en soi. C'est un proxy pour "le site marche bien". Optimiser CWV, c'est optimiser l'expérience — le SEO suit automatiquement.
Monitoring continu
Une fois au vert, mettre en place :
- Alertes Search Console pour toute dégradation
- RUM (Real User Monitoring) : Vercel Speed Insights, Sentry, SpeedCurve
- Review CWV mensuelle avec l'équipe
Lab data vs field data — pourquoi vos scores divergent
Une frustration classique — Lighthouse affiche 96 en local et Search Console signale "à améliorer" sur 40 % de l'URL. Ce n'est pas un bug, c'est la différence entre données de laboratoire et données de terrain (CrUX). Comprendre l'écart change radicalement la priorisation.
Ce que mesure Lighthouse en local
Lighthouse simule un Moto G4 sur 4G ralentie (1,6 Mbps download, 150ms RTT) depuis votre machine de dev — souvent fibre, proche du serveur d'origine. La page est testée à froid, sans cache, en mode incognito, et chaque run produit un score différent (variance de ±5 points typique). C'est un test synthétique reproductible, pas une mesure d'usage.
Ce que mesure CrUX (le terrain)
Le Chrome User Experience Report agrège anonymement les visites réelles des utilisateurs Chrome connectés, sur les 28 derniers jours. Google publie le P75 — autrement dit, la valeur sous laquelle se situent 75 % des sessions. Si votre INP P75 vaut 410 ms, cela signifie qu'un quart de vos visiteurs subissent au moins 410 ms de latence à chaque interaction. Vous pouvez avoir un Lighthouse vert et un CrUX rouge si :
- Votre trafic mobile dépasse 60 % et l'audit Lighthouse a été lancé en desktop
- Vos utilisateurs sont en zones 4G médiocres (campagne, transports) alors que vous testez en fibre
- Un cookie banner ou une extension navigateur bloque l'INP en conditions réelles
- Le service worker / cache HTTP masque la latence du TTFB initial
Méthode : trianguler avec un RUM
Installer un RUM léger (Vercel Speed Insights, Plausible Web Vitals, Sentry Performance) permet de segmenter par device, géographie, type de connexion et URL. C'est la seule manière de répondre à la question : "où, exactement, mes utilisateurs souffrent ?". Sur un site testé récemment, le P75 mobile INP global était de 240 ms, mais une fois segmenté par page la fiche produit montait à 580 ms — un seul composant React mal mémoïsé. Sans RUM, l'optimisation se serait dispersée sur la home, qui allait déjà très bien.
Tableau comparatif : lab vs field
| Critère | Lab (Lighthouse, WebPageTest) | Field (CrUX, RUM) |
|---|---|---|
| Source des données | Test synthétique unique | Sessions utilisateurs réelles, 28 jours |
| Reproductibilité | Élevée (mêmes conditions) | Faible (variance d'usage) |
| INP mesurable | Non — pas de vraie interaction | Oui — c'est sa vraie métrique |
| Délai de visibilité d'un fix | Immédiat | 14 à 28 jours |
| Utilité | Debug, CI, A/B technique | Décisions produit, SEO |
| Point aveugle principal | Cookie banners, extensions tierces | Bots, sessions < 1s ignorées |
| Outil gratuit recommandé | PageSpeed Insights | Search Console + Vercel Speed Insights |
En résumé : pilotez vos décisions sur le terrain, debuggez en lab. L'inverse est l'erreur la plus commune sur les projets que nous reprenons en migration WordPress → Next.js.
Pièges spécifiques par stack
WordPress — la dette technique invisible
Sur WordPress, l'INP est presque toujours dégradé par 3 sources : jQuery encore actif (Gutenberg en a réduit la dépendance mais beaucoup de thèmes l'embarquent), un page builder lourd (Elementor, WPBakery — chacun ajoute 200 à 600 ko de JS minifié), et la chaîne de plugins. Un audit honnête commence par lister les plugins actifs : tout plugin non utilisé en page d'accueil doit être désactivé sur cette page via un plugin de type Asset CleanUp ou un mu-plugin custom. Gain typique sur la page d'accueil d'un site B2B : −180 ko de JS, −90 ms d'INP.
Le second piège WordPress : les Web Fonts chargées via Google Fonts en CSS @import dans le thème. Le RTT vers fonts.googleapis.com retarde le LCP de 200 à 500 ms en mobile 4G. Solution : self-host les fichiers woff2 (plugin OMGF ou copie manuelle) avec font-display: swap et un preload sur la police critique de l'above-the-fold.
Next.js — les régressions silencieuses
Next.js livre nativement de bonnes métriques, mais trois erreurs reviennent en code review :
- next/image sans
prioritysur le LCP — l'image hero est lazy-loadée par défaut, le LCP grimpe à 3 s. Ajouterprioritysur l'image LCP de chaque page, et seulement celle-là. - Un Client Component qui remonte trop haut — un
'use client'placé dans le layout transforme l'arbre entier en JS hydraté. Garder les Client Components aux feuilles (boutons, formulaires) et passer les enfants en props. - Polices Google via next/font sans
display: 'swap'— bloque le LCP. Toujours configurerdisplayexplicitement.
Shopify — le poids des apps
Sur un Shopify avec 12 apps installées, le poids JS dépasse régulièrement 1,5 Mo. Chaque app injecte ses scripts en synchronisé. Utiliser le rapport "Online Store Speed" pour identifier les apps coûteuses, puis désinstaller systématiquement les apps inutilisées (un audit dans Asset Reports liste les apps citées par 0 page). Le second gros levier : passer le thème en Online Store 2.0, qui charge les sections en lazy. Sur un e-commerce de 80 SKU, ce switch fait gagner −1,2 s de LCP mobile.
Quand un score parfait ne suffit pas — performance perçue
Un site peut avoir 100/100 Lighthouse et "se sentir" lent. La performance perçue ne se mesure pas dans les CWV — elle inclut la cohérence des transitions, la présence de skeleton screens, la latence apparente des micro-interactions. Trois leviers concrets :
View Transitions API
Disponible sur Chromium et bientôt Safari, l'API document.startViewTransition() fait fondre les navigations internes (carte produit → détail produit) en moins de 150 ms de transition lissée. Coût d'implémentation : 30-60 minutes par template. Effet immédiat sur l'impression de fluidité — sans toucher au LCP réel.
Optimistic UI
Sur les actions utilisateur (ajouter au panier, liker, sauvegarder), afficher le résultat immédiatement sans attendre le retour serveur. En cas d'erreur, rollback. La latence ressentie passe de 400 ms à 0 ms. Bibliothèques utiles : React 19 useOptimistic, SWR mutate, TanStack Query optimistic updates.
Skeleton screens calibrés
Un skeleton screen mal proportionné est pire que rien — il provoque un CLS à l'arrivée du contenu réel. La règle : hauteur et largeur du skeleton doivent matcher le contenu final au pixel près, animation shimmer subtile (durée ≥ 1,5 s pour éviter l'effet hypnotique). Pour un e-commerce, voir notre analyse des erreurs de conversion qui inclut un volet performance perçue.
Budget de performance — la discipline qui dure
Sans budget chiffré, les CWV régressent toutes les 6 semaines. Un budget de performance fixe des plafonds non négociables dans le pipeline CI, vérifiés à chaque pull request via Lighthouse CI ou bundlesize.
Exemple de budget pour un site vitrine
- JS first-party : 90 ko gzippé max
- JS third-party (analytics, chat, A/B) : 30 ko max
- CSS : 25 ko gzippé max, dont 12 ko critical inline
- LCP mobile P75 : ≤ 2,2 s (marge de sécurité vs 2,5 s)
- INP P75 : ≤ 180 ms
- Poids total above-the-fold : ≤ 350 ko
Toute PR qui dépasse un seuil bloque la merge — l'auteur doit justifier l'écart en commentaire ou réduire ailleurs. Ce simple garde-fou suffit à maintenir un site au vert sur 24 mois sans audit semestriel coûteux.
Questions fréquentes
Qu'est-ce que les Core Web Vitals ?
Les Core Web Vitals sont 3 indicateurs Google mesurant la qualité d'expérience d'un site : LCP (Largest Contentful Paint), INP (Interaction to Next Paint) et CLS (Cumulative Layout Shift). Ils sont un facteur de ranking depuis 2021.
Quels sont les seuils pour passer au vert ?
Bon : LCP < 2,5s, INP < 200ms, CLS < 0,1. Mauvais : LCP > 4s, INP > 500ms, CLS > 0,25. Les valeurs intermédiaires sont en 'à améliorer'.
Qu'est-ce qui a remplacé FID en 2024 ?
INP (Interaction to Next Paint) a remplacé FID (First Input Delay) en mars 2024. INP mesure toutes les interactions, pas seulement la première, ce qui reflète mieux l'expérience réelle.
Les Core Web Vitals impactent-ils vraiment le SEO ?
Oui, mais modérément. C'est un tiebreaker entre pages de qualité de contenu équivalente. Plus important : un mauvais score augmente le taux de rebond de 30 à 60 %, ce qui impacte indirectement le ranking.
Combien de temps après une optimisation les CWV remontent-ils dans Search Console ?
Comptez 14 à 28 jours. CrUX agrège les sessions sur une fenêtre glissante de 28 jours et publie au P75 — un fix immédiat ne déplace l'aiguille qu'une fois la moitié de la fenêtre renouvelée. Pour valider en lab plus vite, lancez PageSpeed Insights toutes les 48 h sur 3-4 URL types et comparez la courbe lab.
Mon site WordPress est lent malgré tous les plugins d'optimisation — que faire ?
Les plugins comme WP Rocket ou LiteSpeed Cache compressent et minifient, mais ne résolvent pas la dette structurelle (jQuery, page builder, plugins lourds). Au-delà de 4-5 plugins d'optimisation empilés, le ROI s'effondre. Si vous restez bloqué sous Lighthouse 70 mobile, c'est généralement le signal qu'une migration vers Next.js ou Astro est plus rentable que continuer à empiler des correctifs.
Faut-il viser 100/100 sur Lighthouse ?
Non. Le ROI s'effondre au-delà de 90. Passer de 85 à 95 prend typiquement 2-3 jours de dev ; passer de 95 à 100 peut prendre 1-2 semaines pour un gain SEO indétectable. Visez vert au P75 sur le terrain, c'est ce que Google récompense — un Lighthouse à 88 avec CrUX au vert vaut mieux qu'un Lighthouse à 100 avec CrUX à l'orange.
Le score CWV s'applique-t-il par URL ou globalement ?
Par URL — ou plus précisément par groupe d'URL similaires que CrUX regroupe automatiquement (templates). Vous pouvez avoir une home au vert et des pages produit à l'orange, et seules ces dernières seront pénalisées dans les SERP. Search Console liste les URL fautives, ce qui permet de prioriser sans toucher au reste du site.
Les Core Web Vitals comptent-ils pour le SEO sur mobile et desktop séparément ?
Oui. Google publie deux indices CrUX distincts (mobile et desktop) et applique le signal de ranking par device. Mobile pèse plus lourd dans la pratique parce que l'indexation est mobile-first et que la majorité du trafic vient de smartphones. Optimiser desktop sans toucher au mobile ne sert à rien côté SEO.
Un CDN suffit-il pour passer les CWV au vert ?
Non — un CDN règle le TTFB et accélère le LCP des assets statiques, mais ne fait rien pour l'INP (qui dépend du JS exécuté côté client) ni pour le CLS (qui dépend du code HTML/CSS). Sur un site lourd en JS tiers, passer de OVH à Cloudflare gagne 200-400 ms de LCP mais laisse INP et CLS inchangés. Le CDN est nécessaire mais pas suffisant.
Questions fréquentes
Qu'est-ce que les Core Web Vitals en 2026 ?
Trois indicateurs Google mesurant la qualité d'expérience d'un site : LCP (Largest Contentful Paint, ≤ 2,5 s), INP (Interaction to Next Paint, ≤ 200 ms — a remplacé FID en mars 2024), CLS (Cumulative Layout Shift, ≤ 0,1). Facteur de ranking depuis 2021.
Qu'est-ce qui a remplacé FID ?
INP (Interaction to Next Paint) a remplacé FID (First Input Delay) le 12 mars 2024 dans les Core Web Vitals officiels. INP mesure la latence de toutes les interactions de la page (clics, taps, touches), pas seulement la première — ce qui reflète mieux la réactivité réelle.
Quels sont les seuils 'Bon' à viser en 2026 ?
LCP ≤ 2,5 s, INP ≤ 200 ms, CLS ≤ 0,1, TTFB ≤ 600 ms. Au 75e percentile (P75) sur 28 jours, mesuré par Chrome User Experience Report (CrUX).
Les Core Web Vitals impactent-ils vraiment le SEO ?
Oui, mais modérément. C'est un tiebreaker entre pages de qualité de contenu équivalente. Plus important : un mauvais score augmente le taux de rebond de 30 à 60 %, ce qui impacte indirectement le ranking et les revenus.
Comment mesurer mes Core Web Vitals gratuitement ?
PageSpeed Insights (pagespeed.web.dev) pour un test ponctuel synthétique + données CrUX réelles. Lighthouse dans Chrome DevTools pour un test local. Search Console > Core Web Vitals pour le suivi continu sur 28 jours. Notre outil d'audit gratuit intègre ces checks.
Site neuf qui passe CWV dès la livraison ?
Nous livrons des sites vitrines Lighthouse ≥ 90 garantis, dès 1050 €. Pas d'optimisation a posteriori : la performance est dans le code dès le jour 1.
Voir l'offre site vitrine →