SEO technique

Que sont les Core Web Vitals et comment les améliorer ?

Patrick Stox
Patrick Stox est conseiller produit, spécialiste SEO technique et ambassadeur à Ahrefs. Il co-organise divers évènements comme le Raleigh SEO Meetup, Raleigh SEO Conference, Beer & SEO Meetup et Findability Conference. Il est aussi modérateur sur /r/TechSEO.
Seulement 44 % des sites web passent les trois Core Web Vitals sur mobile. Ce chiffre chute à moins de 35 % pour les sites les plus populaires. Si votre site fait partie des 56 % restants, ce guide est fait pour vous.

Définition : des métriques d’expérience utilisateur selon Google

Les Core Web Vitals (CWV) sont des mesures de vitesse qui font par­tie des sig­naux de Page Expe­ri­ence de Google pour mesur­er l’expérience util­isa­teur. Ces chiffres mesurent le charge­ment visuel avec le Largest Con­tent­ful Paint (LCP), la sta­bil­ité visuelle avec Cumu­la­tive Lay­out Shift (CLS) et l’in­ter­ac­tiv­ité avec le First Input Delay (FID).

L’ex­péri­ence de page sur mobile et les Core Web Vitals qui vont avec ont été offi­cielle­ment util­isées pour le classement des pages depuis mai 2021. Les sig­naux sur desk­top sont util­isés depuis févri­er 2022.

Infographie qui explique les Core Web Vitals de Google pour améliorer l'UX et le SEO de votre site

Le meilleur moyen pour connaître les mesures de votre site est de se rendre sur le rap­port Core Web Vitals de la Google Search Con­sole. Avec ce rap­port, vous allez rapi­de­ment voir si vos pages sont classées dans “mau­vaise URL”, “URL a besoin d’amélioration” ou “bonne URL”.

Les seuils pour chaque caté­gorie sont les suivants :

GoodNeeds improvementPoor
LCP<=2.5s<=4s>4s
FIDv<=100ms<=300ms>300ms
CLS<=0.1<=0.25>0.25

Ain­si, voici à quoi ressem­ble le rapport :

 Le rapport de Core Web Vitals mobile et desktop montré dans la Google Search Console

Si vous cliquez sur l’un de ces rap­ports, vous aurez plus de détails sur les typologies de prob­lèmes ainsi que le nom­bre d’URL impactées.

 Détails des problèmes de Core Web Vitals dans GSC

Cli­quer sur l’un de ces prob­lèmes va de nou­veau vous don­ner plus de détails sur des groupes de pages qui sont affec­tées. Ce regroupe­ment est logique, la plu­part des modifications à faire pour amélior­er les Core Web Vitals se font depuis un tem­plate de page spé­ci­fique qui va affecter plusieurs URL. Vous pou­vez faire le change­ment une seule fois dans le tem­plate et les cor­rec­tions vont se propager sur toutes les pages où le tem­plate s’applique.

GSC regroupe les pages avec des problèmes spécifiques

Vous savez désormais quelles pages sont touchées précisément.

Important
Les mesures sont séparées entre version desktop et version mobile. Les signaux mobiles sont utilisés pour le ranking sur mobile, et les signaux desktop pour le ranking sur desktop. Google utilise le mobile en priorité (mobile-first indexing), ce qui rend vos scores mobiles particulièrement importants.

Voici quelques infor­ma­tions com­plé­men­taires sur les Core Web Vitals ainsi que com­ment faire pass­er les tests à vos pages :

Fait 1: Les mesures sont séparées entre ver­sion desk­top (ordinateur) et ver­sion mobile. Les sig­naux mobiles sont util­isés pour le rank­ing sur mobile et les sig­naux desk­top pour le rank­ing sur desktop.

Fait 2: Les don­nées vien­nent du Chrome User Expe­ri­ence Report (CrUX), qui enreg­istre des don­nées d’utilisateurs Chrome qui ont accep­té de les partager. Ces mesures sont pris­es à mesure du 75e per­centile d’utilisateur. Par con­séquent, si 70% des util­isa­teurs ont une expéri­ence de page “bonne”, et 5% sont dans la caté­gorie “besoin d’amélioration”, alors votre page sera indiquée dans “besoin d’amélioration”.

Fait 3: Les mesures sont pris­es pour chaque page. Mais s’il n’y a pas assez de don­nées, “les sig­naux des par­ties d’un site ou du site en général peu­vent être util­isés” déclare John Mueller, Web­mas­ter Trend Ana­lyste de Google. Dans notre étude de don­nées Core Web Vitals, nous avons analysé plus de 42 mil­lions de pages et avons décou­vert que seules 11.4% d’entre elles avaient des mesures associées.

Fait 4: Avec l’ajout de ces nou­velles mesures, Accel­er­at­ed Mobile Pages (AMP) n’est plus un préreq­uis pour être dans les Tops Sto­ries sur mobile. Comme ces news sto­ries n’auront pas réelle­ment de don­nées sur les mesures de vitesse, il est pos­si­ble que ce soient les mesures d’une plus grande caté­gorie de page, voire du domaine en entier, qui soient utilisées.

