Le CLS (Cumulative Layout Shift) mesure les sauts visuels d’une page pendant son chargement : un bouton qui bouge au moment où vous alliez cliquer, un texte qui se décale sous une image qui vient de charger. Le corriger n’oblige pas à démonter votre thème. Voici les causes réelles, classées par impact, et les correctifs qui ne touchent pas au design.
Sommaire
Comprendre ce que Google mesure vraiment
Le CLS n’est pas une note de design, c’est une mesure d’instabilité visuelle : chaque déplacement inattendu d’un élément pendant le chargement de la page est comptabilisé, pondéré par sa taille et la distance parcourue. Un score sous 0,1 est considéré comme bon, entre 0,1 et 0,25 comme à améliorer, au-delà de 0,25 comme mauvais.
Depuis la mise à jour de cœur de mars 2026, Google traite les Core Web Vitals moins comme un simple facteur d’égalité et davantage comme un signal de qualité à part entière. Des sites qui passaient de justesse le seuil du CLS ont commencé à observer des pertes de position mesurables dans les semaines suivant l’update.
Images et médias sans dimensions réservées
C’est la cause la plus connue, et pourtant encore la plus fréquente. Une image sans attribut width et height (ou sans aspect-ratio CSS) force le navigateur à réserver zéro espace, puis à repousser tout le contenu en dessous une fois l’image chargée.
- Renseigner width et height sur chaque balise imgWordPress les ajoute automatiquement depuis la bibliothèque média native, mais les images collées en HTML brut ou via un champ ACF passent souvent à travers.
- Fixer un aspect-ratio en CSS pour les images en backgroundPour les cas où width/height ne suffisent pas (galeries, carrousels), une règle
aspect-ratioréserve l’espace sans toucher au rendu final. - Réserver l’espace des vidéos embarquéesUn iframe YouTube ou Vimeo sans conteneur dimensionné provoque le même saut. Un wrapper en
aspect-ratio: 16/9règle le problème sans plugin.
Polices web : la cause la plus sous-estimée
C’est le point que la plupart des guides survolent, alors qu’il explique souvent un CLS élevé sur un site déjà bien optimisé côté images. Quand une police personnalisée (Google Fonts ou un fichier auto-hébergé) charge après le texte de secours, deux scénarios se produisent : soit le texte reste invisible jusqu’au chargement (FOIT), soit il s’affiche avec la police système puis bascule brutalement (FOUT). Dans les deux cas, si la police de secours n’a pas la même largeur de caractère, tout le texte environnant se décale.
Donnée fraîche
La documentation technique la plus récente sur le sujet recommande font-display: optional plutôt que swap pour les polices principales : le navigateur attend jusqu’à 100 millisecondes le chargement de la police web, puis se fixe définitivement sur celle qui a gagné pour toute la session, sans bascule ni décalage ultérieur.
Trois leviers, sans toucher au design visuel final :
- Passer en font-display: optionalSur la police principale du thème. Le rendu final reste identique, seul le comportement de chargement change.
- Précharger la police critiqueUne balise
<link rel="preload">sur le fichier de police utilisé dans le texte au-dessus de la ligne de flottaison réduit le délai avant affichage stable. - Ajuster les métriques de la police de secoursLes propriétés CSS
size-adjust,ascent-overrideetdescent-overridepermettent de faire correspondre la largeur de la police système à celle de la police web, pour qu’aucun décalage ne soit visible même en cas de bascule. - Auto-héberger les polices Google FontsLe CDN Google Fonts sert parfois des déclarations légèrement différentes selon les utilisateurs. Un auto-hébergement (plugin OMGF ou équivalent) supprime cette variabilité et accélère le premier chargement.
Publicités, bannières et contenus injectés
Les régies publicitaires, les bannières de consentement cookies et les widgets tiers (chat, avis clients) s’injectent souvent après le rendu initial, sans réserver d’espace au préalable. Le correctif ne consiste pas à les supprimer, mais à leur donner un conteneur de taille fixe ou minimale dès le départ, même vide. Le contenu apparaît ensuite dans cet espace réservé sans repousser le reste de la page.
Pour une bannière de consentement en position fixe (en haut ou en bas de l’écran), utilisez position: fixed plutôt qu’une insertion qui pousse le contenu de la page : la bannière se superpose au lieu de décaler.
Le cas Elementor et des page builders
Sur les sites construits avec Elementor ou un autre page builder, une part du CLS vient de la structure même des sections : colonnes qui se réorganisent au chargement des styles, icônes chargées en police de caractères qui apparaissent après le texte, animations d’entrée déclenchées au scroll qui décalent temporairement la mise en page.
Trois réglages ciblés, sans reconstruire les pages : fixer une hauteur minimale sur les sections contenant des éléments à chargement différé, désactiver les animations d’entrée sur les éléments situés au-dessus de la ligne de flottaison, et vérifier que les icônes critiques (menu, panier) utilisent du SVG inline plutôt qu’une police d’icônes chargée en différé.
Par où commencer : priorisation par impact
| Cause | Fréquence | Effort de correction |
|---|---|---|
| Images sans dimensions | Très fréquente | Faible (correction ponctuelle) |
| Polices web (FOUT/FOIT) | Fréquente, sous-diagnostiquée | Faible à moyen (CSS + preload) |
| Publicités et embeds tiers | Fréquente sur sites monétisés | Moyen (conteneurs à dimensionner un par un) |
| Animations de page builder | Variable selon le thème | Faible (réglages, pas de code) |
Commencez toujours par les images et les polices : ce sont les deux causes qui touchent 100 % des pages du site et qui se corrigent sans risque pour le design existant. Les publicités et les animations viennent ensuite, au cas par cas.
Vérifier le résultat sans se fier au cache
Un piège classique : tester juste après une correction, avec le cache du plugin de performance encore actif sur l’ancienne version de la page. Videz systématiquement le cache (et le cache serveur si votre hébergeur en propose un) avant de mesurer. Utilisez PageSpeed Insights pour les données de terrain (CrUX) sur 28 jours glissants, et l’onglet Performance de Chrome DevTools pour un diagnostic immédiat, élément par élément, des sauts détectés.
Le CLS n’est jamais un problème isolé : il s’inscrit dans la même logique que le nettoyage technique global d’un site, au même titre que la base de données ou le cache serveur. C’est un point que je vérifie systématiquement lors d’un audit SEO technique WordPress, avec une mesure avant/après pour objectiver le gain.
En résumé
Réduire le CLS sans casser le design tient en quatre réflexes : réserver systématiquement l’espace des images et vidéos, traiter les polices web avec font-display: optional et un ajustement des métriques de secours, dimensionner les conteneurs des éléments injectés (pubs, bannières, widgets), et calmer les animations d’entrée des page builders sur les zones visibles au premier écran. Rien de tout cela ne demande de retoucher visuellement une seule page publiée.
Quel est le score de CLS considéré comme bon par Google ?
Un CLS inférieur à 0,1 est considéré comme bon, entre 0,1 et 0,25 comme à améliorer, et au-delà de 0,25 comme mauvais, sur la base des données de terrain CrUX collectées sur les visiteurs réels.
Les polices web sont-elles vraiment une cause fréquente de CLS ?
Oui, et c’est une cause souvent négligée. Une police personnalisée qui bascule après le texte de secours (FOUT) décale tout le contenu si les deux polices n’ont pas la même largeur de caractère.
Faut-il désactiver toutes les animations sur WordPress pour corriger le CLS ?
Non, seulement celles qui touchent des éléments visibles au chargement initial de la page (au-dessus de la ligne de flottaison). Les animations déclenchées plus bas au scroll n’impactent généralement pas le score.
Un plugin de cache suffit-il à corriger le CLS ?
Non. Un plugin de cache accélère le chargement mais ne réserve pas l’espace des images ou des polices. Le CLS demande des corrections structurelles ciblées, en complément du cache.
Comment vérifier le CLS sans se tromper à cause du cache ?
Videz le cache du plugin de performance et, si possible, le cache serveur avant chaque mesure. Croisez PageSpeed Insights (données de terrain) et l’onglet Performance de Chrome DevTools (diagnostic élément par élément).
À propos de l’auteur
Aymeric Maingé
Consultant SEO senior avec plus de 10 ans d’expérience, côté agence et annonceur. Il accompagne des sites WordPress, e-commerce et lead gen sur des problématiques de SEO technique, de performance web, de Core Web Vitals et d’expérience utilisateur. Son approche croise audit terrain, priorisation métier et recommandations actionnables pour les équipes marketing et IT. Votre consultant SEO pour WordPress.
Méthodologie utilisée
Analyse construite à partir de diagnostics CLS menés en clientèle (Chrome DevTools, PageSpeed Insights, données CrUX), croisée avec la documentation technique récente sur le comportement des polices web (font-display, métriques de secours) et les recommandations de Google sur les Core Web Vitals.
À lire aussi
Les autres articles sur le sujet
Core Web Vitals WordPress : la checklist complète LCP, INP, CLS avec seuils exacts, protocole de test et articles liés avant…
Lire l’article
Images, lazy loading, WebP, AVIF : la checklist réelle et complète pour accélérer un site WordPress et améliorer durablement votre…
Lire l’article
Scripts CSS/JS inutiles sur WordPress : comment les identifier et les désactiver page par page, avec ou sans plugin, sans casser…
Lire l’article
LCP WordPress en 2026 : causes fréquentes (TTFB, images, preload) et solutions concrètes pour passer sous les 2,5 secondes visées…
Lire l’article
WP Rocket booste-t-il vraiment votre SEO ? Configuration réglage par réglage, erreurs à éviter, diagnostic des ralentissements et…
Lire l’article
À environnement comparable, Gutenberg part avec un avantage natif sur la vitesse et la légèreté du code, là où Elementor offre…
Lire l’article
Guide expert pour améliorer l’INP d’un site WordPress sous Elementor : diagnostic Search Console et DevTools, structure DOM,…
Lire l’article

