Retour au blog
10 min de lecture
Guide

Améliorer le CLS : corriger l'instabilité visuelle de votre site

Images, polices, contenus injectés : les trois causes principales d'un mauvais CLS, avec les correctifs à fort impact et la méthode pour mesurer vos progrès sur WordPress et tous les CMS.

Points clés
  • Le CLS mesure la stabilité visuelle d'une page et doit rester sous 0,1 pour satisfaire les Core Web Vitals de Google.
  • Images sans dimensions, polices mal chargées et contenus injectés dynamiquement sont les trois causes principales d'un mauvais CLS.
  • Un diagnostic ciblé avec les bons outils permet de corriger le CLS en quelques interventions, sans refonte complète du site.

Vous présentez un rapport d'audit à votre client, le score PageSpeed affiche 91, et pourtant la Search Console signale un CLS en rouge sur mobile. Le bouton de contact saute de 200 pixels pendant le chargement, le client l'a vu, et votre rapport perd toute crédibilité. Ce scénario, les freelances et agences web le vivent chaque semaine.

Améliorer le CLS d'un site ne demande ni refonte ni budget massif. Ce guide couvre le fonctionnement de la métrique, les causes techniques à investiguer, les correctifs classés par impact et la méthode pour mesurer vos progrès. Chaque recommandation est applicable sur WordPress comme sur les autres CMS, et les scripts bloquants qui ralentissent le chargement font partie des points à vérifier en parallèle.

Corriger le CLS : stabiliser l'instabilité visuelle d'un site web

Qu'est-ce que le CLS et pourquoi il compte pour votre référencement

Le CLS dans l'écosystème Core Web Vitals

Le Cumulative Layout Shift, ou CLS, quantifie l'instabilité visuelle d'une page web. Contrairement au LCP (Largest Contentful Paint) qui mesure la vitesse de chargement ou à l'INP (Interaction to Next Paint, qui a remplacé le FID en mars 2024) qui évalue la réactivité aux interactions, le CLS s'intéresse à ce que l'utilisateur voit bouger sans l'avoir demandé.

Chaque mouvement imprévu d'un élément visible dans le viewport génère un score de décalage. Ce score est calculé en multipliant la fraction d'impact (la surface d'écran affectée) par la fraction de distance (l'amplitude du déplacement). Google agrège ces décalages par fenêtres de session, chacune limitée à cinq secondes maximum, avec moins d'une seconde entre chaque décalage. Le score CLS final correspond à la fenêtre de session la plus élevée, pas à la somme de tous les décalages de la page.

Les seuils Google et ce qu'ils impliquent en SEO

Google considère qu'un CLS inférieur à 0,1 est bon. Entre 0,1 et 0,25, la page nécessite une amélioration. Au-delà de 0,25, le score est jugé mauvais. Ces seuils s'appliquent au 75e percentile des visites réelles, mesurées via le Chrome User Experience Report.

Les Core Web Vitals sont un signal de classement Google depuis mai 2021. Selon les données du Web Almanac 2025, 81 % des pages mobiles atteignent un bon CLS, contre seulement 72 % sur desktop (HTTP Archive, juillet 2025). Pour les sites WordPress, la situation est souvent plus contrastée : les thèmes avec de nombreux éléments dynamiques génèrent des décalages non maîtrisés que les tests lab ne détectent pas toujours.

Les causes principales d'un mauvais CLS

Images et médias sans dimensions explicites

C'est la cause la plus fréquente. Quand une image est insérée dans le HTML sans attributs width et height, le navigateur ne peut pas réserver l'espace nécessaire avant le chargement. L'image apparaît, pousse le contenu vers le bas, et génère un décalage de mise en page. Le même problème se produit avec les vidéos intégrées, les iframes YouTube et les embeds de réseaux sociaux.

Sur WordPress, l'éditeur Gutenberg ajoute normalement les dimensions aux images uploadées via la médiathèque. Mais les images insérées via des page builders (Elementor, Divi, WPBakery) ou via du code personnalisé dans un thème enfant perdent souvent ces attributs. Les images de fond en CSS ne sont pas concernées par le CLS puisqu'elles ne déplacent pas les éléments adjacents, mais les images en balise img sans dimensions restent un piège courant.

Polices web et effets de swap

Le chargement des polices personnalisées provoque deux phénomènes visibles. Le FOUT (Flash of Unstyled Text) affiche d'abord la police de substitution, puis bascule vers la police finale, ce qui modifie la taille des caractères et décale tous les éléments en dessous. Le FOIT (Flash of Invisible Text) masque le texte jusqu'au chargement de la police, puis l'affiche d'un coup avec le même effet.

