Optimiser les signaux Web avec Lighthouse

Rechercher des possibilités d'améliorer l'expérience utilisateur avec les outils Web de Chrome.

Addy Osmani
Addy Osmani

Aujourd'hui, nous allons aborder les nouvelles fonctionnalités de Lighthouse, PageSpeed et des outils de développement comment votre site peut améliorer les Signaux Web.

Pour vous rafraîchir la mémoire, découvrez Lighthouse Open Source et automatisé permettant d'améliorer la qualité des pages Web. Vous la trouverez dans le la suite d'outils de débogage vers n'importe quelle page Web, publique ou nécessitant une authentification. Lighthouse se trouve PageSpeed des insights, CI et WebPageTest

Lighthouse 7.x inclut de nouvelles fonctionnalités, telles que des captures d'écran d'éléments, pour une inspection visuelle plus simple parties de votre interface utilisateur ayant un impact sur les métriques d'expérience utilisateur (par exemple, quels nœuds contribuent à la mise en page Maj).

Nous avons également pris en charge les captures d'écran des éléments sur PageSpeed Insights, ce qui permet d'obtenir repérer facilement les problèmes liés aux exécutions ponctuelles de pages.

Captures d'écran de l'élément mettant en évidence le nœud DOM contribuant au décalage de mise en page sur la page

Mesurer les Core Web Vitals

