Audit Google Lighthouse pour PrestaShop : interpreter chaque score correctement

405 vues

Ce que mesure Google Lighthouse

Google Lighthouse est un outil d'audit automatise integre aux Chrome DevTools qui evalue les pages web selon quatre categories principales : Performance, Accessibilite, Bonnes Pratiques et SEO. Chaque categorie produit un score de 0 a 100, et chaque score est calcule a partir de metriques et de verifications specifiques qui ont des poids differents. Comprendre ce que ces scores signifient reellement pour une boutique PrestaShop, et quelles sont les cibles realistes, est essentiel avant de consacrer du temps a l'optimisation.

Lighthouse fonctionne dans deux environnements. Les donnees de laboratoire proviennent d'un environnement simule avec une limitation controlee du reseau et un ralentissement du CPU. Les donnees de terrain proviennent d'utilisateurs reels via le Chrome User Experience Report (CrUX). Les scores que vous voyez en executant Lighthouse dans les Chrome DevTools sont des donnees de laboratoire. Les scores que Google utilise a des fins de classement (Core Web Vitals) proviennent des donnees de terrain. Cette distinction est importante car les resultats de laboratoire et de terrain different souvent significativement, et optimiser pour l'un n'ameliore pas toujours l'autre.

Pour les boutiques PrestaShop, Lighthouse est particulierement revelateur car la configuration par defaut de PrestaShop et la plupart des themes ne sont pas optimises pour les standards de performance modernes. Une boutique PrestaShop typique non optimisee obtient entre 15 et 40 en Performance, 60 a 80 en Accessibilite, 70 a 85 en Bonnes Pratiques et 75 a 90 en SEO. Ces scores de base vous montrent ou se trouvent les plus grandes opportunites d'amelioration.

Score de Performance : la categorie la plus complexe

Le score de Performance est un composite pondere de six metriques. Chaque metrique capture un aspect different de la vitesse de chargement de la page et de sa capacite a devenir interactive. Comprendre les metriques individuelles est bien plus utile que de se concentrer sur le nombre global.

Largest Contentful Paint (LCP)

Le LCP mesure quand le plus grand element de contenu visible termine son rendu. Sur une page produit PrestaShop, c'est generalement l'image produit principale. Sur une page categorie, ce pourrait etre la premiere image produit ou une banniere de categorie. Google considere le LCP comme bon lorsqu'il est inferieur a 2,5 secondes, a ameliorer entre 2,5 et 4 secondes, et mauvais au-dessus de 4 secondes.

Les problemes de LCP specifiques a PrestaShop incluent des images produit surdimensionnees servies sans dimensionnement responsive adequat, du CSS bloquant le rendu provenant de modules qui se chargent sur chaque page, des temps de reponse serveur ralentis par des requetes de base de donnees non optimisees (particulierement sur les pages de categories avec de nombreux produits), et du JavaScript de modules tiers qui retarde le pipeline de rendu.

Pour ameliorer le LCP sur PrestaShop, commencez par l'optimisation des images. Assurez-vous que les images produit sont correctement dimensionnees pour chaque contexte (ne servez pas une image de 2000x2000 quand la zone d'affichage fait 400x400). Activez le chargement paresseux (lazy loading) pour les images en dessous de la ligne de flottaison, mais assurez-vous que l'image LCP n'est PAS chargee en lazy, car cela retarde son rendu. Implementez des indices de prechargement pour l'image LCP en utilisant une balise <link rel="preload"> dans l'en-tete de la page. Cote serveur, activez OPcache, configurez le cache de requetes MySQL et assurez-vous que votre hebergement dispose de ressources adequates.

Cumulative Layout Shift (CLS)

Le CLS mesure la stabilite visuelle. Chaque fois qu'un element visible change de position apres son rendu initial, cela contribue au score CLS. Google considere le CLS comme bon lorsqu'il est inferieur a 0,1, a ameliorer entre 0,1 et 0,25, et mauvais au-dessus de 0,25.