Un site qui utilise trois ou quatre familles de polices Google Fonts sans stratégie de préchargement multiplie les risques. Dans les audits réalisés avec Orilyt, nous constatons régulièrement que les sites utilisant plus de deux polices personnalisées sans préchargement présentent un CLS mobile systématiquement supérieur à 0,15. La solution passe par le préchargement et un fallback dimensionnellement proche de la police finale.

Contenus injectés dynamiquement

Les bannières de consentement cookies, les barres de notification, les widgets de chat et les encarts publicitaires s'insèrent souvent dans le DOM après le rendu initial. Si ces éléments apparaissent au-dessus du contenu visible, ils poussent tout le reste vers le bas. Les publicités sont particulièrement problématiques parce que leur taille finale dépend de l'enchère en temps réel, rendant impossible la réservation d'un espace fixe.

Les contenus chargés en lazy loading mal configuré provoquent aussi des décalages. Un carrousel d'images qui se redimensionne au chargement de chaque slide, un formulaire qui apparaît après une requête AJAX, ou un bloc de recommandations produit qui s'insère au milieu d'un article, chaque injection tardive sans espace réservé alimente le CLS.

Diagnostiquer le CLS avec précision

Données terrain vs données lab

Le diagnostic du CLS commence toujours par les données terrain. La Google Search Console affiche le rapport Signaux Web Essentiels, qui regroupe les pages par statut (bon, à améliorer, médiocre) en se basant sur les données CrUX des 28 derniers jours. Si la Search Console signale un problème de CLS, c'est que vos utilisateurs le subissent concrètement.

PageSpeed Insights combine données terrain (CrUX) et données lab (Lighthouse). Les données terrain montrent le CLS réel au 75e percentile, tandis que Lighthouse mesure uniquement le CLS au chargement initial. L'écart entre les deux révèle souvent des décalages post-chargement invisibles en test lab. C'est une distinction fondamentale que beaucoup de professionnels négligent, et un score seul ne suffit jamais à qualifier la santé d'un site.

Localiser les éléments responsables dans le navigateur

Dans Chrome DevTools, l'onglet Performance permet d'enregistrer une session complète. La piste Layout Shifts affiche chaque décalage avec un marqueur violet. En cliquant sur un marqueur, le panneau Summary détaille l'élément déplacé et l'amplitude du mouvement. Attention : l'élément signalé est souvent la victime du décalage (le paragraphe qui bouge), pas la cause (l'image qui s'insère au-dessus).

L'extension Chrome Web Vitals Debugger superpose visuellement les zones de décalage en temps réel pendant la navigation. Un audit Orilyt identifie automatiquement les images sans dimensions, les polices non préchargées et les ressources bloquantes qui contribuent au CLS. Le rapport technique détaille chaque alerte avec le correctif recommandé, ce qui accélère considérablement le diagnostic pour les agences qui gèrent plusieurs sites.

Corriger le CLS : les interventions à fort impact

Réserver l'espace pour les images et les médias

La correction la plus efficace consiste à déclarer systématiquement les attributs width et height sur chaque balise img. Le navigateur calcule alors le ratio d'aspect avant le chargement et réserve l'espace correspondant. En CSS, la propriété aspect-ratio combinée à width: 100% et height: auto produit un comportement responsive sans décalage.

Sur WordPress, le plugin WP Rocket propose l'option "Ajouter les dimensions d'image manquantes" qui injecte automatiquement les attributs absents. Pour les iframes et embeds (YouTube, Vimeo, Google Maps), enveloppez-les dans un conteneur avec un aspect-ratio: 16/9 et un overflow: hidden. Cette technique fonctionne aussi pour les emplacements publicitaires si vous connaissez la taille du slot.

Optimiser le chargement des polices

Préchargez les fichiers de police critiques avec une balise link rel="preload" dans le head, en précisant l'attribut as="font" et crossorigin. Limitez-vous à deux fichiers WOFF2 maximum pour le contenu au-dessus de la ligne de flottaison. Dans votre déclaration @font-face, utilisez font-display: swap pour afficher immédiatement le texte en police de substitution, ou font-display: optional si vous préférez éviter tout basculement visible.

Choisissez une police système de substitution dont les dimensions se rapprochent de votre police personnalisée. Arial est un bon fallback pour les polices sans-serif, Georgia pour les polices serif. Pour les sites qui cherchent à optimiser chaque milliseconde de chargement, l'auto-hébergement des polices (plutôt que Google Fonts) supprime une requête DNS et un appel réseau tiers.