Fait 5: Sin­gle Page Appli­ca­tion ne peut pas cal­culer deux mesures, FID et LCP, via les tran­si­tions de pages. Il y a quelques propo­si­tions de change­ment, dont App His­to­ry API et poten­tielle­ment un change­ment de mesure de l’interactivité qui pour­rait être appelé Respon­sive­ness pour le temps de réac­tion d’une page.

Fait 6: Les mesures peu­vent chang­er au fil du temps, tout comme le seuil. Google a déjà fait évoluer ses cal­culs pour mesur­er la vitesse dans ses out­ils au fil des années, ain­si que le seuil de ce qui était con­sid­éré comme étant rapi­de ou non.

Les Core Web Vitals ont déjà changé, et il y a déjà d’autres change­ments pro­posés pour le futur. Typiquement, je ne serais pas sur­pris que la taille de page soit ajoutée. Actuellement, vous pou­vez réussir à obtenir de bons scores dans les mesures actuelles en réglant les pri­or­ités de cer­tains élé­ments, même avec une très grande page. Je pense que cela devrait changer par la suite.

Parmi les facteurs de Google pour se positionner, beaucoup n’ont pas beaucoup d’importance. Pour ce qui est des Core Web Vitals, les représentants de Google disent qu’ils ont une faible importance, ou bien peuvent servir d’aide à la décision en cas d’égalité.

Gary Illyes, de l’équipe Google Search, l’a résumé lors de Pubcon en septembre 2023 :

“La plupart des sites ne bénéficieront pas vraiment de l’amélioration de leurs Core Web Vitals.” — Gary Illyes (@methode), Pubcon, 21 sept. 2023

Je ne m’attends pas à beaucoup de changements (voire aucun) dans l’amélioration du SEO d’un site en optimisant les Core Web Vitals. Cela dit, ils restent un facteur, et ce tweet de John Mueller montre comment cela peut fonctionner comme signal de départage.

Il y a eu beaucoup de facteurs de ranking qui prenaient en considération la vitesse pendant de nombreuses années. Je ne m’attendais donc pas à un gros impact visible lorsque la mise à jour d’expérience de la page sur mobile a été déployée. Malheureusement, il y a eu également plusieurs Google Core Updates pendant cette période, ce qui rend difficile de réellement mesurer des impacts ou tirer des conclusions fiables.

Certaines études montrent des corrélations positives entre avoir un bon score en termes de Core Web Vitals et de meilleurs résultats dans les SERP. Mais j’y porte un regard sceptique. Ce serait comme dire que ce sont les sites qui se concentrent sur le SEO qui ont tendance à mieux ranker. Si un site travaille à améliorer ses CWV, il a certainement déjà fait beaucoup d’efforts sur d’autres points aussi.

Ce que vous devez retenir : les CWV ne vont probablement pas transformer votre SEO du jour au lendemain. En revanche, ils ont un impact direct sur l’expérience utilisateur; et donc sur vos taux de conversion et de rétention. Si votre site est déjà bien optimisé sur tous les autres points, améliorer vos CWV peut faire la différence face à des concurrents aux scores similaires.

Données réelles vs données de lab : quelle différence ?

La différence entre les deux est simple : les données de terrain (field data) viennent de vrais utilisateurs qui visitent votre site, via le Chrome User Experience Report (CrUX). C’est ce que Google utilise pour le classement. Les données de laboratoire (lab data) sont produites dans un environnement simulé et contrôlé — c’est ce que vous voyez dans Lighthouse, PageSpeed Insights ou Chrome DevTools. Elles ne reflètent pas votre classement, mais elles sont reproductibles et utiles pour tester vos corrections.

Les deux peuvent afficher des scores très différents pour une même page, et c’est normal. Un vrai utilisateur arrive souvent avec du cache, sur un réseau variable, depuis un appareil que vous n’avez pas simulé. Par ailleurs, l’INP ne peut pas être mesuré en lab : comme cette métrique dépend des vraies interactions, les outils de lab utilisent à la place le Total Blocking Time (TBT) comme indicateur proxy.

Données terrainDonnées de lab
SourceVrais utilisateurs (CrUX)Environnement simulé (Lighthouse)
Utilisées par Google✅ Oui❌ Non
Reproductibles❌ Variable✅ Oui
INP mesurable✅ Oui❌ Non (TBT à la place)
Idéal pourDiagnostiquer, suivreTester des corrections

En pratique, servez-vous des données terrain pour savoir où vous en êtes aux yeux de Google, et des données de lab pour diagnostiquer et tester. Les deux sont complémentaires. Notez que les données CrUX ont un délai de 28 jours : après une optimisation, il faudra patienter avant de voir le résultat remonter dans Search Console.

Voici les trois composants actuels des Core Web Vitals et ce qu’ils mesurent :

  • Largest Contentful Paint (LCP) : Chargement visuel
  • Interaction to Next Paint (INP) : Interactivité
  • Cumulative Layout Shift (CLS) : Stabilité visuelle

 Graphique qui montre le pourcentage de bon FID, LCP et CLS au fil du temps