Lighthouse peut mesurer synthétiquement les métriques Core Web Vitals, y compris les métriques Largest Contentful Paint, Layout Shift et Total Blocking Time (un proxy de l'atelier pour le First Input Delay) Ces métriques reflètent le chargement, la stabilité de la mise en page et l'aptitude aux interactions. D'autres métriques telles que First Contentful Paint mis en avant dans l'avenir de Les Core Web Vitals s'y trouvent également.

La page "Métriques" du rapport Lighthouse inclut des versions expérimentales de ces métriques. Vous pouvez utiliser il s'agit d'une vue récapitulative des aspects de l'expérience utilisateur qui requièrent votre attention.

<ph type="x-smartling-placeholder">
</ph> Métriques de performances Lighthouse
<ph type="x-smartling-placeholder">
</ph> voie Web Vitals dans le panneau des performances des outils de développement
La nouvelle option "Signaux Web" du panneau "Performances" des outils de développement affiche qui met en évidence les moments des métriques, comme le décalage de mise en page (LS) présenté ci-dessus.

Métriques de champ, comme celles fournies dans l'expérience utilisateur Chrome Signaler ou RUM, je n'ai pas cette fonctionnalité limites et constituent un complément précieux aux données expérimentales, car elles reflètent l'expérience des utilisateurs réels dont vous disposez. Les données de terrain ne permettent pas d'obtenir les mêmes informations de diagnostic que dans l'atelier. main dans la main.

Identifier les points à améliorer concernant le rapport Core Web Vitals

Identifier l'élément Largest Contentful Paint

Le LCP mesure l'expérience de chargement perçue. Elle marque le moment du chargement de la page au moment le contenu principal (ou "largest") a été chargé et est visible par l'utilisateur.

Lighthouse comporte un élément "Largest Contentful Paint" d'audit qui identifie l'élément avec le plus grand tableau de contenu. Passez la souris sur l'élément pour le mettre en surbrillance dans la fenêtre principale du navigateur.

Élément Largest Contentful Paint

Si cet élément est une image, cette information peut vous aider à optimiser le chargement. de cette image. Lighthouse inclut plusieurs audits d'optimisation des images pour vous aider à comprendre si vos images pourraient être mieux compressées, redimensionnées ou livrées dans une meilleure image moderne .

Audit de taille correcte des images

Vous verrez peut-être aussi LCP Bookmarklet d'Annie Sullivan est utile pour identifier rapidement l'élément LCP avec un rectangle rouge en un seul clic.

Mettre en surbrillance l&#39;élément LCP à l&#39;aide d&#39;un favori intelligent

Précharger les images découvertes tardivement pour améliorer le LCP

Pour améliorer le Largest Contentful Paint, préchargez votre héros critique. si le navigateur les découvre en retard. Une découverte tardive peut se produire si Le bundle JavaScript doit être chargé pour que l'image soit visible.

<ph type="x-smartling-placeholder">
</ph> Précharger la plus grande image Contentful Paint

Quelques questions fréquentes nous sont posées sur le préchargement des images LCP qui peuvent également être utiles brièvement.

Pouvez-vous précharger les images responsives ? Oui. Imaginons que nous ayons une image de héros responsive spécifiée à l'aide des éléments srcset et sizes ci-dessous:

<img src="lighthouse.jpg"
          srcset="lighthouse_400px.jpg 400w,
                  lighthouse_800px.jpg 800w,
                  lighthouse_1600px.jpg 1600w" sizes="50vw" alt="A helpful
Lighthouse">

Grâce aux attributs imagesrcset et imagesizes ajoutés à l'attribut link, nous pouvons précharger une image responsive en utilisant la même logique de sélection d'images que srcset et sizes:

<link rel="preload" as="image" href="lighthouse.jpg"
           imagesrcset="lighthouse_400px.jpg 400w,
                        lighthouse_800px.jpg 800w,
                        lighthouse_1600px.jpg 1600w"
imagesizes="50vw">

L'audit met-il également en évidence les opportunités de préchargement si l'image LCP est définie via un CSS arrière-plan ? Oui.

Toute image signalée comme image LCP, que ce soit via un arrière-plan CSS ou une <img>, est candidate si elle est découvertes à une profondeur de cascade d'au moins trois.

Chargement différé des images hors écran et éviter cela pour le LCP

Les images hors écran qui ne sont pas essentielles à l'expérience utilisateur initiale peuvent être chargées de manière différée. Il s'agit d'une technique qui reporte le téléchargement d'une image jusqu'à ce que l'utilisateur fasse défiler la page à proximité, ce qui peut réduire les conflits sur le réseau pour les ressources critiques et, dans certains cas, améliorer le LCP. L'audit Différer les images hors écran peut vous aider dans les cas suivants:

Reporter les images hors écran

Les images critiques situées au-dessus de la ligne de flottaison, telles que l'image Largest Contentful Paint, ne doivent pas être chargées de façon différée. Cela peut retarder le chargement de l'image LCP. Lighthouse indique si le chargement différé d'une image LCP est incorrect via le message "Largest Contentful Paint" (image à chargement différé) audit:

Éviter les images LCP à chargement différé

Identifier les contributions du CLS

Le Cumulative Layout Shift est une mesure de la stabilité visuelle. Il quantifie la proportion le contenu change visuellement. Lighthouse propose un audit de débogage du CLS appelé "Éviter les grands décalages de mise en page".

Cet audit met en évidence les éléments DOM qui contribuent le plus aux décalages de la page. Dans l'élément La colonne de gauche contient la liste de ces éléments DOM et, à droite, leur CLS global. contribution.

Audit permettant d&#39;éviter les décalages de mise en page importants dans Lighthouse, mettant en évidence les nœuds DOM pertinents contribuant au CLS

Grâce à la nouvelle fonctionnalité de captures d'écran des éléments Lighthouse, nous pouvons à la fois afficher un aperçu de l'élément les éléments clés mentionnés dans l'audit, ainsi que la possibilité de cliquer pour zoomer afin d'obtenir une vue plus claire:

Cliquez sur une capture d&#39;écran d&#39;un élément pour la développer.

Pour le CLS post-chargement, il peut y avoir une valeur dans la visualisation persistante avec des rectangles les éléments qui ont le plus contribué au CLS. Il s'agit d'une fonctionnalité que vous trouverez dans des outils tiers tels que Tableau de bord Core Web Vitals de SpeedCurve et que j'adore utiliser avec le GIF de Defaced (mise en page) Générateur pour:

le générateur de décalages de mise en page mettant en évidence les décalages

Pour avoir une vue d'ensemble des problèmes de décalage de mise en page à l'échelle du site, je peux exploiter pleinement le tableau de bord de la Search Console le rapport "Signaux Web". Cela me permet de voir les types de pages de mon site avec un CLS élevé (dans ce cas, nous aider à identifier partiels auxquels je dois consacrer mon temps):

<ph type="x-smartling-placeholder">
</ph> Affichage des problèmes liés au CLS dans la Search Console

Identifier le CLS à partir d'images sans dimensions

Pour limiter le décalage de mise en page cumulatif causé par des images sans dimensions, ajoutez les attributs de largeur et de hauteur à vos images et éléments vidéo. Cette approche garantit que le navigateur peut allouer la bonne quantité d'espace dans le document pendant le chargement de l'image.

Auditez les éléments d&#39;image sans largeur et hauteur explicites

Consultez la section Il est important de définir la hauteur et la largeur des images. à nouveau pour une un bon point sur l'importance de réfléchir aux dimensions et au format de l'image.

Identifier le CLS dans les annonces

Les annonces d'éditeur pour Lighthouse vous permettent : Identifier des opportunités d'améliorer le chargement des annonces sur votre page, y compris pour les contributions au décalage de la mise en page et aux longues tâches pouvant augmenter le délai d'utilisation de votre page par les utilisateurs. Dans Lighthouse, vous pouvez l'activer via les plug-ins de la communauté.

Audits liés aux annonces mettant en évidence les possibilités de réduction du délai de traitement des demandes et de décalage de la mise en page

N'oubliez pas que les annonces les principales composantes des décalages de mise en page sur le Web. Il est important de:

  • Faites attention lorsque vous placez des annonces non persistantes en haut de la fenêtre d'affichage
  • Éliminer les décalages en réservant la plus grande taille possible pour l'espace publicitaire

Éviter les animations non composées

Les animations non composées peuvent être saccadées sur les appareils bas de gamme si elles sont lourdes. Les tâches JavaScript maintiennent le thread principal occupé. Ces animations peuvent introduire des décalages de mise en page.

Si Chrome détecte qu'une animation ne peut pas être composée, il la signale à une trace des outils de développement Lighthouse lit les éléments avec des animations qui n'ont pas été composites, et pour pour quelle raison. Vous les trouverez dans la section Éviter les images des animations.

Audit pour éviter les animations non composées

Déboguer le retard de la première entrée / temps total de blocage / tâches longues

La première entrée mesure le temps écoulé entre le moment où un utilisateur interagit pour la première fois avec une page (par exemple, lorsqu'il clique sur un un lien, appuyez sur un bouton ou utilisez une commande JavaScript personnalisée) à l'heure à laquelle le navigateur est réellement capable de commencer à traiter les gestionnaires d'événements en réponse à cette interaction. Code JavaScript long Les tâches peuvent avoir une incidence sur cette métrique et sur le proxy associé, à savoir le temps de blocage total.

Audit pour éviter les longues tâches de thread principal

Lighthouse inclut un audit Éviter les longues tâches du thread principal qui répertorie les et les plus longues sur le thread principal. Cela peut vous aider à identifier les facteurs qui contribuent le moins d'entrée. Dans la colonne de gauche, nous pouvons voir l'URL des scripts responsables du thread principal long. tâches.

À droite, nous pouvons voir la durée de ces tâches. Pour rappel, les longues tâches sont des tâches qui s'exécuter pendant plus de 50 millisecondes. Le thread principal est alors bloqué suffisamment longtemps impacter la fréquence d'images ou la latence d'entrée.

Si vous envisagez d'utiliser des services tiers pour la surveillance, j'aime aussi l'exécution du thread principal de la timeline. pour visualiser ces coûts, ce qui met en évidence les tâches parents et enfants contribuant tâches qui ont un impact sur l'interactivité.

Le visuel de la chronologie d&#39;exécution du thread principal Calibre a

Bloquez les requêtes réseau pour voir l'impact avant/après dans Lighthouse

Les outils pour les développeurs Chrome peuvent bloquer requêtes pour voir l'impact de la suppression ou de la non-disponibilité de ressources individuelles. Cela peut être utile pour comprendre le coût des scripts individuels (par exemple, les intégrations ou outils de suivi tiers) sur comme le temps total de blocage et le délai avant interactivité.

Le blocage des requêtes réseau fonctionne également avec Lighthouse. Examinons rapidement rapport Lighthouse pour un site. Le score de performance est de 63/100 avec un volume de données de latence de 400 ms. En explorant le code, nous constatons que ce site charge un polyfill "Intersection Observer" dans Chrome, ce qui n'est pas nécessaire. Bloquez-les !

Blocage de requête réseau

Nous pouvons effectuer un clic droit sur un script dans le panneau DevTools Network, puis cliquer sur Block Request URL pour bloquer C'est ce que nous allons faire pour le polyfill "Observateur d'intersection".

Bloquer les URL de requête dans les outils de développement

Nous pouvons ensuite relancer Lighthouse. Cette fois, nous constatons que notre score de performance s'est amélioré (70/100), car a une durée totale de blocage (400 ms => 300 ms).

Après le blocage des requêtes réseau coûteuses

Remplacez les intégrations tierces coûteuses par une façade

Il est courant d'utiliser des ressources tierces pour intégrer des vidéos, des posts ou des widgets sur les réseaux sociaux . Par défaut, la plupart des intégrations se chargent immédiatement et peuvent être associées à des charges utiles coûteuses qui avoir un impact négatif sur l'expérience utilisateur. C'est du gaspillage si le tiers n'est pas critique (par exemple, si l'utilisateur doit faire défiler la page pour la voir).

Pour améliorer les performances de ces widgets, une pratique consiste à les charger en différé sur l'écran d'interaction. Pour ce faire, affichez une aperçu léger du widget (façade) et ne charge la version complète que si un utilisateur interagit avec lui. Lighthouse propose un audit qui recommande des ressources tierces avec une façade en différé, comme des vidéos YouTube intégrées.

Audit montrant que certaines ressources tierces coûteuses peuvent être remplacées

Pour rappel, Lighthouse met en surbrillance le code tiers qui bloque le thread principal pendant plus de 250 ms. Cela permet d'exposer tous types de scripts tiers (y compris ceux créés par Google). Il peut être préférable de différer le chargement ou d'effectuer un chargement différé si ce qu'ils affichent nécessite un défilement pour les afficher.

Réduire le coût des audits JavaScript tiers

Au-delà des Core Web Vitals

Outre les Core Web Vitals, les versions récentes de Lighthouse et PageSpeed Insights essayez de fournir des conseils concrets qui vous permettront d'améliorer la vitesse de chargement applications peuvent se charger si vous avez activé les cartes sources.

Il s'agit notamment d'un nombre croissant d'audits visant à réduire le coût de JavaScript sur votre page, comme la réduction de la dépendance aux polyfills et aux doublons qui ne sont pas forcément nécessaires à l'expérience utilisateur.

Pour en savoir plus sur les outils Core Web Vitals, consultez le site Lighthouse compte Twitter de l'équipe et What's new in DevTools.

Image héros de Mercedes Mehling dans Unsplash.