Les guides sur le CLS donnent toujours la même consigne : réservez l’espace. En pratique, un designer refuse un bloc vide de 250 pixels quand la publicité ou le contenu ne se charge pas, et vous vous retrouvez à arbitrer entre un bon score et une maquette propre. Cet arbitrage a une solution : sortir du flux tout ce qui est optionnel et situé en haut de page, et réserver l’espace au pixel près, mesuré, uniquement pour ce qui est toujours présent.
Sommaire
Ce que mesure vraiment le CLS
Le CLS quantifie l’instabilité visuelle : la surface de contenu qui bouge, multipliée par la distance parcourue. Le seuil à tenir est de 0,1 pour au moins 75 % des visites ; entre 0,1 et 0,25 c’est « à améliorer », au-delà c’est mauvais.
Deux règles du calcul changent tout dans la pratique. D’abord, un décalage provoqué dans les 500 millisecondes qui suivent une interaction de l’utilisateur n’est pas comptabilisé : Google considère qu’un déplacement attendu après un clic est légitime. Ensuite, le score de terrain, celui de la Search Console, mesure toute la durée de vie de la page, pas seulement le chargement. Un bloc qui saute au scroll, une bannière qui s’insère dix secondes après l’arrivée, tout compte.
Conséquence : les outils de laboratoire comme Lighthouse sous-estiment souvent le CLS réel, parce qu’ils n’observent que le chargement initial. Un site qui affiche 0 en labo et 0,3 sur le terrain a presque toujours un problème d’insertion tardive : cookies, publicité, test A/B, contenu personnalisé.
Mesurer l’élément instable avant de le corriger
La cause d’un « trou blanc » disgracieux, c’est presque toujours une hauteur réservée au jugé. Avant de réserver quoi que ce soit, mesurez.
Identifier les éléments coupables
Dans Lighthouse, l’audit « Évitez les décalages de mise en page » liste les éléments qui bougent, avec leur contribution individuelle au score. Dans les DevTools, le panneau Performances trace une piste « Décalages de mise en page » : chaque barre correspond à un déplacement et surligne l’élément concerné. Sur le terrain, la bibliothèque web-vitals avec attribution renvoie le sélecteur de l’élément le plus instable.
Relever la valeur réelle sur un panel de pages
Un bloc n’a pas la même hauteur sur toutes les pages ni sur tous les écrans. Relevez sa hauteur rendue sur cinq à dix pages représentatives, en desktop et en mobile. C’est cette valeur mesurée, et non une estimation ronde, qui va servir de dimension réservée. Réserver 300 pixels pour un bloc qui en fait 214 crée le trou que le designer refusera.
Trois stratégies selon la nature de l’élément
Le bon traitement dépend d’une seule question : l’élément est-il toujours là, parfois absent, ou de taille variable ?
Élément toujours présent et de taille stable
Image d’en-tête, encart auteur, bloc de notation affiché sur chaque fiche : réservez l’espace exact. Pour une image, les attributs width et height suffisent, le navigateur en déduit le rapport d’aspect et le CSS responsive continue de fonctionner avec width: 100%; height: auto;. Pour un conteneur, un aspect-ratio ou une hauteur fixe calée sur la valeur mesurée. Ici, aucun compromis : l’espace est toujours occupé, il n’y a jamais de trou.
Élément parfois absent
C’est le cas qui fâche : un encart publicitaire qui ne se remplit pas, un bloc de recommandations vide faute de données. Deux options propres. Soit vous affichez un contenu de repli à la dimension exacte, une image de marque ou un message discret, qui occupe l’espace sans le laisser blanc. Soit vous laissez le bloc se réduire, mais seulement après la fenêtre de session de cinq secondes : le décalage tardif reste comptabilisé, donc cette option n’est acceptable que si le bloc est bas dans la page, là où un déplacement pèse moins.
Élément de taille variable
Fil de commentaires, liste « voir plus », résultats filtrés. Ne réservez pas une hauteur maximale, elle serait fausse la plupart du temps. Chargez le contenu dans un conteneur à hauteur fixe avec défilement interne, ou remplacez le contenu précédent dans un conteneur de dimension constante, ou déclenchez le chargement par un bouton : le décalage qui suit le clic entre dans la fenêtre des 500 millisecondes et n’est pas compté.
Cookies, promos, tests A/B : les sortir du flux
Ces éléments cumulent les deux pires caractéristiques pour le CLS : ils s’insèrent en haut de page, où le déplacement est maximal, et ils apparaissent après le premier rendu, donc invisibles en laboratoire. Les réserver dans le flux revient à laisser en permanence une bande vide en haut du site, ce qu’aucun designer n’acceptera.
La solution est de les rendre en superposition, hors du flux du document.
- Bandeau cookies en position fixePlacez-le en
position: fixeden bas ou en haut de l’écran. Il recouvre le contenu au lieu de le pousser : zéro décalage, et le design reste maîtrisé puisque le bandeau flotte au-dessus. - Bannière promo en sticky ou en modaleUne barre promotionnelle en
position: stickyavec une hauteur réservée dès le HTML initial, ou une fenêtre modale centrée qui n’affecte pas la mise en page. Jamais un bloc injecté en tête debodyaprès coup. - Tests A/B au-dessus de la ligne de flottaisonSi l’outil de test injecte une variante en haut de page, exigez qu’il réserve l’espace de la variante la plus haute dès le rendu initial, ou qu’il opère en remplacement d’un bloc existant de même dimension, pas en insertion.
Cette approche préserve à la fois le score et la liberté graphique : l’élément optionnel vit dans sa propre couche, le contenu principal ne bouge pas.
Le piège du responsive
Une hauteur réservée qui convient en desktop peut être fausse en mobile, où le même bloc s’affiche plus haut parce que le texte passe sur plus de lignes ou que l’image change de ratio. Résultat : un CLS nul sur grand écran et un CLS dégradé sur mobile, là où se fait l’essentiel du trafic et où Google évalue en priorité.
Réservez l’espace par point de rupture. Avec aspect-ratio, définissez une valeur par media query. Avec une hauteur fixe, ajustez-la à chaque breakpoint sur la base de vos mesures mobiles. Et pour les images à direction artistique, servez-vous de la possibilité récente de poser width et height sur chaque élément source du picture.
Polices et médias : les corrections invisibles
Deux sources de CLS se corrigent sans aucun impact visible.
Les polices web. Quand la police de rendu remplace la police système, les dimensions du texte changent et poussent le contenu. Trois leviers : font-display: optional, qui n’applique la police web que si elle est prête à temps ; une pile de repli explicite (sans-serif et non la police par défaut du navigateur) ; et les propriétés size-adjust, ascent-override, descent-override pour aligner les métriques de la police de repli sur celles de la police finale. Ajoutez un preload sur les fichiers critiques.
Les animations. Animer top, left, margin ou box-shadow déclenche un recalcul de mise en page et peut décaler les voisins. Animez uniquement transform et opacity, qui sont composés par le navigateur sans toucher au flux. Le rendu visuel est identique, le CLS disparaît.
À vérifier après correction
Le cache de navigation avant/arrière (bfcache) restaure une page instantanément, sans rechargement, donc sans décalage. Rendre vos pages éligibles au bfcache, en retirant les écouteurs unload notamment, améliore le CLS de terrain à l’échelle du site. C’est un gain gratuit que beaucoup d’audits oublient.
Un CLS bas sans compromis visuel
La méthode tient en trois gestes. On mesure la hauteur réelle de chaque élément instable sur un panel de pages, desktop et mobile. On réserve l’espace au pixel près pour ce qui est toujours affiché, on prévoit un repli à dimension exacte pour ce qui est parfois absent, on charge sur interaction ce qui est de taille variable. Et on sort du flux, en superposition, tout ce qui est optionnel et haut de page : cookies, promos, tests. Le design ne bouge pas, le score non plus.
Sur un site existant, ce travail commence par un relevé précis des éléments coupables et de leurs dimensions. C’est le genre de diagnostic qu’un accompagnement en performance web mène page par gabarit, en priorisant par le trafic réel, au même titre que le traitement des causes d’un LCP élevé.
Pourquoi mon CLS est bon dans Lighthouse mais mauvais dans la Search Console ?
Lighthouse n’observe que le chargement initial, la Search Console mesure toute la durée de vie de la page. L’écart vient presque toujours d’un élément inséré après le premier rendu : bandeau cookies, publicité, test A/B, contenu personnalisé. Ces insertions sont invisibles en laboratoire.
Comment réserver l’espace d’une publicité sans laisser un bloc vide ?
Mesurez la hauteur réelle de l’emplacement, puis affichez un contenu de repli à cette dimension exacte quand la publicité ne se charge pas : un visuel de marque ou un message discret. Si le bloc est bas dans la page, vous pouvez aussi le laisser se réduire, mais seulement après cinq secondes, car un décalage tardif reste comptabilisé.
Le bandeau cookies dégrade-t-il forcément le CLS ?
Seulement s’il est inséré dans le flux du document et pousse le contenu. En position: fixed, il recouvre la page sans rien déplacer : le CLS reste nul et le design est préservé puisque le bandeau flotte au-dessus du contenu.
Faut-il un score CLS de 0 ?
Non. L’objectif est de rester sous 0,1 pour 75 % des visites. Viser zéro absolu conduit souvent à des compromis visuels inutiles. Corrigez les décalages qui pèsent réellement, identifiés par l’attribution, et laissez les micro-mouvements sans conséquence.
Les décalages après un clic comptent-ils dans le CLS ?
Pas s’ils surviennent dans les 500 millisecondes suivant l’interaction : Google les considère comme attendus. Au-delà de ce délai, le décalage est de nouveau comptabilisé. C’est pourquoi un contenu chargé sur clic doit s’afficher vite, ou dans un conteneur déjà dimensionné.
Animer un menu ou un carrousel peut-il causer du CLS ?
Oui si l’animation porte sur top, left, margin ou box-shadow, qui recalculent la mise en page. En animant uniquement transform et opacity, le rendu est identique et aucun voisin n’est déplacé.
À propos de l’auteur
Aymeric Maingé
Consultant SEO senior avec plus de 10 ans d’expérience, côté agence et annonceur. J’accompagne des sites de toutes tailles sur le SEO technique, la performance web, les Core Web Vitals et l’expérience utilisateur, en travaillant gabarit par gabarit avec les équipes design et développement. Mon approche croise audit terrain, priorisation par le trafic et recommandations directement applicables. Pour un chantier de performance mené par un freelance SEO orienté Core Web Vitals, parlons de votre situation.
À lire aussi
Les autres articles sur le sujet
Images, lazy loading, WebP, AVIF : l’ordre de rentabilité réel des optimisations, le test de contrôle et pourquoi le format vient…
Lire l’article
Mesurer l’impact SEO d’un changement d’hébergement ou de CDN : ligne de base, métriques terrain et labo, latence CrUX de 28 jours…
Lire l’article
TTFB et SEO : pourquoi il plafonne le LCP, comment segmenter le trafic caché du trafic connecté, et le gain redirections qui ne…
Lire l’article
Diagnostiquer un mauvais INP sans accès au code : GTM instrumente sans build, l API Long Animation Frames nomme le script fautif,…
Lire l’article
Auditer et optimiser l’INP (Core Web Vitals) : le piège des données terrain absentes, Lighthouse qui ne le mesure pas, puis…
Lire l’article

