Un portail bilingue a été réalisé par un créatif talentueux, mais le CMS était devenue une usine à gaz. Le site était lent, mal référencé et peu sécurisé. C'était le moment de faire appel à "SOS CMS" (nom fictif 😊).

On commença par installer une copie du CMS sur un serveur de test (staging server) en local, afin d'activer les rapports d'erreur et les outils de débogage en toute sérénité. C'est un gros avantage des CMS open source comme Joomla par rapport aux services en ligne, vous n'êtes pas obligé de travailler sur la version en ligne et par conséquent toutes les pistes peuvent être explorées sans risque.

L'activation du mode débogage du CMS permet de vérifier ses performances et les requêtes en base de données. Il permet de détecter les extensions qui marchent mal ou qui utilisent inutilement les ressources du serveur.

Mode débogage du CMS
Mode débogage du CMS

Un CMS à la diète

Toute une suite d'extensions payantes en grande majorité inutiles avaient été installées. Il est très "humain" de penser à tort que le plus est le mieux. Seulement, voilà, le profilage du CMS indiquait l'utilisation de requêtes en bases de données superflues, sans compter les modifications de l'interface d'administration qui la rendaient confuse, le nombre de vérifications à faire sur les sites de mises à jour et les problèmes potentiels dus à l'augmentation de la complexité globale du système.

Nous avons donc passé en revue tous les plugins, composants, templates et modules, afin de désactiver ceux qui n'étaient pas utilisés, redondants avec les fonctions natives, obsolètes ou qui ralentissaient le système. Ceux qui ne faisaient pas partie du coeur de Joomla ont été désinstallés complètement. Pour remplacer certaines extensions, nous avons utilisé des substitutions (overrides) du coeur du CMS, qui suffisent souvent à la tâche et dont l'utilisation est plus sûre qu'une extension obsolète. Dans d'autres cas, il est préférable d'utiliser un service externe plutôt que d'installer une extension supplémentaire. Il existe un plugin pour aider dans cette tâche de simplification du CMS.

Il a aussi été nécessaire de vérifier que tous les réglages du CMS et de son hébergement étaient corrects notamment après les différentes mises à jour dont certaines nécessitent des réglages manuels comme la modification du fichier htaccess ou la prise en compte du routage moderne des URLs. Avez-vous réellement besoin du comptage des vues dans le CMS ? La dernière version de PHP est-elle utilisée ? L'output buffering est-il désactivé comme le préconise la documentation ? Les mots de passe utilisateur forts sont-ils activés ? Le formulaire de connexion à l'administration est-il sécurisé ? Comme pour tous les systèmes complexes, il est nécessaire d'établir une checkliste pour tout vérifier. Enfin, les sauvegardes réalisées par Akeeba Backup ont été paramétrées pour être envoyées par sécurité sur un service Cloud distant et ce qui évite d'encombrer le serveur du CMS.

Un point important est le cache du CMS qui permet d'augmenter les performances du site. Il n'avait pas été activé, car sinon le formulaire intégré par l'intermédiaire d'un module dans la page Contact ne fonctionnait plus. La solution était d'appeler le formulaire correctement depuis un menu ou de sortir le module de l'article. Le formulaire était d'ailleurs abusé par les spammeurs et il a été nécessaire de rajouter un captcha invisible pour régler le problème.

Un point essentiel: le feedback

C'était le moment de créer un mécanisme de feedback en paramétrant un rapport Google Data Studio envoyant régulièrement par email des données sur les principales performances du site, les conversions du formulaire, les mots clés utilisés par les prospects de la campagne Google Ads ou les erreurs 404. Le code de tracking Google Analytics ayant été ajouté deux fois par deux extensions SEO différentes, il a bien entendu fallu débusquer le code surnuméraire pour être certain d'obtenir des données exactes (ne pas abuser des extensions SEO 🙄).

Un coup d'oeil sur l'index de Google montrait un problème de taille: une des extensions utilisées pour faciliter la mise en page assez complexe du site avait la fâcheuse habitude de dupliquer le contenu en de multiples pages partielles indépendantes de l'URL canonique (ou réelle) de la page. Il a été nécessaire de les répertorier et de créer les redirections dans un fichier htaccess, afin de supprimer les pages indésirables de l'index de Google.

Nous nous sommes alors intéressés au frontend et à l'aspect visuel. Correction et optimisation des CSS, car de nombreuses règles SASS présentes dans les templates modernes ne sont pas utilisées dans la mise en page finale et encombrent les fichiers compilés. Le code HTML a été vérifié avec les outils du W3C et des parties de mise en page ont été réécrites avec du code modernisé (écrivez 10 fois <table>, c'est pour les tableaux!). Nous avons aussi ajouté des microdonnées et corrigé des images manquantes qui provoquaient des erreurs 404, difficiles à voir à l'oeil nu sans consulter l'outil développeur de son navigateur préféré. Les données envoyées par Google Data Studio ont permis de corriger les liens cassés à la fois sur le site et depuis des sites externes.

Plat de résistance

Nous arrivons enfin au plat de résistance qui consiste à optimiser le contenu du site et les conversions. Les textes et leurs traductions ont été relus et les fautes d'orthographe corrigées, des informations obsolètes supprimées, des short codes qui ne fonctionnaient plus ont été retirés, les titres SEO, les slugs et les meta description ont été contrôlés et améliorés, un nouveau lien vers les commentaires Google a été rajouté pour favoriser le feedback des utilisateurs, des réseaux sociaux inutilisés ont été abandonnés, certaines images ont été compressées pour être plus rapides à télécharger ou recréées en SVG.

La campagne Google Ads a été optimisée en vérifiant notamment les termes de recherche utilisés réellement par les visiteurs qui étaient rapportés régulièrement par Google Data studio. Plutôt que s'en tenir à notre intuition, nous avons testé les pages de destination avec Google Optimize pour déterminer la mise en page la plus favorable.

Les CMS grands publics comme Joomla ou Wordpress permettent de créer facilement des sites web, mais un travail d'optimisation est souvent nécessaire comme cet exemple le montre. Après ce travail en profondeur, il est devenu enfin possible de parler sérieusement affaires.