Core Web Vitals pour les boutiques en ligne : LCP, INP et CLS expliqués
Ce que mesurent LCP, INP et CLS, les seuils au 75e centile, données de laboratoire ou de terrain, et les correctifs courants sur Shopify et WooCommerce.
Rédaction FixReports15 min de lecture
Les Core Web Vitals (Signaux Web essentiels) sont trois métriques de Google qui décrivent l’expérience réelle des visiteurs sur une page : le Largest Contentful Paint (LCP) pour le chargement, l’Interaction to Next Paint (INP) pour la réactivité et le Cumulative Layout Shift (CLS) pour la stabilité visuelle. Une page est validée lorsqu’au moins 75 % des visites se situent dans la plage « bonne » : LCP de 2,5 secondes au maximum, INP de 200 millisecondes au maximum et CLS inférieur ou égal à 0,1, mesurés séparément sur mobile et sur ordinateur. Sur les boutiques en ligne, les mauvais résultats s’expliquent généralement par des images de bannière principale et de produit trop lourdes ou chargées en différé, des scripts d’applications et de suivi, des polices web, ainsi que des bandeaux ou des widgets d’avis qui poussent le contenu vers le bas après l’affichage de la page.
Points clés
- Les niveaux « bon », « à améliorer » et « mauvais » sont évalués au 75e centile des chargements de page : le LCP est mauvais au-delà de 4 secondes, l’INP au-delà de 500 ms et le CLS au-delà de 0,25 (web.dev (s’ouvre dans un nouvel onglet)).
- L’INP a remplacé le First Input Delay (FID) parmi les Core Web Vitals le 12 mars 2024 (web.dev (s’ouvre dans un nouvel onglet)).
- Les données de terrain du Chrome UX Report sont une moyenne glissante sur 28 jours et n’incluent pas Chrome sur iOS (Chrome for Developers (s’ouvre dans un nouvel onglet)).
- Le filtre
image_tagde Shopify charge les images immédiatement dans les trois premières sections d’un modèle et en différé à partir de la quatrième, sauf si vous modifiez ce comportement (Shopify (s’ouvre dans un nouvel onglet)). - Depuis WordPress 6.3, le cœur de WordPress ajoute
fetchpriority="high"à l’image qu’il estime la plus susceptible d’être l’élément LCP (Make WordPress Core (s’ouvre dans un nouvel onglet)).
Quels sont les seuils des Core Web Vitals ?
Une page respecte les Core Web Vitals lorsque le 75e centile de ses chargements se situe dans la plage « bonne » pour les trois métriques.
| Métrique | Ce qu’elle mesure | Bon | À améliorer | Mauvais |
|---|---|---|---|---|
| LCP | Temps nécessaire à l’affichage de la plus grande image, vidéo ou du plus grand bloc de texte visible dans la fenêtre | 2,5 s ou moins | Plus de 2,5 s et jusqu’à 4,0 s | Plus de 4,0 s |
| INP | Temps écoulé entre un clic, un appui ou une pression de touche et l’affichage de l’image suivante | 200 ms ou moins | Plus de 200 ms et jusqu’à 500 ms | Plus de 500 ms |
| CLS | Ampleur des déplacements inattendus du contenu visible | 0,1 ou moins | Plus de 0,1 et jusqu’à 0,25 | Plus de 0,25 |
Seuils tirés des guides de web.dev sur le LCP (s’ouvre dans un nouvel onglet), l’INP (s’ouvre dans un nouvel onglet) et le CLS (s’ouvre dans un nouvel onglet), en octobre 2026.
Le 75e centile signifie que le résultat reflète la plupart des visiteurs, et pas seulement les plus rapides, et Google distingue le mobile et l’ordinateur (s’ouvre dans un nouvel onglet). PageSpeed Insights valide une page lorsque les trois métriques sont bonnes ; faute de données INP suffisantes, il évalue le LCP et le CLS seuls (documentation de PageSpeed Insights (s’ouvre dans un nouvel onglet)). Google indique que les Core Web Vitals stables ne changeront pas plus d’une fois par an.
Sur une boutique, l’élément LCP est souvent la bannière principale ou l’image principale du produit : c’est pourquoi la gestion des images compte autant.
Pourquoi l’INP a-t-il remplacé le FID en mars 2024 ?
L’INP a remplacé le FID parce que le FID ne mesurait que la première interaction, et seulement une partie de son délai, alors que l’INP prend en compte les interactions sur toute la durée de la visite.
Google a annoncé en mai 2023 que l’INP deviendrait un Core Web Vital, et le changement a pris effet le 12 mars 2024 (s’ouvre dans un nouvel onglet). Le FID ne mesurait que la première interaction, et uniquement son délai d’entrée, sans le temps passé à exécuter les gestionnaires d’événements ni à afficher le résultat. L’INP observe les clics, les appuis et les pressions de touche pendant toute la visite et retient l’interaction la plus longue, en ignorant les valeurs aberrantes ; le défilement et le survol ne comptent pas. Les utilisateurs des API CrUX et PageSpeed Insights avaient jusqu’au 9 septembre 2024 pour effectuer la transition (web.dev (s’ouvre dans un nouvel onglet)).
Chaque interaction comporte trois phases : le délai d’entrée (l’attente pendant que des scripts occupent le navigateur), la durée de traitement (l’exécution des gestionnaires) et le délai de présentation (l’affichage de l’image suivante) (web.dev (s’ouvre dans un nouvel onglet)).
Sur une boutique, ces interactions sont le sélecteur de variantes, les boutons de quantité, l’ajout au panier, le tiroir du panier, les filtres et les menus. Une page pouvait réussir le FID grâce à un premier appui rapide et paraître lente lorsqu’un visiteur ouvrait les filtres plus tard.
Quelle est la différence entre données de laboratoire et données de terrain ?
Les données de laboratoire proviennent d’un test unique réalisé dans des conditions fixes, tandis que les données de terrain sont collectées auprès de vrais visiteurs au fil du temps, et Google recommande de s’appuyer sur les données de terrain pour décider quoi corriger en premier (web.dev (s’ouvre dans un nouvel onglet)).
| Données de laboratoire | Données de terrain | |
|---|---|---|
| Source | Un chargement de page simulé (Lighthouse, Chrome DevTools, la section laboratoire de PageSpeed Insights) | De vrais visiteurs sous Chrome (Chrome UX Report), ou votre propre outil de mesure des utilisateurs réels (RUM) |
| Conditions | Appareil et réseau fixes. Le test mobile par défaut de Lighthouse (s’ouvre dans un nouvel onglet) utilise le profil « Slow 4G » (aller-retour de 150 ms, 1,6 Mbit/s en téléchargement) et un processeur ralenti 4x | Les appareils, réseaux et lieux de vos visiteurs, quels qu’ils soient |
| INP | Non mesuré lors d’un simple chargement de page. Le Total Blocking Time (TBT) en donne une approximation grossière | Mesuré à partir de vraies interactions |
| Idéal pour | Déboguer et vérifier une modification avant sa mise en ligne | Savoir ce que les visiteurs obtiennent réellement |
Le TBT additionne la part de chaque tâche du thread principal qui dépasse 50 ms ; web.dev recommande moins de 200 ms sur un matériel mobile moyen, mais précise qu’il ne remplace pas l’INP (web.dev (s’ouvre dans un nouvel onglet)).
Trois particularités du Chrome UX Report (CrUX) comptent pour les boutiques :
- Il s’agit d’une moyenne glissante sur 28 jours (s’ouvre dans un nouvel onglet), mise à jour chaque jour.
- Il couvre Chrome sur ordinateur et sur Android pour les utilisateurs qui remplissent les conditions de collecte de Chrome. Chrome sur iOS est exclu : une boutique dont les clients utilisent surtout un iPhone ne voit donc des données de terrain que pour une partie de son audience (méthodologie (s’ouvre dans un nouvel onglet)).
- Les pages et les origines n’apparaissent que si elles sont publiquement détectables et suffisamment populaires : une boutique à faible trafic peut donc n’avoir que des données au niveau de l’origine, voire aucune.
Le tableau de bord des performances web (s’ouvre dans un nouvel onglet) de Shopify indique lui aussi le LCP, l’INP et le CLS d’utilisateurs réels au 75e centile, mais sur 30 jours au lieu de 28 : attendez-vous à quelques écarts avec CrUX.
Qu’est-ce qui ralentit le LCP sur les pages d’une boutique ?
Sur les boutiques, un LCP lent s’explique généralement par une image principale trop lourde, découverte tardivement, ou volontairement retardée par le chargement différé ou par une animation.
- Chargement différé de l’image LCP. web.dev recommande de ne jamais le faire (web.dev (s’ouvre dans un nouvel onglet)). Son analyse de pages WordPress a constaté un LCP au 75e centile plus lent sur les sites utilisant le chargement différé natif, et le fait de ne pas différer les images situées au-dessus de la ligne de flottaison a supprimé cette régression (web.dev (s’ouvre dans un nouvel onglet)).
- Image découverte tardivement. Une bannière principale définie comme
background-imageen CSS, ou injectée par un script de diaporama, ne figure pas dans le HTML que le navigateur analyse en premier. Shopify déconseille les arrière-plans CSS pour le contenu de la bannière principale ainsi que les effets de fondu sur l’image LCP (Shopify (s’ouvre dans un nouvel onglet)). - Priorité basse. Les images se chargent en priorité basse tant que la mise en page n’est pas terminée : Shopify recommande donc
fetchpriority="high"sur l’image LCP (Shopify (s’ouvre dans un nouvel onglet)). web.dev précise que l’appliquer à plus d’une ou deux images en réduit l’utilité (web.dev (s’ouvre dans un nouvel onglet)). - CSS et scripts bloquant le rendu. Les feuilles de style volumineuses et les scripts synchrones placés dans le
<head>retardent le rendu même après l’arrivée de l’image (web.dev (s’ouvre dans un nouvel onglet)). - Poids des fichiers et polices. Utilisez des formats modernes,
srcsetetsizes, ainsi qu’un CDN. Pour les polices web, choisissez une valeurfont-displayautre queautooublock.
<!-- Main product image: real src in the HTML, eager, high priority -->
<img src="/images/linen-shirt-1200.webp"
srcset="/images/linen-shirt-600.webp 600w, /images/linen-shirt-1200.webp 1200w"
sizes="(min-width: 990px) 50vw, 100vw"
width="1200" height="1500"
fetchpriority="high"
alt="Natural linen shirt, front view">
<!-- Gallery images below the first screen: lazy -->
<img src="/images/linen-shirt-back-600.webp" loading="lazy"
width="600" height="750" alt="Natural linen shirt, back view">
Qu’est-ce qui rend l’INP lent sur les pages d’une boutique ?
Sur les boutiques, un INP lent signifie généralement qu’il y a trop de JavaScript sur le thread principal, dont une grande partie provient des applications, des balises de suivi et des fonctionnalités du thème : les appuis doivent donc attendre.
Si un client appuie sur « Ajouter au panier » pendant que des scripts d’avis, de chat et d’analyse d’audience s’exécutent encore, l’appui attend. Un sélecteur de variantes qui réaffiche tout le formulaire produit allonge la durée de traitement. Les méga-menus géants et les grilles de collection comportant de nombreuses pastilles augmentent le délai de présentation.
web.dev recommande de fractionner les tâches longues et de rendre la main au thread principal, de mettre à jour l’écran d’abord et de différer le reste, et de réduire la taille du DOM (web.dev (s’ouvre dans un nouvel onglet)). Shopify ajoute des étapes propres aux boutiques : auditer chaque application, pixel et script du thème, différer ce qui n’est pas critique, charger les fonctionnalités au moment de l’interaction et désactiver les extraits anti-scintillement des tests A/B lorsqu’aucun test n’est en cours (Shopify (s’ouvre dans un nouvel onglet)).
Qu’est-ce qui provoque des décalages de mise en page sur les fiches produit et les pages de collection ?
Sur les boutiques, les décalages de mise en page proviennent surtout de contenus qui apparaissent ou changent de taille après le premier rendu : images sans dimensions, barres d’annonce et bandeaux cookies, widgets d’avis, blocs d’applications et changements de police.
web.dev cite comme causes courantes les médias aux dimensions inconnues, le contenu ajouté au-dessus du contenu existant, les widgets tiers qui se redimensionnent d’eux-mêmes et les polices web dont la taille diffère de celle de leur police de secours (web.dev (s’ouvre dans un nouvel onglet)). Sur une boutique, cela correspond à une barre de livraison gratuite insérée en haut de page, à des notes en étoiles qui se chargent après le titre, à un message de paiement en plusieurs fois sous le prix et à des carrousels de recommandations. Shopify signale que les contenus en pop-up peuvent aussi provoquer des décalages (Shopify (s’ouvre dans un nouvel onglet)).
Les décalages qui surviennent dans les 500 ms suivant une action de l’utilisateur ne comptent pas, mais ceux qui se produisent pendant le défilement comptent, et les outils de laboratoire les manquent souvent (web.dev (s’ouvre dans un nouvel onglet)). Donnez aux images des attributs width et height ou une propriété CSS aspect-ratio, réservez de l’espace pour les widgets, affichez les bandeaux en surimpression, réduisez les décalages dus au changement de police avec size-adjust, et animez avec transform plutôt qu’avec top ou left.
/* Reserve space for a reviews summary that loads after the page */
.product-reviews-summary { min-height: 24px; }
/* Keep product cards from jumping while images load */
.product-card img { width: 100%; height: auto; aspect-ratio: 4 / 5; }
Comment améliorer les Core Web Vitals sur Shopify ?
Sur Shopify, l’essentiel des gains vient du chargement immédiat et prioritaire de la première image, de l’allègement des scripts d’applications et de la vérification du résultat dans les rapports de performances web de l’interface d’administration.
Consultez les données dans votre interface d’administration
Un résumé s’affiche sur la page Online Store > Themes, et les rapports complets sur le LCP, l’INP et le CLS se trouvent sous Analytics > Reports. Les données peuvent avoir jusqu’à 36 heures de retard, et le mode privé doit être désactivé (centre d’aide Shopify (s’ouvre dans un nouvel onglet)).
Contrôlez le chargement des images en Liquid
Le filtre image_tag charge en différé les images des sections situées plus bas dans la page, sauf si vous définissez preload (référence de image_tag (s’ouvre dans un nouvel onglet)) : chargement immédiat pour les sections 1 à 3, différé à partir de la section 4. Comme section.index vaut nil dans l’éditeur de thème, testez avec > 3 plutôt qu’avec <= 3 :
{%- if section.index == 1 -%}
{{ section.settings.image | image_url: width: 1600 | image_tag: loading: 'eager', fetchpriority: 'high', widths: '600, 900, 1200, 1600', sizes: '100vw' }}
{%- elsif section.index > 3 -%}
{{ section.settings.image | image_url: width: 1600 | image_tag: loading: 'lazy', sizes: '100vw' }}
{%- else -%}
{{ section.settings.image | image_url: width: 1600 | image_tag: sizes: '100vw' }}
{%- endif -%}
Dans les grilles de produits, Shopify suggère de ne charger immédiatement que les premières cartes (par exemple forloop.index <= 4) (Shopify (s’ouvre dans un nouvel onglet)). Utilisez preload: true avec parcimonie ; Shopify recommande de ne précharger qu’une ou deux ressources découvertes tardivement.
Supprimez ce que laissent les applications
Désactivez les intégrations d’applications inutilisées sous Online Store > Edit theme > App embeds (centre d’aide Shopify (s’ouvre dans un nouvel onglet)). Désinstaller une application supprime ses blocs d’applications, mais les applications qui ont modifié directement les fichiers du thème peuvent laisser du « code fantôme » (ghost code) qui, selon Shopify, peut nuire à la qualité et aux performances (Shopify (s’ouvre dans un nouvel onglet)). Shopify indique aussi que les balises de script (script tags) cesseront de fonctionner le 1er mars 2027. Pour les polices, Shopify recommande son propre CDN ou les polices système plutôt que des services de polices externes (Shopify (s’ouvre dans un nouvel onglet)).
Comment améliorer les Core Web Vitals sur WooCommerce ?
Sur WooCommerce, vérifiez que les extensions ne remplacent pas la priorisation des images de WordPress, mettez tout en cache sauf le panier et la page de paiement, et supprimez les scripts chargés partout sans nécessité.
- Conservez la gestion des images du cœur de WordPress. Depuis WordPress 6.3 (publié le 8 août 2023), le cœur ajoute
fetchpriority="high"à l’image LCP probable (d’au moins 50 000 pixels carrés par défaut) et n’applique pas le chargement différé aux trois premières images du contenu (Make WordPress Core (s’ouvre dans un nouvel onglet)). Si une extension d’optimisation ajoute son propre chargement différé, vérifiez qu’elle exclut la bannière principale et l’image principale du produit. - Mettez en cache les pages, pas les paniers. Le guide de WooCommerce recommande une mise en cache des pages côté serveur ou par extension et un CDN, tout en laissant les pages de panier et de paiement hors cache (documentation développeurs WooCommerce (s’ouvre dans un nouvel onglet)).
- Vérifiez les fragments de panier. Depuis WooCommerce 7.8, le script des fragments de panier (cart fragments) ne se charge que là où un widget Panier est présent, mais certains thèmes intègrent ce widget en dur. Le bloc Mini-panier n’utilise pas les fragments de panier (blog développeurs WooCommerce (s’ouvre dans un nouvel onglet)).
- Repérez les extensions lourdes. WooCommerce suggère Query Monitor pour identifier les extensions lentes, ainsi que le report du JavaScript non critique.
Si votre mise en page affiche plus de trois images au-dessus de la ligne de flottaison, vous pouvez relever le seuil de WordPress :
// functions.php: skip lazy loading for the first 4 content images (default is 3)
add_filter( 'wp_omit_loading_attr_threshold', function () {
return 4;
} );
Combien de temps faut-il pour que les corrections se voient ?
Les tests en laboratoire montrent immédiatement l’effet d’une correction, mais les données de terrain mettent jusqu’à quatre semaines environ à le refléter entièrement, car CrUX fait la moyenne des 28 jours précédents.
Exécutez le test en laboratoire plusieurs fois avant et après une modification, car les résultats varient d’une exécution à l’autre, puis surveillez les données de terrain dans PageSpeed Insights, le rapport Core Web Vitals de Search Console ou les rapports de Shopify. Une analyse gratuite donne une première lecture en une minute environ. Le Rapport Performance exécute un test mobile en laboratoire avec bridage (4G lente, processeur ralenti 4x) et y ajoute les données de terrain du Chrome UX Report, y compris l’INP lorsque Google dispose d’assez de données pour votre boutique.
Foire aux questions
Les Core Web Vitals influencent-ils le classement dans Google ?
Google indique que les Core Web Vitals sont utilisés par ses systèmes de classement, mais que de bons scores ne garantissent pas les premières positions et qu’il affiche toujours le contenu le plus pertinent, même lorsque l’expérience sur la page est médiocre (Google Search Central (s’ouvre dans un nouvel onglet)).
Pourquoi PageSpeed Insights n’affiche-t-il aucune donnée de terrain pour ma boutique ?
CrUX n’inclut que les pages et les origines publiquement détectables qui comptent suffisamment de visiteurs Chrome éligibles. Une boutique à faible trafic peut n’avoir que des données au niveau de l’origine, voire aucune : appuyez-vous alors sur les tests en laboratoire et sur les rapports de votre plateforme.
Faut-il un score Lighthouse de 90 ou plus pour valider les Core Web Vitals ?
Non. Le score de performance Lighthouse est un résultat de laboratoire, alors que l’évaluation des Core Web Vitals repose sur les données de terrain au 75e centile : une page peut donc être validée avec un score Lighthouse modeste et échouer avec un score élevé.
Faut-il charger toutes les images produit en différé ?
Non. Chargez en différé les images situées sous le premier écran, mais chargez immédiatement la bannière principale et l’image principale du produit, avec fetchpriority="high" sur l’une d’elles.
Pourquoi mes résultats sur mobile sont-ils moins bons que sur ordinateur ?
Google mesure séparément le mobile et l’ordinateur, et les téléphones disposent de processeurs et de réseaux plus lents. Le test mobile de Lighthouse simule ces conditions avec un profil Slow 4G et un processeur ralenti 4x.
Sources
- Web Vitals (s’ouvre dans un nouvel onglet), web.dev (Google), mis à jour le 31 octobre 2024
- Largest Contentful Paint (LCP) (s’ouvre dans un nouvel onglet), web.dev, mis à jour le 4 septembre 2025
- Interaction to Next Paint (INP) (s’ouvre dans un nouvel onglet), web.dev, mis à jour le 2 septembre 2025
- Cumulative Layout Shift (CLS) (s’ouvre dans un nouvel onglet), web.dev, mis à jour le 12 avril 2023
- Advancing Interaction to Next Paint (s’ouvre dans un nouvel onglet), web.dev, 10 mai 2023
- Interaction to Next Paint becomes a Core Web Vital on March 12 (s’ouvre dans un nouvel onglet), web.dev, 12 mars 2024
- Why lab and field data can be different (s’ouvre dans un nouvel onglet), web.dev, mis à jour le 18 juillet 2022
- Optimize Largest Contentful Paint (s’ouvre dans un nouvel onglet), web.dev, mis à jour le 31 mars 2025
- Optimize Interaction to Next Paint (s’ouvre dans un nouvel onglet), web.dev, mis à jour le 2 septembre 2025
- Optimize Cumulative Layout Shift (s’ouvre dans un nouvel onglet), web.dev, mis à jour le 7 février 2025
- Total Blocking Time (TBT) (s’ouvre dans un nouvel onglet), web.dev, consulté le 22 octobre 2026
- The performance effects of too much lazy loading (s’ouvre dans un nouvel onglet), web.dev, mis à jour le 31 mars 2022
- CrUX methodology (s’ouvre dans un nouvel onglet), Chrome for Developers, mis à jour le 20 juin 2024
- CrUX API (s’ouvre dans un nouvel onglet), Chrome for Developers, mis à jour le 13 octobre 2026
- About PageSpeed Insights (s’ouvre dans un nouvel onglet), Google for Developers, mis à jour le 21 octobre 2024
- Lighthouse throttling documentation (s’ouvre dans un nouvel onglet), GoogleChrome sur GitHub, consulté le 22 octobre 2026
- Understanding page experience in Google Search results (s’ouvre dans un nouvel onglet), Google Search Central, mis à jour le 22 septembre 2026
- Performance best practices for Shopify themes (s’ouvre dans un nouvel onglet), Shopify, consulté le 22 octobre 2026
- Never lazy load the LCP image (s’ouvre dans un nouvel onglet), Shopify, consulté le 22 octobre 2026
- Set fetchpriority high on the LCP image (s’ouvre dans un nouvel onglet), Shopify, consulté le 22 octobre 2026
- Liquid filters: image_tag (s’ouvre dans un nouvel onglet), Shopify, consulté le 22 octobre 2026
- Web performance dashboard (s’ouvre dans un nouvel onglet), centre d’aide Shopify, consulté le 22 octobre 2026
- Web performance (s’ouvre dans un nouvel onglet), centre d’aide Shopify, consulté le 22 octobre 2026
- Apps in your theme (s’ouvre dans un nouvel onglet), centre d’aide Shopify, consulté le 22 octobre 2026
- Migrate to theme app extensions (s’ouvre dans un nouvel onglet), Shopify, consulté le 22 octobre 2026
- Image performance enhancements in WordPress 6.3 (s’ouvre dans un nouvel onglet), Make WordPress Core, 13 juillet 2023
- Version 6.3 (s’ouvre dans un nouvel onglet), documentation WordPress.org, version publiée le 8 août 2023
- How to optimize performance for WooCommerce stores (s’ouvre dans un nouvel onglet), documentation développeurs WooCommerce, consulté le 22 octobre 2026
- Best practices for the use of the cart fragments API (s’ouvre dans un nouvel onglet), blog développeurs WooCommerce, 16 juin 2023
Tous les guides
- Checklist fiche produit : ce qui freine l’achat en ligneChecklist fiche produit d’après Baymard et WebAIM : prix, livraison et retours, photos, avis, ajout au panier sur mobile, pop-ups, recherche, clavier.
- Checklist SEO technique pour les boutiques en ligneSEO technique pour Shopify et WooCommerce : noindex, robots.txt, sitemap, balises title, H1, canonical, données structurées Product, Open Graph, alt.
- L’Acte européen sur l’accessibilité et les boutiques en ligne : ce qui s’applique depuis juin 2025Depuis le 28 juin 2025, l’EAA couvre les boutiques vendant aux consommateurs de l’UE : champ d’application, microentreprises, EN 301 549, WCAG, informations.