Il faut savoir qu’il existe d’autres Web Vitals qui servent de mesures proxy et des mesures supplémentaires qui ne sont pas utilisées dans les calculs de ranking. On va en parler dans la section Web Vitals secondaires.

Note.
On part sur une partie détaillée pour réellement vous aider ici, donc soyez au calme et allumer votre 2e écran pour travailler en parallèle. Allez, c’est parti.

Le LCP est l’élément vis­i­ble le plus grand qui soit chargé dans le viewport.

First Input Delay thresholds

Source: web.dev

L’élément le plus grand est générale­ment l’image mise en avant ou peut-être la balise h1, mais cela peut être également :

  • Élé­ment <img>
  • Élé­ment <image> dans un élé­ment <svg>
  • Image dans un élé­ment <video>
  • Image de fond chargée avec la fonc­tion url()
  • Blocs de texte

les <svg> et <video> pour­raient être ajoutés dans le futur.

Comment voir le LCP ?

Dans Page­Speed Insights l’élément LCP sera spé­ci­fié dans la sec­tion “Diag­nos­tic”. Remar­quez égale­ment qu’il y a un onglet pour sélec­tion­ner LCP pour ne voir que les élé­ments qui le concernent.

Problèmes de Largest Contentful Paint dans PageSpeed Insights montrant l’onglet bleu LCP

Dans Chrome Dev­Tools, suiv­ez ces étapes :

  • Per­for­mance > sélec­tion­nez “Screen­shots”
  • Cliquez sur “Start pro­fil­ing and reload page”
  • LCP est sur le graphique temporel
  • Cliquez sur le node, c’est l’élément pour le LCP

Vérifier le LCP dans Chrome DevTools

Optimiser le LCP en 5 étapes

Comme nous avons pu le voir sur Page­Speed Insights, il y a beau­coup de prob­lèmes qui doivent être cor­rigés, ce qui fait du LCP la mesure la plus dif­fi­cile à amélior­er. Dans notre étude, j’ai remar­qué que la plu­part des sites n’ont pas beau­coup amélioré le LCP au fil du temps.

Voici quelques élé­ments à garder en tête sur les dif­férentes manières d’améliorer le LCP.

Je vous liste les 5 étapes pour améliorer le LCP ici et après, je les développe un par un :

  1. Réduire la taille de vos fichiers
  2. Être proche du serveur
  3. Utiliser le même serveur
  4. Mettre en cache
  5. Prioriser les ressources

On entre dans le détail de chaque étape maintenant :

1. Plus petit = plus rapide

Si vous ne pou­vez vous débar­rass­er de n’importe quel fichi­er ou réduire sa taille, votre page va charg­er plus vite. Vous pou­vez vouloir sup­primer tout fichi­er ou morceau de code qui ne sont pas utilisés.

La manière dont vous allez vous y pren­dre va beau­coup dépen­dre de com­ment votre site est fait, mais on par­le du proces­sus comme du a href=“https://webpack.js.org/guides/tree-shaking/”>tree shak­ing (sec­ouer l’arbre). C’est générale­ment géré de manière automa­tique dans beau­coup de sys­tèmes, mais pour cer­tains, cela va deman­der des efforts.

Il y a égale­ment la com­pres­sion, qui va réduire la taille des fichiers. Qua­si­ment tous les types de fichiers util­isés pour con­stru­ire votre site peu­vent être com­pressés, comme le CSS, le JavaScript, les Images et le HTML.

2. Plus près = plus rapide

L’information ne se transmet pas instan­ta­né­ment, il lui faut du temps. Plus vous êtes loin du serveur, plus il fau­dra de temps pour trans­met­tre les don­nées. À moins que vous ne vous con­cen­triez exclu­sive­ment sur une petite zone géo­graphique, avoir un Con­tent Deliv­ery Net­work (CDN) est une bonne idée.

Les CDN sont un bon moyen de faire pass­er votre site par un serveur plus proche des util­isa­teurs. C’est un peu comme avoir des copies de votre serveur à dif­férents endroits du monde.

3. Si possible, utilisez le même serveur

Lorsque vous vous con­nectez la pre­mière fois à un serveur, un proces­sus par­court le web pour établir une con­nex­ion sécurisée entre l’utilisateur et le serveur. Cela prend un peu de temps, et chaque nou­velle con­nex­ion néces­saire va ajouter du délai sup­plé­men­taire pour répéter le proces­sus. Si toutes vos ressources sont sur le même serveur, cela va vous per­me­t­tre d’éliminer ces délais supplémentaires.

Si vous ne pou­vez pas utilis­er le même serveur, vous pou­vez vous trou­ver vers le pre­con­nect ou le DNS-prefetch pour que les con­nex­ions se déclenchent plus tôt. Un nav­i­ga­teur va en général attein­dre la fin du télécharge­ment du HTML pour com­mencer les con­nex­ions. Mais avec du pre­con­nect et du DNS-prefetch, les con­nex­ions vont se déclencher plus tôt que la nor­male. Notez que le DNS-prefetch est mieux sup­porté que preconnect.

4. Mettez en cache ce que vous pouvez

