Lighthouse
Dépôt GitHub : https://github.com/GoogleChrome/lighthouse
Journaux liées à cette note :
Pourquoi le badge Website Carbon me dérange ?
Je viens de voir à nouveau un badge Website Carbon Calculator sur un site.
Ce type d'initiative me dérange, parce que je considère la méthode de calcul comme non rigoureuse.
Quelques exemples :
- Elle semble ne pas prendre en compte la consommation du device côté client (smartphone, desktop…) ;
- Elle semble ne pas prendre en compte la charge cotée serveur.
Je pense que les personnes qui intègrent ce type de badge sur leur site sont dans une démarche de Greenwashing. Je pense qu'elles ne maitrisent pas le sujet.
Le projet Lighthouse est bien plus honnête dans sa démarche. N'étant pas en mesure de donner des mesures rigoureuses, il semble avoir abandonné ce projet : 🍃 adding environment protection KPI and audits (like CO2 footprint)
Pour fournir une information plus rigoureuse, je pense qu'il serait possible d'agréger les statistiques de consommation via PowerTOP de tous les serveurs qui servent à héberger le site web, croiser cette information avec les statistiques de visites tout en prenant en compte les caractéristiques énergétiques du data center.
Mais, tout cela est très compliqué.
En attendant, je pense qu'il est bien plus honnête de simplement intégrer un badge Lighthouse qui prends en compte les paramètres suivants :
- la taille de la page et de ses dépendances ;
- la complexité de rendu de la page.
Plus la note Lighthouse est élevée, moins le site web consomme d'énergie, à conditions égales.
Exemple : https://sklein.xyz/reports/report.html
Voir aussi : co2.js.
Mise en œuvre du module Nginx Brotli
Pour accélérer un peu la vitesse de chargement de https://sklein.xyz et améliorer mon score Lighthouse, j'ai activé la compression Brotli dans nginx.
Voici le dépôt GitHub qui convient le Dockerfile
de l'image Docker qui j'utilise : nginx-brotli-docker.
Cette image contient nginx + le module ngx_brotli
.
J'en ai profité pour étudier un peu l'histoire de Brotli.
Je découvre que Brotli a été créé par un employé de Google pour accélérer le chargement fontes de caractères :
Google employees Jyrki Alakuijala and Zoltán Szabadka initially developed Brotli in 2013 to decrease the size of transmissions of WOFF web font.
Le support de Brotli semble avoir été ajouté à Firefox en janvier 2016 et à Chrome en avril 2016.
Au sujet de son nom :
Comme pour zopfli, un autre algorithme de compression de Google, Brotli porte le nom d'une viennoiserie suisse. C'est la transcription de Brötli (petit pain en suisse allemand).
Concernant les performances, je lis :
Compared to gzip compression, JavaScript files compressed with Brotli are roughly 15% smaller, HTML files are around 20% smaller, and CSS files are around 16% smaller.
Le changement n'est pas "exceptionnel", mais comment c'est simple à activer, autant en profiter 😉.
Voici ce que cela donne pour le téléchargement de la page https://sklein.xyz/fr/ :
$ curl -s -H "Accept-Encoding: gzip" -o /dev/null -w "%{size_download}\n" https://sklein.xyz/fr/
5566
$ curl -s -H "Accept-Encoding: br" -o /dev/null -w "%{size_download}\n" https://sklein.xyz/fr/
4846