arthur.bebou

Le site arthur.bebou.netlib.re - retour accueil

git clone git://bebou.netlib.re/arthur.bebou
Log | Files | Refs |

index.sh (7576B)


      1 #! page
      2 
      3 title: Performances du site Katzele
      4 author: Arthur Pons
      5 publication: 2023-04-10
      6 description: Quelques statistiques au sujet de katzele.netlib.re
      7 sectionmd: main
      8 
      9 # Performances du site Katzele
     10 
     11 ## Pourquoi s'y intéresser
     12 
     13 Google nous apprend par exemple en mars 2017[^1] que
     14 
     15 > Le temps de chargement d’une landing page mobile est de 22 secondes en moyenne.
     16 > Or, 1 visite sur 2 est abandonnée au-delà de 3 secondes de chargement sur un
     17 > site mobile en 3G
     18 
     19 Pour les sites commerciaux dont la réussite dépend du temps de rétention des
     20 utilisateurices un temps de chargement faible est essentiel. On apprend alors
     21 qu'un site de e-commerce d'un chiffre d'affaire de 100k€ accusant une seconde
     22 de chargement supplémentaire accusera 2,5M€ de manque à gagner en un an[^2].
     23 
     24 Puisque par ailleurs les sites ayant le plus à perdre sont souvent parmi les
     25 plus compliqués, il n'est pas étonnant que nombres d'acteurs de l'industrie
     26 aient développé des outils d'audit de performance. L'un d'eux, gratuit,
     27 est [PageSpeed](https://pagespeed.web.deb) de Google (anciennement Lighthouse
     28 je crois).
     29 
     30 Cet outil est fréquemment utilisé pour améliorer les performances d'un site
     31 existant. Dans le milieu du web un peu écolo il est parfois utilisé pour faire
     32 état de bonnes performances environnementales, du moins à certains égards. Un
     33 bon score voulant souvent, mais pas toujours, dire que le site est léger et/ou
     34 fonctionne correctement sur du matériel peu puissant. Par exemple Timothée
     35 Goguely affiche sur sa page un score PageSpeed de 100[^4] en plus des scores
     36 d'accessibilité et EcoIndex. Pour un public averti il indique également le poid
     37 de la page, le nombre de requêtes et la taille du
     38 [DOM](https://en.wikipedia.org/wiki/Document_Object_Model). C'est probablement
     39 l'outil utilisé par Gauthier Roussilhe pour obtenir les données citées dans
     40 [son article au sujet de
     41 l'ecoconception](https://gauthierroussilhe.com/articles/eco-conception-le-brouillard-a-venir).
     42 
     43 Même si ce serait une erreur critique de résumer l'écoconception d'un service
     44 numérique à l'obtention d'un bon score sur ces outils pour de très nombreuses
     45 raisons mentionnées dans l'article de Gauthier et [cette conférence sur le
     46 sujet](https://podv2.unistra.fr/video/45478-techdays-11-ecoconception-1-quest-ce-que-lecoconception-numerique-etude-de-cas-du-site-web-des-cinemas-star-arthur-pons/) on peut tout de même en apprendre des choses.
     47 
     48 ## Les résultats
     49 
     50 Au 10 avril 2023
     51 
     52 ### PageSpeed
     53 
     54 Voir [le
     55 résultat](https://pagespeed.web.dev/analysis/http-katzele-netlib-re/dombxbomwf)
     56 pour la page d'accueil du site. Il n'y a pas vraiment de raisons de penser que
     57 le résultat serait différent pour les autres pages du site à moins d'y afficher
     58 de grosses images. Si vous ne voulez pas consulter le site :
     59 
     60 |catégorie | score /100 |
     61 |:--|--:|
     62 |Performance | 100 |
     63 | Accessibilité | 95 |
     64 | Bonnes pratiques | 92 |
     65 | SEO[^3] | 100 |
     66 
     67 Le site serait donc parfait sur la performance avec un temps de chargement de
     68 0,8s. La seule opportunité d'amélioration rapportée est le chargement bloquant
     69 de la feuille de style qui coûte 0,14s. On pourrait différer le chargement de
     70 cette feuille pour que le contenu apparaisse d'abord mais étant donné les
     71 faibles durées en jeu, peu importe.
     72 
     73 Côté accessibilité il est mentionné[^5] que la structure de la page n'est pas
     74 idéale puisque le titre `H3` "participer" suit un titre de niveau `H1`
     75 pouvant ainsi gêner la lecture sémantique du document, notamment pour les
     76 personnes ayant recours à un lecteur d'écran.
     77 
     78 Pour les bonnes pratiques il est mentionné que le site devrait permettre la
     79 communication avec le protocole HTTPS et ainsi chiffrer ses données.
     80 Aujourd'hui ce n'est pas fait parce que personne du collectif n'y a investi du
     81 temps. Les arguments en faveur sont bien connus de certains membres même s'il
     82 existe des contre arguments valides et très peu audibles. Peut-être devrions
     83 nous en discuter collectivement ?
     84 
     85 Finalement le score SEO à 100 est quelque peu ironique puisque nous ne sommes
     86 littéralement pas référencés par Google.
     87 
     88 Pour coller aux pratiques des personnes citées précédemment regardons d'autres
     89 métriques.
     90 
     91 ### EcoIndex
     92 
     93 [Le
     94 résultat](https://www.ecoindex.fr/resultat/?id=625e0c79-6eac-4c54-9ec9-3a9674f5ca25)
     95 
     96 La page d'accueil de notre site est classé 460 sur 33114. Je cite :
     97 
     98 > Le top. On se rapproche dangereusement de la perfection.
     99 
    100 |catégorie | Appréciation |
    101 |:--|--:|
    102 | Générale | A - 92/100 |
    103 |Poids | Si légère - 0,023 Mo |
    104 | Complexité | Simple - 86 éléments |
    105 | Requêtes | Peu de requêtes - 3 requêtes |
    106 
    107 Il est amusant de noter qu'EcoIndex mesure la taille des pages en Mo. Cela
    108 trahit le fait que les pages webs pèsent presque toujours plus de 100Ko et très
    109 souvent plus d'un Mo. Notre page pèse donc `0,0023 Mo`.
    110 
    111 EcoIndex a la bonne idée d'indiquer sur chacun des scores la médiane et une
    112 "cible" indicative.
    113 
    114 Pour le poids la médiane se trouve à 2,41 Mo, la cible à 1 Mo. La médiane n'est
    115 pas bien surprenante mais la cible est elle assez élevée.  Les pages qui, selon
    116 moi, ont de bonnes raison de peser 1 Mo sont très rares.
    117 
    118 Pour la complexité la médiane du nombre d'éléments est autour de 693 et la
    119 cible 600. Je trouve ces deux chiffres élevés. J'imagine qu'ils sont tous deux
    120 le fruit de l'utilisation massive de CMS générant, même quand cela n'est pas
    121 bien utile, des structures de page complexe. Cela combiné à des présentations
    122 visuelles complexes pousse le nombre d'élements à la hausse.
    123 
    124 Pour les requêtes la médiane est à 78. C'est massif. Il est difficile d'imaginer
    125 78 requêtes sans avoir énormément recours à des librairies js, des feuilles de
    126 style éclatées, plusieurs typos, de nombreuses images par page *et* de la
    127 pub. La cible de 40 paraît plus raisonnable même si elle permet toujours de faire
    128 beaucoup de choses.
    129 
    130 EcoIndex nous informe que pour 1000 visites par mois[^7] l'empreinte de cette
    131 page est de 17,4L d'eau bleue[^8] et 1,16kgCO2e.
    132 
    133 ### Autres statistiques
    134 
    135 Taille moyenne d'une page : ~20Ko
    136 
    137 > Calculée avec :
    138 >
    139 > `dc -e "2k $(find root -name '*.html' | xargs -n1 du -b | cut -f1 | tr \\n '+' | sed 's/+$/\n/' | bc) $(find root -name '*.html' | wc -l) / p"`
    140 
    141 Nombre moyen du DOM : ~153
    142 
    143 > Approximé avec :
    144 >
    145 > `dc -e  "2k $(find root -name '*.html' | xargs -n1 grep -Eo '</[^<>]*>|<[^<>]*/>' | wc -l) $(find root -name '*.html' | wc -l) / p"`
    146 
    147 Nombre moyen de requêtes : 3
    148 
    149 > A priori aucune page n'a aujourd'hui d'image donc on a le css, le favicon, l'html.
    150 
    151 Pourcentage du "contenu" (le texte) sur la quantité totale de données à
    152 télécharger : 82%
    153 
    154 > Calculé avec ce script
    155 
    156 	#!/bin/sh
    157 	
    158 	css=$(du -b rc/style.css | cut -f1)
    159 	favicon=$(du -b rc/katzele.png | cut -f1)
    160 	
    161 	md=$(mktemp)
    162 	
    163 	find root -name '*.html' | xargs -n1 pandoc -t markdown > $md
    164 	content=$(du -b $md | cut -f1)
    165 	
    166 	total=$(find root -name '*.html' | xargs du -cb | tail -n1 | cut -f1)
    167 	
    168 	dc -e "2k $total $css + $favicon + $content r / 100 * p"
    169 
    170 ## Commentaires
    171 
    172 
    173 
    174 [^1]: https://www.thinkwithgoogle.com/intl/fr-fr/strategies-marketing/mobile-et-apps/vitesse-de-chargement-des-pages-mobiles-ou-se-situe-votre-site/
    175 [^2]: https://neilpatel.com/blog/loading-time/
    176 [^3]: https://pagespeed.web.dev
    177 [^4]: https://timothee.goguely.com/
    178 [^3]: Search Engine Optimization. https://fr.wikipedia.org/wiki/Optimisation_pour_les_moteurs_de_recherche
    179 [^5]: au vu de l'état de cette page le 10 avril 2023
    180 [^6]: Merci Derek
    181 [^7]: laissez moi rire
    182 [^8]: https://fr.wikipedia.org/wiki/Empreinte_eau