Lorsque vous met­tez des ressources en cache, elles sont téléchargées lors de la pre­mière vue de la page, mais n’auront pas besoin d’être à nou­veau téléchargées avec les nou­velles vues. Avec des ressources directe­ment acces­si­bles, les futurs charge­ments de page seront plus rapi­des. Voyez dans le tableau en cas­cade ci-dessous, la dif­férence entre le pre­mier et le sec­ond charge­ment de page.

Pre­mier charge­ment de la page :

Graphique en cascade d’un premier chargement de page

Sec­ond charge­ment de la page :

Graphique en cascade du deuxième chargement de la page qui est bien plus petit

5. Priorisez les ressources

Pour réus­sir la véri­fi­ca­tion LCP, vous devez don­ner des ordres de pri­or­ité sur com­ment les ressources sont chargées dans le crit­i­cal ren­der­ing path. Vous devez réor­gan­is­er l’ordre dans lequel les ressources sont téléchargées et traitées. Il faut com­mencer par celles que vous voulez que votre util­isa­teur voit en pre­mier, puis charg­er le reste ensuite.

Beau­coup de sites peu­vent pass­er le LCP en ajoutant sim­ple­ment des règles de pre­load pour cer­taines choses comme l’image prin­ci­pale ou les feuilles de styles et polices néces­saires. Voyons com­ment opti­miser ces dif­férents types de ressources.

LES IMAGES PLUS TÔT

Si vous n’avez pas besoin de l’image, la meilleure solu­tion est tout sim­ple­ment de s’en débar­rass­er. Si vous avez besoin de l’image, il faut en opti­miser la taille et la qual­ité pour la ren­dre la plus légère possible.

Vous pou­vez en plus précharg­er l’image (pre­load). Cela va lancer le télécharge­ment de l’image un peu plus tôt. Elle appa­raî­tra donc plus vite. Une déc­la­ra­tion de pre­load pour une image ressem­ble à ça :

<link rel="preload" as="image" href=“cat.jpg"
imagesrcset=“cat_400px.jpg 400w,
cat_800px.jpg 800w, cat_1600px.jpg 1600w"
imagesizes="50vw">

LES IMAGES PLUS TARD

On appelle cette étape le lazy loading des images non critiques.

Vous devriez charg­er plus tar­di­ve­ment (lazy load) les images dont vos utilisateurs n’ont pas besoin dans l’immédiat.. Cela déclenche le charge­ment de l’image plus tard dans le proces­sus ou lorsque l’u­til­isa­teur scrolle jusqu’à elle. Vous pou­vez utilis­er le loading=”lazy” comme ceci :

<img src=“cat.jpg" alt=“cat" loading="lazy">

LE CSS PLUS TÔT

Nous avons déjà par­lé du fait de retir­er le CSS inutil­isé et de mini­fi­er celui qui reste. L’autre chose à faire est de charg­er le CSS cri­tique inline. Cela prend les par­ties du CSS néces­saires pour charg­er les élé­ments que l’utilisateur doit voir immé­di­ate­ment pour l’appliquer directe­ment dans le HTML. Lorsqu’il est téléchargé, tout le CSS néces­saire pour charg­er ce que voit l’utilisateur est déjà disponible.

Mettre le CSS critique en inline déplace des parties du CSS dans le HTML

LE CSS PLUS TARD

Pour tout le CSS sup­plé­men­taire qui n’est pas cri­tique (néces­saire à l’affichage immé­di­at), il devrait être chargé plus tard dans le proces­sus. Vous pou­vez com­mencer le télécharge­ment du CSS avec une déc­la­ra­tion de pre­load mais ne l’appliquer que plus tard avec un event onload, ça ressem­ble à ça :

<link rel="preload" href="stylesheet.css" as="style" onload="this.rel='stylesheet'">

FONTS (POLICES)

Voici plusieurs options pos­si­bles selon mon avis :

Bien : Préchargez vos polices. C’est encore mieux si vous utilisez le même serveur pour éviter toute connexion.

Mieux : Font-dis­play: option­al. Cela peut être fait avec une déc­la­ra­tion de pre­load. Cela va don­ner à votre police un court laps de temps pour charg­er. Si elle ne charge pas à temps, le charge­ment ini­tial de la page se fera avec une font par défaut. Votre police per­son­nal­isée sera mise en cache et appa­raî­tra lors des prochains charge­ments de page.

Par­fait : utilisez une police sys­tème. Il n’y a rien à charg­er, donc pas de délai.

LE JAVASCRIPT PLUS TÔT

Nous avons déjà par­lé de sup­primer le Javascript non util­isé et mini­fi­er celui qui reste. Si vous utilisez un frame­work JavaScript, vous pou­vez soit pré-ren­dre la page ou la ren­dre serv­er-side (SSR).

Vos autres options sont de ren­dre le JavaScript néces­saire tôt dans le charge­ment inline. Cela fonc­tionne de la même manière que le CSS, où vous chargez des por­tions du code dans le HTML ou préchargez les fichiers JavaScript pour les avoir disponibles plus tôt. Cela ne doit être fait que pour des élé­ments néces­saires pour charg­er du con­tenu au-dessus du fold (c’est-à-dire la par­tie vis­i­ble avant d’avoir besoin de scroller) ou si cer­taines fonc­tion­nal­ités dépen­dent du JavaScript.