Stabiliser les contenus dynamiques

Pour les bannières de consentement cookies, utilisez une implémentation qui se superpose au contenu (position fixed ou sticky) plutôt qu'une insertion qui pousse le contenu. Les barres de notification en haut de page doivent avoir une hauteur fixe réservée dans le CSS, même avant leur chargement.

Pour les widgets de chat, les pop-ups et les éléments injectés par JavaScript, deux stratégies fonctionnent. Soit vous réservez un conteneur vide aux dimensions finales (placeholder), soit vous positionnez l'élément en position: fixed pour qu'il ne perturbe pas le flux du document. Les animations doivent utiliser la propriété CSS transform plutôt que des modifications de top, left, width ou height, car les transformations CSS ne déclenchent pas de layout shift.

Trois scénarios concrets pour agences et freelances

Le site vitrine PME avec un CLS à 0,32

Un freelance WordPress reçoit un site vitrine de 8 pages avec un CLS à 0,32 sur mobile. L'audit révèle trois causes : le slider de la page d'accueil injecte les images sans dimensions, la police Montserrat est chargée depuis Google Fonts sans préchargement, et le widget de prise de rendez-vous Calendly s'insère dans le footer sans espace réservé.

En ajoutant les attributs width/height au slider, en préchargeant Montserrat en WOFF2 auto-hébergé, et en réservant un conteneur de 400 px pour Calendly, le CLS tombe à 0,04 en deux heures d'intervention. Ce type de correction, documenté dans un rapport client lisible et professionnel, justifie une facturation de 300 à 500 euros et ouvre la discussion sur un contrat de maintenance.

Le blog WordPress avec des décalages au scroll

Une agence gère un blog de 200 articles dont le CLS est bon au chargement initial mais explose au scroll. Le diagnostic montre que le lazy loading natif de WordPress charge les images sans placeholder, provoquant des décalages successifs à mesure que le lecteur descend. Les embeds YouTube dans les articles n'ont pas de conteneur dimensionné.

La correction passe par l'ajout d'un aspect-ratio sur toutes les images lazy-loadées et par l'encapsulation des iframes YouTube dans un conteneur responsive. Sur les 200 articles, un script de recherche-remplacement dans la base de données traite le problème en une seule intervention. Le CLS terrain, mesuré sur la Search Console 28 jours plus tard, passe de 0,18 à 0,06. L'agence facture l'intervention comme un audit de performance avec suivi mensuel.

Le site e-commerce avec des publicités instables

Un consultant audite un site PrestaShop dont les fiches produit affichent un CLS à 0,41. Les emplacements publicitaires Google AdSense se redimensionnent dynamiquement selon l'enchère gagnante. Le header contient une barre promotionnelle qui apparaît 2 secondes après le chargement et pousse tout le contenu vers le bas.

La solution consiste à fixer les emplacements publicitaires à une taille minimale (par exemple 300x250 pour un rectangle medium) et à intégrer la barre promotionnelle en position sticky avec une hauteur réservée dans le CSS dès le premier rendu. Le CLS descend à 0,09, juste sous le seuil "bon". Pour un e-commerce, cette amélioration a un impact direct sur le taux de conversion, car les clics accidentels sur les publicités diminuent et l'expérience d'achat devient fluide.

Mesurer les progrès et maintenir un bon CLS dans la durée

Mettre en place un suivi continu

Le CLS n'est pas une métrique que l'on corrige une fois pour toutes. Chaque mise à jour de thème, chaque nouveau plugin, chaque ajout de widget tiers peut réintroduire des décalages. Un suivi mensuel via la Search Console permet de détecter les régressions avant qu'elles n'affectent le classement dans les résultats de recherche.

Pour les agences qui gèrent plusieurs sites clients, le monitoring multi-pages et les rapports en marque blanche permettent de surveiller les métriques de performance en continu et d'alerter dès qu'un seuil est dépassé. Ce suivi proactif transforme une intervention ponctuelle en contrat de maintenance récurrent. Consultez la documentation Orilyt pour intégrer ce suivi dans votre offre.

Intégrer le CLS dans un workflow d'audit complet

Le CLS ne doit pas être traité isolément. Il s'inscrit dans l'évaluation globale des Core Web Vitals, aux côtés du LCP et de l'INP. Un site peut avoir un excellent CLS mais un LCP catastrophique ce qui annule les bénéfices en termes d'expérience utilisateur. Un score seul ne suffit jamais à qualifier la santé d'un site.

