Drupal et l'éco-conception
L'éco-conception une histoire de technique ?
À la lecture des 115 bonnes pratiques de l’éco-conception digitale et de nombreux autres articles sur le sujet que l’on voit fleurir un peu partout, il apparaît assez clairement qu’aborder ces concepts au moment de la phase de développement se révèle une mauvaise pratique en soi. Cette affirmation vaut quels que soient le langage et le CMS utilisés. En effet, vous aurez beau compresser vos médias, optimiser votre architecture et votre code, vous ne pourrez pallier une conception défaillante qui n’aurait pas, dès le début, intégré ces pratiques et n'en aurait pas fait sa ligne directrice qui pourrait se résumer ainsi :
“Délivrer une information pertinente et de qualité en réduisant au maximum son impact environnemental”.
Cette maxime pourrait être perçue comme trop contraignante, à peine soutenable, si on devait l’appliquer à un site existant qui n’aurait pas été conçu avec ces objectifs en tête, mais on peut aussi la voir comme un changement de paradigme salutaire qui fera la part belle au mot juste, à une navigation claire et intuitive, à une présentation simple et efficace, à une accessibilité à toute épreuve, quitte à ne pas tout dire et à ne pas tout montrer. Avec comme seul objectif de délivrer, en quelques clics, l’information que vos utilisateurs sont venus chercher, sans les polluer avec d’autres contenus non désirés.
Cette dernière phrase soulève bien entendu de nombreuses questions qui ne pourront être tranchées qu’au cas par cas comme par exemple celles-ci : J’ai un site d’e-commerce, dois-je abandonner la vente d’impulsion ? Je suis une association caritative, dois-je restreindre la sollicitation de mes donateurs ? Je veux augmenter le référencement naturel de mon site, dois-je abandonner les sujets périphériques à mon activité ?
Autant de questions qui doivent être débattues et tranchées lors des phases de conception à travers des ateliers qui rassemblent les différents acteurs du projet et leurs utilisateurs finaux.
Cela étant dit, il reste tout de même de nombreux points à mettre en œuvre lors du développement de votre site sous Drupal afin de minimiser son impact environnemental.
En premier lieu de déterminer si la fréquence de rafraîchissement de l’information proposée et la personnification de celle-ci impose un site entièrement dynamique ou pas. Il peut s’avérer pertinent d’utiliser des modules comme Tome afin de générer un site statique à partir de Drupal et de faire appel à des outils tiers pour la gestion de formulaires comme l’inscription à une newsletter par exemple. Drupal sera alors utilisé comme un générateur de contenus qui seront délivrés de manière statique à vos utilisateurs, minimisant ainsi la consommation de ressources de votre site.
Si votre site ne se prête pas à ce type d'architecture, vous pouvez aussi opter pour une architecture découplée avec un front-end JS (React, Flutter, Vue…) et un back-end Drupal. L’avantage de cette architecture est de permettre le chargement sur le navigateur client de l’ensemble de l’interface graphique et de réduire ensuite les échanges avec le serveur aux données brutes par l’intermédiaire d’API (JSONAPI) native dans Drupal.
La dernière possibilité, la plus courante, est de laisser à Drupal, le soit de gérer le front-end et le back-end mais de travailler à l’optimisation de l’ensemble en : Utilisant un thème minimaliste comme Stable9 (issue du Core) afin de créer votre propre thème en prenant soin de le débarrasser de tous les css et js non nécessaires. En effet, des thèmes comme Bootstrap apportent de nombreux avantages, mais par leur potentiel, ils ne sont pas focalisés sur vos besoins et vous obligent souvent à surcharger des fonctionnalités pour les adapter et consommer ainsi plus de ressources que nécessaire.
- En utilisant des images responsives avec assez de breakpoint pour limiter le redimensionnement par css.
- En utilisant les formats webP et svg pour les images
- En hébergeant les vidéos sur des plateformes tierces qui utilisent le format HLS
- En compressant et minifiant tous les scripts CSS et JS avec des modules tels que advanced CSS/JS Aggregation
- En limitant le recours à des polices non système
- En optimisant l’utilisation du cache à tous les niveaux.
Des outils comme l'extension GreenIT - Analysis pour Chrome et Firefox vous permettrons d'analyser chaque page de votre site et de vérifier la bonne mise en œuvre de ces mesures.