LE JAVASCRIPT PLUS TARD

Tout Javascript dont vous n’avez pas besoin immé­di­ate­ment devrait être chargé plus tard. Il y a deux manières de faire cela : les attrib­uts defer et async. Ces attrib­uts peu­vent être ajoutés dans les balis­es de vos scripts.

Générale­ment, le télécharge­ment d’un script bloque le pars­er pen­dant le télécharge­ment et l’exécution. Async (asyn­chro­ni­sa­tion) va per­me­t­tre le pars­ing et le télécharge­ment de se pro­duire en même temps, mais blo­quera tout de même le pars­ing pen­dant l’exé­cu­tion. Le Defer (retarde­ment) ne blo­quera pas le pars­ing pen­dant le télécharge­ment et ne s’exécutera que lorsque le HTML aura fini son parsing.

Comment async et defer ont un impact sur le chargement HTML

Quelle méth­ode choisir ? Pour tout ce que vous voulez assez tôt ou qui est néces­saire à d’autres fonc­tions, je pencherais pour l’async. J’utiliserais, par exem­ple, l’async pour qu’une balise ana­lyt­ics enreg­istre plus d’utilisateurs. Il vaut mieux defer tout ce qui n’est pas immé­di­ate­ment néces­saire ou n’est pas néces­saire à autre chose. Ces attrib­uts sont assez sim­ples à ajouter, voici des exemples :

Nor­mal:

<script src="https://www.domain.com/file.js"></script>

Async:

<script src="https://www.domain.com/file.js" async></script>

Defer:

<script src="https://www.domain.com/file.js" defer></script>

Divers

Il existe encore d’autres tech­nolo­gies que vous pour­riez vouloir explor­er pour amélior­er les per­for­mances, par exem­ple : Spec­u­la­tive Pre­ren­der­ing, Ear­ly Hints, Signed Exchanges, and HTTP/3.

Resources

Pourquoi l’INP a remplacé le FID ?

L’INP a officiellement remplacé le First Input Delay (FID) le 12 mars 2024. Ce changement n’est pas anodin : le FID ne mesurait que le délai avant la première interaction d’un utilisateur sur une page. C’était une fenêtre trop étroite, qui ne reflétait pas la réactivité réelle d’une page tout au long de la session.

L’INP mesure toutes les interactions (clics, tapotements, pressions de touches) et retient la pire au 75e percentile. Si un utilisateur clique dix fois sur votre page et que neuf interactions sont instantanées mais qu’une seule est lente, c’est cette lenteur que l’INP va capturer. C’est beaucoup plus exigeant, et beaucoup plus représentatif de ce que vit vraiment l’utilisateur.

Seuils INP : bon, à améliorer, mauvais

BonÀ améliorerMauvais
INP≤ 200 ms≤ 500 ms> 500 ms

Comment mesurer l’INP ?

Pour diagnostiquer l’INP, utilisez à la place le Total Blocking Time (TBT) comme proxy dans PageSpeed Insights et Lighthouse. Un TBT élevé est un bon indicateur d’un INP potentiellement problématique.

Pour les données terrain réelles, rendez-vous dans :

  • Le rapport Core Web Vitals de la Google Search Console
  • L’onglet “Données terrain” de PageSpeed Insights (si votre page a suffisamment de trafic dans CrUX)
  • L’extension Chrome Web Vitals pour mesurer en temps réel en naviguant sur votre site

Comment améliorer l’INP ?

La cause principale d’un mauvais INP est le même que pour le FID : c’est le JavaScript qui entre en compétition pour le main thread. Il n’y a qu’un seul main thread, et le JavaScript doit prendre son tour pour s’exécuter. Pendant qu’une tâche est en cours, la page ne peut pas répondre aux interactions de l’utilisateur, c’est le délai que l’on ressent.

 Des tâches longues bloquent le traitement du thread principal et causent des délais

Source : web.dev

Pour améliorer l’INP, vous pouvez aussi :

  • Réduire le temps d’exécution JavaScript et supprimez le JavaScript inutilisé
  • Éviter les tâches longues (long tasks) ou divisez le JavaScript en plus petits blocs
  • Utiliser les Web Workers pour les traitements lourds

Qu’est-ce qui provoque un CLS élevé ?

Le CLS mesure la façon dont les éléments bougent et la stabilité de l’organisation de la page. Il va prendre en compte la taille du contenu et la distance sur laquelle il va bouger. Google a déjà mis à jour la manière dont le CLS est mesuré : auparavant, il continuait sa mesure après le chargement initial de la page. Dorénavant, il se restreint aux 5 secondes où il y a le plus de changement.

 Seuils de Cumulative Layout Shift

Il peut être agaçant de vouloir cliquer sur quelque chose sur une page qui va soudainement bouger et vous faire cliquer sur quelque chose d’autre. Je veux cliquer sur quelque chose et, subitement, une pub se met à la place et je me retrouve sur un autre site. En tant qu’utilisateur, c’est frustrant.

 Exemple de maquette qui bouge lorsqu’on tente de cliquer sur un lien