Les boutiques PrestaShop souffrent couramment de CLS cause par des images se chargeant sans dimensions definies (le navigateur ne sait pas combien d'espace reserver, donc le contenu saute quand l'image se charge), des polices web se chargeant et causant le reorganisation du texte (FOUT, Flash of Unstyled Text), des bannieres ou barres de notification injectees dynamiquement par des modules, des bannieres de consentement aux cookies qui poussent le contenu de la page vers le bas, et des images produit chargees en lazy dans des grilles qui decalent les produits environnants lorsqu'elles apparaissent.

Corriger le CLS dans PrestaShop necessite de definir des attributs de largeur et hauteur explicites sur toutes les images (ou d'utiliser CSS aspect-ratio), de precharger les polices web critiques avec font-display: swap ou font-display: optional, de reserver de l'espace pour les elements dynamiques comme les bannieres de cookies en utilisant CSS min-height, et de s'assurer que les modules publicitaires ou promotionnels injectent du contenu sans decaler les elements existants.

First Contentful Paint (FCP)

Le FCP mesure quand le premier element de contenu apparait a l'ecran. Cela peut etre du texte, une image, un SVG ou un element canvas. Pour PrestaShop, le FCP est fortement influence par le temps de reponse du serveur (Time to First Byte) et la quantite de ressources bloquant le rendu (CSS et JavaScript) qui doivent etre telechargees avant que le navigateur puisse afficher quoi que ce soit.

La configuration par defaut de PrestaShop charge une quantite significative de CSS et JavaScript de maniere synchrone dans le head de chaque page. Chaque module installe peut ajouter ses propres fichiers CSS et JavaScript. Une boutique avec 30 modules pourrait charger 15 a 25 fichiers CSS separes et 20 a 30 fichiers JavaScript avant qu'aucun contenu n'apparaisse. Cela augmente directement le FCP.

Total Blocking Time (TBT)

Le TBT mesure le temps total entre le FCP et le Time to Interactive ou le thread principal etait bloque assez longtemps pour empecher la reactivite aux interactions. Toute tache de plus de 50 millisecondes voit son temps excedentaire compte dans le TBT. Par exemple, une tache de 200 millisecondes contribue 150 millisecondes au TBT.

Les boutiques PrestaShop sont reputees pour leurs valeurs TBT elevees. Les coupables courants incluent jQuery et ses plugins s'executant de maniere synchrone, du JavaScript de modules effectuant des manipulations DOM lourdes au chargement de la page, du code d'analytics et de tracking provenant de multiples modules, des scripts de pages produit initialisant simultanement des sliders, la fonctionnalite de zoom et les selecteurs de combinaisons, ainsi que des widgets de chat et des integrations de reseaux sociaux.

Reduire le TBT necessite de differer le JavaScript non critique, de decouper les taches longues en petits blocs asynchrones, de supprimer le JavaScript de modules inutilise et de charger les widgets tiers apres que la page soit devenue interactive.

Speed Index

Le Speed Index mesure a quelle vitesse la zone visible de la page est remplie. Il capture la progression visuelle globale du chargement de la page. Une page ou l'en-tete, la navigation et la premiere rangee de produits apparaissent rapidement mais le reste charge progressivement aura un meilleur Speed Index qu'une page ou tout apparait d'un coup apres un long delai.

Pour PrestaShop, le Speed Index s'ameliore lorsque vous priorisez le rendu du contenu au-dessus de la ligne de flottaison. Cela signifie integrer le CSS critique en ligne (le CSS necessaire pour rendre la portion visible de la page sans defiler), differer les images en dessous de la ligne de flottaison et eviter le JavaScript qui bloque le rendu du contenu visible.

Interaction to Next Paint (INP)

L'INP a remplace le First Input Delay (FID) comme Core Web Vital en mars 2024. Il mesure la reactivite d'une page tout au long de son cycle de vie, pas seulement la premiere interaction. Chaque clic, tap et appui sur une touche est mesure, et la pire latence d'interaction (approximativement) devient la valeur INP. Google considere l'INP comme bon en dessous de 200 millisecondes.

Les boutiques PrestaShop ont souvent un mauvais INP sur les pages produit ou cliquer sur un attribut de combinaison declenche une requete AJAX synchrone qui bloque l'interface utilisateur, sur les pages de categories ou les clics sur les filtres a facettes causent un traitement JavaScript lourd, et sur toute page ou le JavaScript de modules monopolise le thread principal pendant l'interaction utilisateur.

Score d'Accessibilite

Le score d'Accessibilite evalue si votre page peut etre utilisee par des personnes handicapees, y compris celles utilisant des lecteurs d'ecran, la navigation au clavier ou d'autres technologies d'assistance. Lighthouse verifie des elements specifiques de conformite WCAG 2.1 et attribue a chacun un poids base sur l'impact utilisateur.

Echecs d'accessibilite courants dans PrestaShop

L'absence de texte alternatif sur les images est le probleme le plus frequent. Les boutiques PrestaShop avec des milliers de produits ont souvent des produits telecharges sans descriptions de texte alternatif. Lighthouse signale chaque image sans attribut alt. La solution est d'ajouter un texte alternatif significatif a toutes les images produit via le back office, ce qui beneficie egalement au SEO.

Un contraste de couleur insuffisant est extremement courant dans les themes PrestaShop. Le designer du theme a pu choisir des couleurs visuellement attrayantes mais qui ne respectent pas le ratio de contraste minimum WCAG de 4,5:1 pour le texte normal et 3:1 pour le grand texte. Les problemes typiques incluent du texte gris clair sur fond blanc (souvent utilise pour les prix des produits, les descriptions ou les liens du pied de page), du texte blanc sur des boutons colores dont la couleur n'est pas assez foncee, et du texte de placeholder dans les champs de recherche.

L'absence de labels de formulaire affecte les formulaires de recherche, d'inscription a la newsletter et de contact de PrestaShop. De nombreux themes utilisent le texte de placeholder comme seule indication de la destination d'un champ de saisie, mais les placeholders ne sont pas des labels accessibles. Chaque champ de saisie doit avoir un element <label> associe.

Une hierarchie de titres incorrecte est courante lorsque les themes sautent des niveaux de titres (passant de <h1> a <h3>) ou lorsque des modules injectent du contenu avec des niveaux de titres qui cassent le plan du document de la page.

L'absence d'attributs ARIA sur les elements interactifs comme les menus deroulants, les boites de dialogue modales et les interfaces a onglets signifie que les lecteurs d'ecran ne peuvent pas transmettre la fonction et l'etat de ces elements aux utilisateurs.

Objectifs d'accessibilite realistes

La plupart des themes PrestaShop, avec des efforts, peuvent atteindre 85 a 95. Un score parfait de 100 est realisable mais necessite des modifications de templates de theme, qui peuvent etre ecrasees lors des mises a jour. Concentrez-vous d'abord sur les elements a plus fort impact : texte alternatif des images, contraste des couleurs, labels de formulaire et navigation au clavier pour les principaux parcours utilisateur (navigation, ajout au panier, checkout).

Score de Bonnes Pratiques

La categorie Bonnes Pratiques couvre les signaux generaux de qualite du developpement web : utilisation du HTTPS, evitement des API obsoletes, absence d'erreurs de console et en-tetes de securite.

Echecs de Bonnes Pratiques courants dans PrestaShop

Les erreurs de console du navigateur sont signalees par Lighthouse. Les boutiques PrestaShop ont frequemment des erreurs JavaScript dues a des conflits de modules, des appels de fonctions jQuery obsoletes ou des requetes AJAX echouees. Chaque erreur de console reduit le score de Bonnes Pratiques. Verifiez votre console navigateur sur chaque type de page (accueil, categorie, produit, panier, checkout) et corrigez ou supprimez les erreurs.

L'absence d'en-tetes de securite reduit le score. PrestaShop ne definit pas par defaut des en-tetes comme Content-Security-Policy, X-Content-Type-Options, Permissions-Policy ou Referrer-Policy. Les ajouter via votre .htaccess ou la configuration du serveur web ameliore le score de Bonnes Pratiques et la posture de securite de votre site.

Les API obsoletes declenchent des avertissements lorsque des themes ou modules PrestaShop plus anciens utilisent des API JavaScript que les navigateurs ont marquees comme obsoletes. Les exemples courants incluent document.write(), les XMLHttpRequest synchrones et le listener d'evenement unload. Ceux-ci se trouvent typiquement dans les modules plus anciens qui n'ont pas ete mis a jour pour les standards modernes des navigateurs.

Le contenu mixte (charger des ressources HTTP sur une page HTTPS) est severement signale. Cela arrive lorsque les assets de modules, les polices externes ou les pixels de tracking utilisent des URLs HTTP. Assurez-vous que toutes les ressources se chargent en HTTPS.

Les images sans largeur et hauteur explicites (ce qui affecte egalement le CLS sous Performance) sont signalees ici aussi. Les themes PrestaShop qui utilisent uniquement le CSS pour dimensionner les images sans definir d'attributs HTML declenchent cette verification.

Objectifs realistes de Bonnes Pratiques

Une boutique PrestaShop bien maintenue devrait viser 90 a 100. La plupart des problemes de Bonnes Pratiques sont simples a corriger via la configuration serveur et le nettoyage des modules.

Score SEO

L'audit SEO verifie les exigences techniques de base en matiere de SEO. C'est la categorie la plus facile a bien scorer car les verifications sont simples et PrestaShop gere beaucoup d'entre elles par defaut.

Ce que Lighthouse verifie pour le SEO

L'audit verifie que la page a une balise <title> valide, une meta description, une balise meta viewport valide, que les liens ont un texte descriptif (pas seulement "cliquez ici"), que la page n'est pas bloquee pour l'indexation, que les images ont des attributs alt, que le document a un hreflang valide s'il sert plusieurs langues, que la taille de police est lisible sur mobile, et que les cibles de tap (boutons, liens) sont adequatement dimensionnees et espacees.

Echecs SEO courants dans PrestaShop

Les meta descriptions manquantes ou dupliquees sont courantes sur les pages de categories, surtout les pages generees automatiquement. PrestaShop vous permet de definir des meta descriptions par categorie et par produit, mais de nombreux proprietaires de boutiques laissent ces champs vides lors des imports de produits en masse.

Le texte de lien non descriptif apparait lorsque les themes utilisent du texte generique comme "En savoir plus" ou "Details" pour les liens produit sans contexte supplementaire. Les lecteurs d'ecran et Lighthouse signalent tous les deux ces cas.

Les petites cibles de tap affectent les utilisateurs mobiles. Les themes PrestaShop avec des grilles de produits compactes sur mobile peuvent avoir des liens et des boutons trop proches les uns des autres ou trop petits. Google recommande une cible tactile minimale de 48x48 pixels CSS avec au moins 8 pixels d'espacement entre les cibles adjacentes.

Les ressources bloquees peuvent amener Lighthouse a signaler que des fichiers JavaScript ou CSS sont inaccessibles. Cela arrive lorsque robots.txt bloque l'acces aux repertoires d'assets. Le robots.txt par defaut de PrestaShop bloque parfois des repertoires contenant des fichiers CSS ou JavaScript necessaires au rendu par les moteurs de recherche.

Objectifs SEO realistes

Une boutique PrestaShop devrait viser 90 a 100 a l'audit SEO. La plupart des elements sont de simples corrections de configuration. Le defi persistant est le texte alternatif des images sur les boutiques avec de grands catalogues et des imports historiques qui ont ignore le texte alternatif.

Donnees de laboratoire vs. donnees de terrain

Comprendre la difference entre les donnees de laboratoire et de terrain est crucial pour interpreter correctement les resultats Lighthouse et prioriser votre travail d'optimisation.

Donnees de laboratoire (Lighthouse)

Lorsque vous executez Lighthouse depuis les Chrome DevTools ou la ligne de commande, il cree un environnement simule. Il limite la connexion reseau (typiquement a une vitesse 4G lente d'environ 1,6 Mbit/s avec 150 ms de latence) et ralentit le CPU (typiquement un ralentissement de 4x). Cet environnement simule produit des resultats coherents et reproductibles mais ne reflete l'experience d'aucun utilisateur reel specifique.

Les donnees de laboratoire sont utiles pour deboguer des problemes specifiques, comparer les changements avant et apres optimisation, et identifier des goulots d'etranglement specifiques dans le processus de chargement. Mais les scores ne doivent pas etre consideres comme representatifs de l'experience utilisateur reelle.

Donnees de terrain (CrUX)

Le Chrome User Experience Report (CrUX) collecte des donnees de performance reelles aupres des utilisateurs Chrome qui ont accepte le partage de statistiques d'utilisation. Ces donnees sont agregees au 75e percentile, ce qui signifie que la valeur rapportee represente l'experience de 75 pour cent de vos utilisateurs etant a ce seuil ou mieux.

Les donnees de terrain sont ce que Google utilise reellement comme signaux de classement via les Core Web Vitals. Vous pouvez consulter vos donnees de terrain dans Google Search Console sous le rapport Core Web Vitals, dans PageSpeed Insights (qui montre a la fois les donnees de laboratoire et de terrain), et via l'API CrUX ou le jeu de donnees BigQuery.

Pourquoi les scores different

Les scores de laboratoire sont typiquement plus bas que les scores de terrain pour les boutiques PrestaShop car Lighthouse utilise une limitation agressive. Une boutique sur un serveur rapide avec CDN pourrait obtenir 35 en mode laboratoire Lighthouse mais avoir des metriques de terrain parfaitement acceptables car les vrais utilisateurs avec des connexions correctes experimentent la boutique beaucoup plus rapidement que l'environnement 4G lent simule. Inversement, les boutiques avec des problemes qui ne se manifestent que dans des conditions reelles (erreurs JavaScript de versions specifiques de navigateurs, ralentissements de widgets tiers, ou latence geographique vers des utilisateurs eloignes du serveur) peuvent avoir de meilleurs scores de laboratoire que de terrain.

Que prioriser

Pour le classement Google, priorisez les donnees de terrain et les Core Web Vitals (LCP, INP, CLS). Pour le debogage developpeur et le travail d'optimisation, utilisez les donnees de laboratoire car elles sont coherentes et donnent des informations diagnostiques detaillees. Si vos donnees de terrain montrent des Core Web Vitals conformes mais que votre score de Performance en laboratoire est de 40, vos utilisateurs vont bien et Google ne vous penalisera pas. Si votre score de laboratoire est de 90 mais que les donnees de terrain montrent des Core Web Vitals non conformes, vous avez un probleme que les tests en laboratoire ne capturent pas.

Objectifs de scores realistes pour PrestaShop

Definir des objectifs realistes evite de gaspiller des efforts a poursuivre des rendements decroissants. Voici des objectifs atteignables pour une boutique PrestaShop 1.7 ou 8.x typique.

Performance : 50 a 75 (mobile), 80 a 95 (desktop)

Les scores de Performance mobile superieurs a 75 sont extremement difficiles pour les boutiques PrestaShop avec des pages produit riches, de multiples modules et du contenu dynamique. La simulation mobile avec limitation est severe. Un score de 50 a 65 sur mobile avec des Core Web Vitals conformes dans les donnees de terrain est un bon resultat. Des scores desktop de 85 a 95 sont atteignables avec des optimisations standard.

Ne poursuivez pas un score de Performance mobile de 100. L'effort requis pour passer de 70 a 100 sur mobile implique typiquement de supprimer des fonctionnalites dont votre boutique a besoin (zoom sur les images produit, mises a jour dynamiques du panier, selecteurs de combinaisons). Concentrez-vous plutot sur le respect des seuils Core Web Vitals dans les donnees de terrain.

Accessibilite : 85 a 95

Cette plage est atteignable avec des corrections de templates de theme et de la discipline au niveau du contenu. L'effort continu principal est de s'assurer que tous les nouveaux produits ont du texte alternatif et que les nouveaux modules n'introduisent pas de regressions d'accessibilite.

Bonnes Pratiques : 90 a 100

Atteignable avec la configuration serveur, le nettoyage des erreurs de console et la mise a jour des modules. Ce score a tendance a se degrader au fil du temps a mesure que de nouveaux modules sont ajoutes, donc une surveillance reguliere est benefique.

SEO : 90 a 100

Le plus facile a atteindre et a maintenir. La plupart des elements sont des corrections de configuration ponctuelles.

Checklist d'ameliorations actionnables

Cette checklist priorise les optimisations par impact, en commencant par les changements qui produisent les plus grandes ameliorations de score pour le moindre effort.

Fort impact, faible effort

Activez la fonctionnalite CCC (Combiner, Compresser, Cache) de PrestaShop dans les parametres de Performance pour fusionner et minifier les fichiers CSS et JavaScript. Ajoutez des attributs de largeur et hauteur a toutes les images dans les templates de theme. Definissez des dimensions explicites sur les images produit. Activez la mise en cache navigateur via des en-tetes de cache adequats dans votre configuration serveur. Compressez les ressources texte avec Gzip ou Brotli. Supprimez ou desactivez les modules que vous n'utilisez pas activement. Ajoutez des en-tetes de securite a votre configuration serveur.

Fort impact, effort moyen

Implementez l'integration CSS critique en ligne pour le contenu au-dessus de la ligne de flottaison. Differez le JavaScript non critique avec l'attribut defer ou async. Optimisez et dimensionnez correctement les images produit (servez differentes tailles pour differents contextes en utilisant srcset). Prechargez les ressources critiques (image LCP, fichiers de polices principaux). Corrigez toutes les erreurs de console navigateur. Ajoutez le texte alternatif manquant a toutes les images de produits et de categories.

Impact moyen, effort plus eleve

Implementez un CDN pour les assets statiques et les images. Passez a un theme PrestaShop plus oriente performance si votre theme actuel est fondamentalement lent. Optimisez les performances cote serveur (index de base de donnees, OPcache, Redis pour le cache). Implementez le service d'images WebP avec fallback JPEG. Auditez et optimisez le JavaScript des modules tiers pour le blocage du thread principal.

Surveillance dans le temps

Un audit Lighthouse ponctuel a moins de valeur qu'une surveillance reguliere. Les scores changent lorsque vous ajoutez des produits, installez des modules, mettez a jour des themes et modifiez des configurations. Mettez en place des tests Lighthouse automatises en utilisant des outils comme l'API Google PageSpeed Insights, web.dev Measure ou Lighthouse CI auto-heberge. Executez les tests au minimum chaque semaine et apres tout changement significatif de la boutique.

Suivez a la fois les scores globaux et les metriques individuelles. Une baisse du score de Performance de 65 a 55 est preoccupante, mais savoir qu'elle a ete causee par une regression CLS d'un module de banniere nouvellement installe est actionnable. Sans suivi au niveau des metriques, vous devinez les causes.

Portez une attention particuliere aux Core Web Vitals dans Google Search Console. Google met a jour ces donnees mensuellement, et toute regression de "Bon" a "A ameliorer" ou "Mauvais" peut affecter vos classements de recherche. Configurez des alertes pour les changements de Core Web Vitals afin de pouvoir reagir avant que l'impact ne devienne visible dans les donnees de trafic.

Cette réponse vous a-t-elle été utile ?

Vous avez encore des questions ?

Can't find what you're looking for? Send us your question and we'll get back to you quickly.

Loading...
Back to top