Christophe Lance marketing internet et web designChristophe Lance marketing internet et web design (Mobile version)Logo Christophe Lance (Mobile)

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".

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 production et par conséquent toutes les pistes peuvent être explorées sans risque de faire une fausse manoeuvre.

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. Nous avons aussi profité de l'occasion pour contrôler l'application du cache dans chaque module,  et revoir les réglages des en-têtes HTTP pour améliorer les performances et la sécurité du site. De plus, nous avons réglé la mise en cache des fichiers externes par le navigateur qui peut faire une grande différence sur le long terme.

Mode débogage du CMS
Réglage simplifié des en-têtes de sécurité http

Obtenir du feedback

C'était le moment de créer un mécanisme de feedback en paramétrant un rapport Google Looker 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 liens cassés à la fois sur le site et depuis des sites externes. 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 du code CSS, car de nombreuses règles présentes dans les templates modernes ne sont pas utilisées dans la mise en page finale et encombrent les fichiers compilés. De plus au fil de mises à jour, la hiérarchie complexe des règles peut être modifiée et il faut corriger les problèmes de mise en page. Un code d'oeil au code source montra que le site chargeait pas moins de 6 bibliothèques d'icônes inutilisées. Le tout désactivé d'un seul clic; miracle et misère des templates modernes.

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 la balise <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é.

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, recréées en SVG ou ont été intégrées en mode "lazy", certains codes Javascript ont été modernisés et optimisés.

La vérification complète du site avec l'outil d'aide au webmaster Google search console a permis de valider les corrections: couverture du site par le robot d'indexation, adaptation des pages aux mobiles ou problèmes de chargement de certains fichiers externes.

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 Looker Studio. La page de destination a été améliorée avec un menu intra-page reportant le nombre de clics et l'ajout des notes de Google reviews.

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.

Devis et renseignement gratuits