Parmi les principales causes de CLS, on retrouve :

  • Les images sans dimensions
  • Les pubs, embeds et iframes sans dimensions
  • L’injection de contenu avec du JavaScript
  • L’application tardive de polices ou styles

Seuils CLS : bon, à améliorer, mauvais

BonÀ améliorerMauvais
CLS≤ 0,1≤ 0,25> 0,25

Comment mesurer le CLS ?

En sélectionnant le CLS dans PageSpeed Insights, vous pouvez voir tous les problèmes. Celui auquel il faut porter une attention particulière est “Avoid large layout shifts.”

Dans Chrome DevTools, l’onglet Performance met en évidence les layout shifts directement sur la timeline. Vous pouvez également utiliser l’extension Chrome Web Vitals pour voir le score CLS en temps réel pendant que vous naviguez sur votre site.

Problèmes CLS dans PageSpeed Insights

Comment améliorer le CLS ?

Dans la plupart des cas, vous allez devoir travailler autour des images, des polices et possiblement du contenu injecté pour optimiser le CLS.

Réserver l’espace pour les images et vidéos (width/height)

Pour les images, vous devez réserver l’espace pour qu’il n’y ait pas de changement brusque et que l’image se contente de remplir l’espace alloué. Cela veut dire définir la hauteur et la largeur des images à l’intérieur de la balise <img> :

<img
  width="1000"
  height="1000"
  src="puppy-1000.jpg"
  srcset="puppy-1000.jpg 1000w, puppy-2000.jpg 2000w, puppy-3000.jpg 3000w"
  alt="Puppy with balloons" />

Ces attributs permettent au navigateur de réserver l’espace exact avant même que l’image soit téléchargée. Appliquez le même principe aux éléments <video> et <iframe>.

Éviter les publicités et embeds sans dimensions définies

Réservez l’espace maximal nécessaire pour du contenu dynamique comme des pubs. Si vous ne connaissez pas la taille exacte à l’avance, définissez un espace minimum avec une hauteur fixe en CSS pour éviter que le contenu autour soit déplacé lors du chargement.

Gérer les polices web (font-display, preload)

Lorsqu’une police est chargée ou changée, vous allez avoir un changement visible comme un Flash of Invisible Text (FOIT) ou Flash of Unstyled Text (FOUT). Pour les polices, votre but est qu’elles apparaissent dès que possible sans s’interchanger.

Si vous pouvez utiliser une police système, faites-le. S’il n’y a rien à charger, il n’y aura ni délai ni changement.

Si vous utilisez une police personnalisée, combinez <link rel="preload"> (qui va essayer de charger votre police dès que possible) avec font-display: optional (qui va donner à votre police un court laps de temps pour charger). Si la police ne parvient pas à se charger à temps, la page initiale va simplement montrer la police par défaut. Votre police personnalisée va être mise en cache et sera montrée aux prochains chargements de page.

Lorsque le contenu est inséré dynamiquement par-dessus du contenu existant, cela va causer un mouvement. Si vous devez le faire, pensez à réserver de l’espace à l’avance.

Ressources :

Les Web Vitals secondaires à connaître

Ces métriques ne font pas partie des Core Web Vitals et ne sont pas utilisées directement dans le classement. Elles servent de métriques proxy : améliorer l’une d’elles a un impact direct sur vos scores LCP ou INP.

TTFB (Time to First Byte) : temps de réponse serveur

Le TTFB mesure le temps entre la requête du navigateur et la réception du premier octet de réponse du serveur. C’est la base de tout : un TTFB lent pénalise mécaniquement votre LCP, quelle que soit la qualité de vos autres optimisations.

BonÀ améliorerMauvais
≤ 800 ms≤ 1 800 ms> 1 800 ms

Pour l’améliorer : hébergement performant, mise en cache serveur, CDN, et activation d’Early Hints.

FCP (First Contentful Paint) : premier rendu

Le FCP mesure le temps jusqu’à ce que le premier élément (texte, image, SVG) soit affiché à l’écran. Il précède toujours le LCP et sert d’indicateur intermédiaire : si votre FCP est lent, votre LCP le sera forcément aussi.

BonÀ améliorerMauvais
≤ 1,8 s≤ 3 s> 3 s

Pour l’améliorer : éliminer les ressources bloquant le rendu (CSS et JS render-blocking), réduire le TTFB.

TBT (Total Blocking Time) : proxy de l’interactivité

Le TBT mesure la durée totale pendant laquelle le main thread est bloqué entre le FCP et le Time to Interactive. C’est le proxy lab de l’INP : puisque l’INP ne peut pas être mesuré en environnement de laboratoire, un TBT élevé est le signal à surveiller dans Lighthouse et PageSpeed Insights.

BonÀ améliorerMauvais
≤ 200 ms≤ 600 ms> 600 ms

Pour l’améliorer : réduire les long tasks JavaScript, différer les scripts non critiques (defer/async).

Il existe beaucoup d’outils pour mesurer et suivre ces données. L’idéal est de voir les données réelles du terrain, qui seront les véritables bases de mesure de Google. Mais des données “de lab” seront plus utiles pour faire des tests.

