Performance web

Core Web Vitals : améliorer la performance sans dégrader l’UX

LCP, INP et CLS traduisent trois perceptions concrètes : voir le contenu principal, obtenir une réponse rapide et conserver une interface visuellement stable.

Interface web traversant trois portiques lumineux symbolisant les Core Web Vitals

En bref : les Core Web Vitals mesurent trois dimensions de l’expérience réelle : l’affichage du contenu principal avec LCP, la réactivité aux interactions avec INP et la stabilité visuelle avec CLS. On les améliore en traitant leurs causes sur chaque gabarit, pas en poursuivant un score isolé.

Un site peut sembler rapide sur l’ordinateur du développeur et rester pénible sur un téléphone courant. Les conditions réelles varient : réseau, puissance de l’appareil, cache, consentement, scripts tiers et contenu consulté. La performance doit donc combiner diagnostic en laboratoire et données de terrain.

Les seuils recommandés actuels qualifient de « bonne » une expérience lorsque, au 75e percentile, le LCP est inférieur ou égal à 2,5 secondes, l’INP à 200 millisecondes et le CLS à 0,1. Ce sont des repères, pas une raison de dégrader le contenu ou l’accessibilité.

LCP : rendre le contenu principal visible

Le Largest Contentful Paint correspond généralement à l’image héro, au titre ou à un grand bloc de texte. Pour l’améliorer, commencez par identifier l’élément exact plutôt que d’appliquer des optimisations génériques.

Les causes fréquentes sont un serveur lent, une chaîne de redirections, une image trop lourde, une ressource découverte tardivement, une feuille de style bloquante ou un contenu principal injecté après plusieurs appels JavaScript.

Les actions prioritaires peuvent inclure :

  • réduire le temps de réponse et utiliser un cache adapté ;
  • servir l’image aux dimensions utiles dans un format moderne ;
  • ne pas charger paresseusement l’image LCP ;
  • faire découvrir tôt la ressource principale ;
  • limiter les dépendances nécessaires au premier rendu ;
  • rendre le contenu important dans le HTML initial.

Une image de qualité n’a pas besoin de peser plusieurs mégaoctets. Le bon compromis dépend de ses détails, de sa taille d’affichage et du format choisi.

INP : répondre rapidement aux interactions

Interaction to Next Paint observe la latence des clics, touches et interactions pendant la visite. Un mauvais INP vient souvent de tâches JavaScript longues qui occupent le thread principal, de rendus React trop larges ou de traitements synchrones déclenchés par une action.

Mesurez quelle interaction pose problème. Un menu peut être fluide tandis qu’un filtre de catalogue ou un éditeur devient lent. Découpez les tâches, réduisez le travail par événement, évitez les recalculs inutiles et donnez un retour immédiat lorsque l’opération serveur prend du temps.

Le chargement initial et la réactivité sont liés : trop de JavaScript téléchargé, analysé puis exécuté laisse moins de ressources aux interactions. Les composants interactifs doivent être justifiés par l’usage.

CLS : préserver la stabilité visuelle

Cumulative Layout Shift mesure les déplacements inattendus. Un bouton qui descend au moment où l’utilisateur veut le toucher crée une erreur concrète, même si la page est visuellement élégante.

Réservez les dimensions des images, vidéos, publicités et contenus intégrés. Utilisez des polices avec une stratégie de chargement cohérente et évitez d’insérer une bannière au-dessus du contenu déjà affiché. Les animations doivent utiliser des propriétés qui ne recalculent pas toute la mise en page lorsque c’est possible.

Le consentement, les messages d’erreur et les résultats asynchrones sont des cas à tester. Leur apparition ne doit pas masquer l’action en cours ni déplacer brutalement l’interface.

Mesure de laboratoire et données de terrain

Lighthouse et les outils de développement reproduisent une visite contrôlée et fournissent des diagnostics. Ils sont précieux pour identifier une image, un script ou une tâche longue. Une exécution unique reste toutefois un échantillon.