Intégrez la vérification du CLS dans chaque audit initial, mais aussi dans vos processus de recette après chaque mise en production. Un test Lighthouse avant et après déploiement, couplé à une surveillance CrUX sur 28 jours, constitue le minimum pour vérifier que vos interventions ne créent pas de régressions inattendues. Cette rigueur de suivi est ce qui différencie un prestataire ponctuel d'un partenaire technique de confiance.

Corriger le CLS d'un site revient à éliminer des irritants que vos clients subissent sans forcément les nommer. Un bouton qui saute, un texte qui se déplace, un clic qui atterrit sur le mauvais lien, ces micro-frustrations ont un coût mesurable en taux de rebond et en conversions perdues. Les correctifs sont souvent simples, rapides, et faciles à documenter dans un rapport professionnel.

Pour un freelance ou une agence, la maîtrise du CLS représente un argument commercial concret. Vous montrez au client un problème visible, vous le corrigez en quelques heures, et vous proposez un suivi mensuel pour éviter les régressions. C'est exactement le type d'intervention qui justifie un contrat de maintenance récurrent et qui construit une relation durable.

Lancez un audit CLS gratuit en 2 minutes
Pas de carte bancaire, pas d'installation. Orilyt analyse votre site et identifie les sources d'instabilité visuelle, sur WordPress et 11 autres CMS.
Auditer mon site gratuitement

Vos questions les plus fréquentes

Quelle est la différence entre le CLS mesuré par Lighthouse et celui de la Search Console ?

Lighthouse mesure le CLS uniquement pendant le chargement initial de la page, dans un environnement simulé. La Search Console s'appuie sur les données CrUX, qui reflètent l'expérience réelle des utilisateurs Chrome sur 28 jours, y compris les décalages provoqués par le scroll et les contenus chargés tardivement. Un site peut afficher un CLS parfait en Lighthouse mais échouer dans la Search Console. Privilégiez toujours les données terrain pour évaluer la stabilité réelle de votre site.

Orilyt détecte-t-il les problèmes de CLS sur tous les types de sites ?

Orilyt analyse la performance et la stabilité visuelle sur tous les sites accessibles publiquement, qu'ils tournent sous WordPress, PrestaShop, Shopify, Drupal ou un CMS propriétaire. L'audit identifie les images sans dimensions, les ressources bloquantes et les polices non préchargées qui contribuent au CLS. Le rapport technique détaille chaque alerte avec une recommandation de correction priorisée, et le rapport client reste lisible même pour un interlocuteur non technique.

Améliorer le CLS suffit-il à améliorer le classement Google ?

Le CLS est l'un des trois Core Web Vitals pris en compte comme signal de classement depuis mai 2021, aux côtés du LCP et de l'INP. Corriger le CLS contribue à améliorer l'expérience utilisateur perçue, ce qui peut favoriser votre positionnement sur les requêtes concurrentielles. Cependant, les Core Web Vitals ne constituent qu'un signal parmi d'autres dans l'algorithme de Google. Un bon CLS ne compense pas un contenu pauvre ou un profil de liens faible.

Comment savoir si un décalage est comptabilisé dans le CLS ?

Google ne comptabilise que les décalages inattendus. Si un utilisateur clique sur un bouton et que le contenu se déplace en réponse, le décalage est exclu du CLS à condition qu'il survienne dans les 500 millisecondes suivant l'interaction. Les décalages provoqués par le chargement tardif d'images, de publicités ou de scripts, sans action de l'utilisateur, sont toujours comptabilisés. Les animations utilisant la propriété CSS transform ne génèrent pas de layout shift.

Combien de temps faut-il pour voir l'impact d'une correction dans la Search Console ?

Les données de la Search Console reposent sur un agrégat CrUX glissant sur 28 jours. Après une correction déployée en production, comptez entre 14 et 28 jours pour que les nouvelles données remplacent progressivement les anciennes mesures. Si votre site reçoit un trafic important, l'amélioration sera visible plus rapidement. Pour un suivi immédiat, utilisez PageSpeed Insights en mode "données de terrain" pour observer la tendance avant que la Search Console ne se mette à jour.

Sources et références

  • Google web.dev, Cumulative Layout Shift (CLS) — documentation officielle de la métrique CLS, son calcul et ses seuils
  • Google web.dev, Optimize Cumulative Layout Shift — guide officiel d'optimisation du CLS avec correctifs détaillés
  • HTTP Archive, Web Almanac 2025, chapitre Performance — statistiques CLS par appareil et type de page (juillet 2025)
  • MDN Web Docs, CSS aspect-ratio — référence technique sur la propriété aspect-ratio pour la réservation d'espace