La plupart de ces outils utilisent Lighthouse comme base pour les tests. Les données terrain viennent de CrUX.

Chrome DevTools : analyse page par page

Utile pour débugger en profondeur. L’onglet Performance donne accès à la timeline de chargement, aux long tasks et à l’élément LCP. Vous pouvez aussi voir les layout shifts directement sur la timeline.

Lighthouse : audit complet en local

Lighthouse est intégré à Chrome DevTools (onglet Lighthouse) et génère un rapport complet avec scores et recommandations. Attention : ce sont des données de lab et les scores peuvent différer de vos données terrain. Vous pouvez aussi consulter le scoring calculator Lighthouse pour comprendre l’historique des changements de pondération.

Lighthouse scoring calculator with metric weights

L’extension Chrome Web Vitals

La Web Vitals extension affiche LCP, INP et CLS en temps réel pendant que vous naviguez sur n’importe quelle page. Pratique pour un diagnostic rapide sans ouvrir DevTools.

Outils tiers : Ahrefs Site Audit, GTmetrix, WebPageTest

Ahrefs Site Audit connecte l’API PageSpeed Insights pour remonter les données CWV de tout votre site en un seul rapport, avec suivi dans le temps. C’est la solution la plus efficace pour monitorer les CWV à grande échelle.

GTmetrix propose des tests de lab avec une bonne visualisation en cascade (waterfall), utile pour identifier les ressources qui ralentissent le chargement.

WebPageTest est l’outil le plus avancé pour les tests de performance approfondis : il permet de simuler différents appareils, réseaux et localisations géographiques.

Vérifier une page isolée avec PageSpeed Insights, c’est bien. Savoir quelles pages de tout votre site posent problème, et dans quel ordre les traiter, c’est mieux.

Utiliser le rapport GSC pour prioriser les pages

Le rapport Core Web Vitals de la Search Console est le point de départ. Il vous donne une vue globale par statut (Bon / À améliorer / Mauvais) pour mobile et desktop, et vous indique le nombre d’URL impactées par chaque type de problème.

Commencez par les pages “Mauvaises” en mobile — c’est là que l’impact sur le ranking est le plus direct.

Auditer en masse avec Ahrefs Site Audit

L’Audit de Site Ahrefs connecte l’API PageSpeed Insights pour récupérer les données CWV de toutes vos pages en un seul crawl, avec suivi dans le temps. Contrairement à la GSC, vous obtenez les données de lab page par page — utile pour identifier les causes précises, pas seulement les symptômes.

Pour activer les données CWV dans votre crawl : Paramètres du crawl > Performance > Activer PageSpeed Insights.

Rapport CWV dans l’Audit de site Ahrefs

Interpréter les données : pages groupées par template

C’est le principe clé de l’audit CWV à grande échelle : Google (et la GSC) regroupe les pages par template, pas par URL individuelle. Une page produit, une page catégorie et un article de blog partagent rarement le même template, donc rarement les mêmes problèmes.

Concrètement : si 200 pages produits ont un mauvais LCP, la cause est probablement unique (une image hero non optimisée dans le template). Corrigez le template une fois, et les 200 pages passent. C’est pourquoi il vaut mieux raisonner par type de page plutôt que d’optimiser URL par URL.

WordPress alimente plus de 40 % du web. C’est aussi l’un des CMS où les CWV sont les plus délicats à maîtriser, notamment à cause de la multiplication des plugins et des page builders. Bonne nouvelle : l’écosystème a énormément progressé sur le sujet ces dernières années.

Les plugins d’optimisation recommandés pour les CWB et WordPress

Un bon plugin de performance peut régler automatiquement une grande partie des problèmes LCP et CLS sans toucher au code : minification CSS/JS, lazy loading, cache navigateur et serveur, préchargement des ressources critiques.

Les options les plus efficaces :

  • WP Rocket — la référence payante. Gère le cache, le CSS critique inline, le defer JS et le préchargement LCP en quelques clics.
  • LiteSpeed Cache — gratuit et très complet, particulièrement performant sur les hébergements LiteSpeed.
  • Autoptimize — solution gratuite pour la minification et la concaténation CSS/JS, souvent couplé à un plugin de cache.

Quel que soit le plugin choisi, travaillez avec votre développeur pour les réglages avancés — une mauvaise configuration peut aggraver les scores plutôt que les améliorer.

Elementor, Divi, Webflow : comment gérer les builders ?

Les page builders sont l’une des principales causes de mauvais scores CWV sur WordPress : ils génèrent du CSS inutilisé en masse, chargent de nombreux scripts et produisent souvent un DOM très lourd.

Quelques règles pratiques :

  • Activez le CSS critique dans les réglages de votre builder (Elementor Pro le propose nativement).
  • Désactivez les assets inutiles page par page — charger les scripts Elementor sur toutes les pages du site, y compris celles qui n’utilisent pas le builder, est une erreur fréquente.
  • Webflow génère du code plus propre que la plupart des builders WordPress, mais reste sensible aux animations et interactions qui peuvent pénaliser l’INP.

Si vos scores restent mauvais malgré les optimisations, la question du builder lui-même mérite d’être posée.

Hébergement et CDN : impact direct sur les scores