Les données de terrain agrègent des expériences réelles sur une période. Elles reflètent la diversité des appareils et réseaux, mais peuvent manquer pour une nouvelle page ou un site peu visité. Analysez les deux sans mélanger leurs échelles.

La documentation Core Web Vitals de web.dev explique les métriques, seuils et l’usage du 75e percentile.

Auditer par gabarit et par parcours

Une moyenne globale masque les différences. Sélectionnez des pages représentatives :

  • accueil avec image principale ;
  • page service longue ;
  • article avec visuel ;
  • fiche produit et liste filtrable ;
  • formulaire ;
  • espace connecté.

Testez aussi les états : première visite sans cache, consentement accepté ou refusé, erreur de validation, menu mobile ouvert et contenu tiers chargé.

Optimiser les images sans les rendre médiocres

Générez plusieurs tailles lorsque le composant varie fortement selon l’écran. Réservez la largeur et la hauteur. Utilisez srcset ou un composant d’image capable de sélectionner une ressource adaptée. Chargez paresseusement les images hors écran, mais priorisez celle qui constitue le contenu principal.

Le texte alternatif ne sert pas à la performance, mais doit rester présent lors d’une refonte du composant. L’optimisation ne doit pas effacer l’accessibilité ni rendre le visuel flou sur les écrans à forte densité.

Maîtriser les polices

Limitez les familles, graisses et sous-ensembles. Hébergez-les de manière contrôlée lorsque cela correspond au projet, préchargez seulement les ressources réellement critiques et choisissez un comportement d’affichage adapté.

Une police de secours aux métriques très différentes peut provoquer des décalages. Ajustez la pile et testez le rendu avant et après chargement, notamment sur les titres longs en mobile.

Réduire le coût JavaScript

Le meilleur script est parfois celui qui n’est pas envoyé. Privilégiez le rendu serveur ou statique pour le contenu, puis hydratez uniquement les interactions nécessaires. Chargez les widgets tiers après consentement et au moment où leur valeur devient réelle.

Analysez les bundles, importez de manière ciblée et supprimez les dépendances inutilisées. Pour une interface complexe, observez les rerenders et virtualisez les listes seulement si le volume le justifie.

Traiter les services tiers

Analytics, publicité, chat, vidéo et cartes peuvent peser davantage que l’application. Documentez leur propriétaire, leur finalité, leur déclenchement et leur impact. Une balise ajoutée par un gestionnaire de tags doit passer la même recette qu’un changement de code.

Le refus du consentement doit laisser le parcours principal fonctionnel. L’acceptation ne doit pas rendre le site inutilisable. Comparez ces deux états pendant les tests.

Ne pas sacrifier le contenu à un score

Retirer une information décisive pour gagner quelques points peut réduire la conversion. À l’inverse, une vidéo décorative très lourde peut être remplacée sans perte. Chaque arbitrage relie coût technique et valeur utilisateur.

Les étapes d’une création de site réussie intègrent la performance dès le cadrage. L’audit SEO technique vérifie ensuite l’indexabilité, les métadonnées et le rendu en parallèle.

Installer un budget et une surveillance

Fixez des budgets par gabarit : poids d’image, JavaScript initial, nombre de requêtes ou seuil de métrique. Automatisez les contrôles qui détectent une régression importante dans la chaîne de livraison.

Après publication, suivez les métriques de terrain, erreurs et conversions. Une dégradation peut venir d’un nouveau contenu, d’un script marketing ou d’un changement d’infrastructure. L’objectif est de la repérer avant qu’elle ne devienne la nouvelle norme.

BlackStone Digital conçoit des sites web rapides et maintenables et peut prioriser les causes qui affectent réellement vos parcours. Pour une analyse, indiquez les pages et actions les plus importantes, pas seulement un score obtenu sur l’accueil.

Core Web Vitals : améliorer la performance d’un site — BlackStone Digital