Pourquoi Lighthouse 90 est notre bloqueur d'expédition de module
Chaque module de ce marché passe un budget de performance Lighthouse avant d'être mis en ligne. Le chiffre est de 90 sur mobile, mesuré par rapport à un magasin de référence Magento 2.4.6 avec Hyvä 1.3, avec le module installé et actif.
Si le module fait tomber le score en dessous de 90, il n'est pas expédié. Nous le renvoyons au développeur avec la trace d'échec.
Pourquoi cette règle existe-t-elle
En 2019, l'équipe qui gère ce marché a passé six mois à traquer une régression LCP de 1,4 seconde sur un magasin client. La piste a traversé trois modules tiers. Aucun d'eux n'a individuellement cassé Lighthouse, mais ensemble, ils ont expédié 240 Ko de JavaScript inutilisé et quatre requêtes réseau bloquantes lors du premier rendu.
Ce travail nous a coûté. Le client allait bien. Mais la leçon est restée : la plupart des catalogues de modules considèrent la performance comme un problème client. Ils vendent des fonctionnalités. Le propriétaire du magasin en installe cinq, la conversion chute, et personne ne sait quel module blâmer.
Nous avons décidé de renverser la responsabilité. Si un module est expédié par nos soins, il ne doit pas coûter au client une performance mesurable.
Ce que le budget de 90 attrape réellement
L'audit effectue neuf vérifications spécifiques :
- Temps de blocage total inférieur à 200 ms. Les longues tâches lors du rendu initial échouent rapidement.
- Largest Contentful Paint inférieur à 2,5 s. Les images héroïques ou les widgets au-dessus de la ligne de flottaison injectés par le module qui ne se chargent pas paresseusement échouent ici.
- Cumulative Layout Shift inférieur à 0,1. Tout widget qui apparaît après le premier rendu sans espace réservé échoue.
- Pas de JavaScript hérité. Les modules expédiés avec des polyfills ES5 ciblés par Babel pour des navigateurs que personne n'utilise sont signalés.
- Pas de CSS inutilisé au-dessus de 20 Ko. Les résidus de Bootstrap ou de Materialize sont attrapés.
- Ressources bloquant le rendu inférieures à 600 ms. Les polices externes, les scripts synchrones, les feuilles de style bloquantes échouent tous ici.
- Formats d'image actuels. Images héroïques PNG quand WebP suffirait, images héroïques JPEG quand AVIF suffirait.
- Pas d'iframes tiers bloquant le rendu. Les widgets de chat en direct qui bloquent le rendu au lieu de se charger après échouent.
- La réponse du serveur reste inférieure à 600 ms TTFB avec le code backend du module actif.
Les modules peuvent réussir avec ingéniosité, découpage de code, chargement différé, rendu côté serveur. Le budget récompense les bons comportements, pas des implémentations spécifiques.
L'argument que nous avons le plus souvent
Les développeurs demandent parfois pourquoi nous ne faisons pas simplement l'audit sur le vrai magasin du client au lieu d'un magasin de référence. Question raisonnable.
La réponse est que les magasins des clients ont du bruit. Cinq autres modules tiers, du code personnalisé, un thème personnalisé. Au moment où vous isolez la contribution du nouveau module, vous avez passé une heure. Le magasin de référence donne une base propre. Les modules réussissent ou échouent en isolation.
Nous effectuons également un audit secondaire sur quelques configurations de magasins réels avant l'approbation finale, mais l'audit du magasin de référence est le filtre.
Ce que cela signifie pour les acheteurs
Chaque page de module affiche le score Lighthouse que le module a réussi. Le score de départ du module n'est pas nécessairement le score que votre magasin atteindra. Cela dépend de tout ce que vous avez installé. Mais la contribution du module est limitée.
Si la performance d'un module change après une mise à jour de version, le nouveau score remplace l'ancien sur la page. Vous pouvez repérer les régressions en consultant l'historique des versions. Nous avons rétabli des modules après une chute de 2 points.
La discipline nous coûte des fonctionnalités. Nous refusons des soumissions qui auraient autrement payé. L'échange en vaut la peine : un catalogue où la performance de chaque module est documentée et limitée est un catalogue auquel les acheteurs peuvent faire confiance.