Le TTFB, et donc le LCP, commence au serveur. Un hébergement mutualisé bas de gamme peut ruiner vos efforts d’optimisation front-end, peu importe la qualité de vos plugins.

  • Privilégiez un hébergement avec serveur dédié ou VPS, ou un hébergement WordPress managé (Kinsta, WP Engine, Cloudways).
  • Activez un CDN pour servir les assets statiques depuis un serveur proche de l’utilisateur. Cloudflare est la solution la plus répandue et dispose d’une offre gratuite efficace.
  • Vérifiez que votre hébergement supporte HTTP/2 ou HTTP/3 — ces protocoles réduisent significativement la latence des connexions multiples.

Ce que disent les représentants de Google

Google compte plus de 200 facteurs de ranking dont 7 prioritaires. Les CWV en font partie, mais les représentants de Google ont été clairs sur leur poids : faible, voire rôle de départage en cas d’égalité. Gary Illyes l’a dit sans détour à Pubcon en septembre 2023 :

“La plupart des sites ne bénéficieront pas vraiment d’une amélioration de leurs Core Web Vitals.” — Gary Illyes (@methode), Pubcon, sept. 2023

Ce que montrent les études de corrélation

Certaines études montrent des corrélations positives entre de bons scores CWV et de meilleures positions dans les SERP. J’y porte un regard sceptique. Ce serait comme dire que ce sont les sites qui se concentrent sur le SEO qui ont tendance à mieux ranker. Si un site travaille à améliorer ses CWV, il a certainement déjà fait beaucoup d’efforts sur d’autres points aussi : contenu, backlinks, SEO technique.

Isoler l’impact des CWV dans les données de ranking reste méthodologiquement difficile, d’autant que plusieurs Core Updates se sont superposés depuis leur introduction.

Faut-il tout sacrifier pour un score parfait ?

Non. Si votre argumentaire pour optimiser les CWV repose uniquement sur le SEO, c’est un argument fragile. En revanche, c’est à prendre en compte pour l’expérience utilisateur et l’expérience utilisateur, elle, a un impact mesurable sur les conversions.

Côté priorités : si votre site est lent au point d’avoir de mauvais scores CWV, les corriger aura probablement plus d’impact sur vos taux de rebond et de conversion que sur vos positions. Commencez par là, et traitez les CWV comme un investissement UX, pas comme un levier SEO direct.

Une bonne nouvelle : les choses seront de plus en plus simples à mesure que de nouvelles technologies sortiront. Beaucoup de plateformes gèrent déjà une partie des tâches d’optimisation automatiquement. WordPress précharge la première image nativement, Cloudflare a déployé Early Hints, Signed Exchanges et HTTP/3. Dans quelques années, la plupart des sites n’auront probablement plus à s’en préoccuper activement.

Conclusion

Je ne pense pas que les Core Web Vitals aient un grand impact en matière de SEO. À moins que le site soit très lent, ma pri­or­ité n’est pas de les optimiser. Si vous voulez faire un argu­men­taire pour opti­miser les CWS, ne vous servez pas du SEO comme argument.

Mais par con­tre, c’est à pren­dre en compte pour l’expérience util­isa­teur. Comme je l’ai dit dans mon arti­cle sur la vitesse de page, des amélio­ra­tions vont per­me­t­tre de faire ren­tr­er plus de don­nées dans Ana­lyt­ics, ce qui va “don­ner l’impression” d’une amélio­ra­tion. Vous pou­vez aus­si amélior­er les CWV pour avoir plus de con­ver­sions, beau­coup d’études ten­dent à le prou­ver (mais c’est peut-être encore là parce qu’il y a plus de don­nées enregistrées).

Un autre point impor­tant : en tant que SEO, tra­vaillez avec vos développeurs : ce sont eux les experts. L’optimisation de la vitesse peut être un sujet très com­plexe. Si vous êtes seul, vous allez peut-être avoir besoin d’un plu­g­in ou d’un ser­vice tiers (par exem­ple WP Rock­et ou Autop­ti­mize) pour gér­er cela.

Les choses seront de plus en plus sim­ples à mesure que de nou­velles tech­nolo­gies sor­tent et que des plate­formes comme votre CMS, votre CFN voire nos nav­i­ga­teurs gèrent une par­tie des tâch­es d’optimisation. Je pense que dans quelques années, la plu­part des sites n’auront pas à s’inquiéter de ces fac­teurs, car l’optimisation sera presque automatique.

Beau­coup de plate­formes ont déjà sor­ties des fonc­tion­nal­ités ou tra­vail­lent sur ce sujet.

D’ores et déjà, Word­Press précharge la pre­mière image et monte une équipe pour tra­vailler sur les Wore Web Vitals. Cloud­flare a déjà sor­ti beau­coup d’élé­ments pour ren­dre votre site plus rapi­de comme Ear­ly Hints, Signed Exchanges, et HTTP/3.. Je pense que cela va con­tin­uer jusqu’au point qu’un pro­prié­taire de site n’ait même plus à se pos­er de questions.

Comme tou­jours, écrivez-moi sur Twit­ter si vous avez des questions et sur Linkedin pour les francophones.