Sélectionnez votre langue

Joomla 4 est une amélioration majeure par rapport à Joomla 3. Dès la sortie de la boîte, vous obtenez un CMS très rapide avec une prise en charge intégrée des données structurées (anciennement appelées « microdonnées »), même plusieurs options de mise en cache pour répondre à toute utilisation, de des sites de persona légers aux portails massifs et occupés.

Pour des raisons qui ont à voir avec ses très anciennes itérations passées, il a toujours la mauvaise réputation injustifiée d'un CMS lent et mauvais pour le référencement. Cela ne pouvait pas être plus loin que la vérité. En fait, Joomla 4 sans aucun logiciel tiers surpasse ses concurrents même lorsqu'il est aidé par un logiciel tiers spécialement conçu.

Dans cette série d'articles, nous discuterons de la façon dont vous pouvez régler un Joomla 4 pour améliorer encore plus ses performances et comment éviter tous les pièges lors de la création de votre site ou de celui de votre client. Le résultat final est un site qui attire à la fois les moteurs de recherche et les visiteurs du site vivants.

Cette série en cinq parties est une mise à jour de ma série de réglages de performances Joomla 3 de l'année dernière. Je suis heureux de pouvoir partager cette série avec la communauté Joomla via le Joomla Community Magazine. Un grand merci aux merveilleux bénévoles qui ont rendu cela possible!

Dans cette première partie de la série, nous expliquerons pourquoi cela est important, en général, et quelles sont les premières étapes évidentes que vous pouvez prendre pour atteindre cet objectif.

Pourquoi avez-vous même besoin d'un site rapide ?

Avant de nous lancer dans notre aventure dans l'optimisation des performances de votre site Joomla, nous devons répondre à la question la plus fondamentale : pourquoi est-ce même important ? Après tout, nous parlons du fait que vous devez faire plus de travail avant de proclamer votre site prêt à être publié. Cela vaut-il vraiment la peine même si cela attire déjà une quantité décente de trafic organique et vous semble rapide ?

Je crois fermement que cela en vaut absolument la peine, à la fois pour des raisons philosophiques et pratiques.

La première raison philosophique est qu'un site lent est un site inutile à plusieurs niveaux. Cela fait perdre du temps à tout le monde. Attendre 4 à 5 secondes pour qu'une page se charge peut ne pas sembler un gros gaspillage, mais au cours d'une année et des centaines de milliers de pages que chacun de nous attend de charger, nous perdons collectivement des années-personnes entières de notre temps . Pendant tout ce temps, nous gaspillons de l'électricité pour générer le contenu plus lentement qu'il n'en a besoin, fournir plus de données que nous ne le devrions et les traiter plus lentement que nécessaire pour l'affichage avec tout ce que implique l'empreinte environnementale de votre site .

La deuxième raison philosophique est que les sites lents sont exclusifs. Ils sont plus difficiles à atteindre par les communautés mal desservies qui dépendent de connexions Internet à latence élevée ou lente. Qu'il s'agisse de l'Internet par satellite qui est le seul lien possible avec le monde extérieur dans un village africain ou du faible WiFi d'un parking McDonald's d'un district scolaire pauvre des États-Unis , le site lent peut créer une barrière intangible mais bien réelle entre ses contenu et les personnes qui pourraient le consommer et en bénéficier. Ce n'est pas parce que la plupart d'entre nous ont le privilège de vivre dans des centres urbains de pays développés avec des connexions Internet rapides et à faible latence que nous devons agir en tant que gardiens de l'information en omettant de faire quelque chose de relativement facile pour augmenter la portée de cette information . Ceci est particulièrement important si vous développez des sites Web à but non lucratif, éducatifs, gouvernementaux ou autres.

Pour des raisons pratiques, commençons par le problème évident qu'un site lent crée une expérience frustrante pour le visiteur . Ils sont susceptibles d'abandonner votre site et de visiter celui de quelqu'un d'autre. S'ils restent, ils sont susceptibles d'être dans un état d'esprit négatif après avoir été soumis à une série de retards longs et inutiles. Cela affaiblit et nuit au contenu de votre site, décourage les visites répétées et réduit votre taux de conversion.

La deuxième et la plus importante raison pratique est que les moteurs de recherche ne classent plus votre site uniquement en fonction du contenu et de la connexion à d'autres sites. Ils prennent en compte les Core Web Vitals . Essentiellement, un site pléthorique ou lent à charger sera pénalisé dans les classements des moteurs de recherche. Il est dans votre intérêt d'avoir un site rapide même si vous ne vous souciez pas de l'impact social et environnemental de votre site.

Hypothèses d'exploitation

La plupart des articles que vous avez peut-être lus sur le sujet de l'optimisation de site ont tendance à être axiomatiques. Ils prétendent qu'il existe une chose telle que la Voie Unique et que vous serez jeté à la damnation éternelle si vous ne la suivez pas. L'ironie du fait qu'il existe autant de points de vue axiomatiques mutuellement exclusifs que de personnes écrivant des articles a apparemment échappé à ces auteurs.

Le Seul Vrai Chemin n'existe pas. Même sous-entendre qu'un petit site construit par une seule personne pendant son temps libre peut ou, pire, devrait suivre la même méthodologie qu'un site moyen à grand construit et entretenu par une équipe dédiée d'au moins quelques dizaines de personnes est exclu. de contact avec la réalité.

J'écris cette série d'articles avec la majorité des intégrateurs de sites utilisant Joomla, construisant des sites seuls ou au sein d'une petite équipe, dans le respect des contraintes de temps et de budget imposées par leurs clients. La plupart d'entre vous construisez des sites de très petite à moyenne taille pour les petites et moyennes entreprises ou même de petits magasins « maman et pop ». Vous ne pouvez pas vous permettre d'être obsédé par l'obtention d'un « score parfait ». C'est la presque cible inaccessible, pas l'attente pragmatique pour chaque site. Oui, vous pouvez obtenir un score parfait, mais si cela signifie que vous avez un site difficile à construire et à entretenir, est-ce vraiment quelque chose de positif ou avez-vous involontairement inscrit votre nom pour un prix Darwin ?

Vous ne devez optimiser que dans la mesure de vos moyens. Vous avez des délais à respecter et, franchement, certaines des optimisations peuvent simplement prendre une quantité disproportionnée de votre temps pour des gains marginaux. Commencez simplement et allez plus loin en fonction du délai et du budget de votre client.

C'est le contexte de cette série d'articles. Ce n'est pas axiomatique, c'est pratique. Je présente différentes manières d'optimiser les sites du monde réel avec un compromis raisonnable entre les gains de performances complets et la maintenabilité. Ce ne sont pas des approches de salle blanche qui fonctionnent très bien en théorie, mais qui nécessitent en pratique beaucoup plus de ressources que ce qui est réellement disponible pour la plupart de nos lecteurs.

Mettons cela d'une autre manière. Oui, vous pouvez toujours créer une application basée sur des microservices et un CDN si vous le souhaitez. Ou utilisez des techniques vraiment avancées qui contournent une pléthore de limitations imposées par l'approche unique consistant à utiliser un CMS comme Joomla (ou WordPress, ou Drupal, ou...) au lieu de créer votre propre application personnalisée. Mais je ne suis pas là pour vous dire pourquoi ou comment ne pas utiliser un CMS. Je suis ici pour vous dire comment vous pouvez mieux utiliser au le CMS dont vous disposez pour obtenir de meilleurs résultats dont vous ne saviez pas comment vous approcher auparavant. Ce sont toutes des techniques que j'ai pratiquées sur mes sites et elles ont fonctionné comme des gangbusters !

L'absolument "évident"

Lorsque vous utilisez Joomla depuis qu'il s'appelait Mambo en 2004, comme le vôtre, certaines vérités fondamentales sur la façon dont vous abordez la création de sites semblent assez évidentes. Voici la chose. Rien n'est vraiment « évident » ; tout est question d'expérience.

Dans le passé, je pensais que les gens devaient être fous pour ne pas voir un certain nombre de points qui me paraissaient douloureusement évidents. Finalement, j'ai réalisé que j'avais une expérience unique d'avoir été dans les backends d'innombrables sites et j'ai accumulé un ensemble unique de compétences au cours d'une longue carrière... Désolé, mauvais film. Ce que je veux dire, c'est que j'ai réalisé que ce qui est évident pour moi peut être assez obscur pour quelqu'un qui commence maintenant ou qui a l'habitude de faire les choses d'une manière différente de la mienne. À vrai dire, si je pouvais me tendre la main il y a 16 ans, je me giflerais probablement pour faire des choses que j'ai apprises à la dure à un moment donné plus tard, sont soit absurdes, soit me sapent à long terme.

Je vais discuter des trois erreurs les plus courantes que j'ai vues sur les sites et comment les corriger facilement. Hé, certains d'entre eux n'ont même pas à voir avec Joomla lui-même !

Hébergement

L'erreur la plus courante que je vois est que les gens choisissent un hébergement partagé bon marché, puis se plaignent de la lenteur de leur site Joomla. Oui, leur site est lent mais Joomla n'en est pas la raison. L'hébergement que vous choisissez pour votre site est crucial. N'essayez pas de raser des centimes ici !

Vous êtes-vous déjà demandé pourquoi un hébergeur bon marché propose un prix de moins de 3 $ par mois alors qu'un hébergeur de bonne qualité facture cinq à dix fois plus pour un hébergement partagé de spécifications identiques ou nominalement inférieures ? La différence est que l'hôte le moins cher essaie de regrouper plus de sites sur un seul serveur physique et réduit les coûts en utilisant des processeurs et une mémoire plus lents, des lecteurs de disque mécaniques plus lents et une connectivité Internet plus limitée. Tous ces éléments concourent à rendre votre site sensiblement plus lent au départ. Aucun réglage ne peut vous sauver lorsque vous commencez avec un mauvais hébergement.

Pensez-y comme ça. Vous pouvez rendre une voiture aussi aérodynamique qu'un avion de chasse. Si le moteur sur lequel il tourne est un moteur monocylindre à deux temps d'un cyclomoteur, il ne gagnera pas et ne décrochera pas de records de vitesse. Il sera probablement dépassé par quelqu'un qui marche à vive allure. Le moteur de votre site est votre environnement d'hébergement. Il dicte les performances maximales que vous pouvez en tirer.

Essayez de trouver un équilibre entre les performances idéales et votre budget réaliste. En cas de doute, choisissez un fournisseur d'hébergement partagé de milieu de gamme avec une bonne réputation de bouche à oreille et réévaluez éventuellement après quelques mois avec un trafic réel. Si votre client dicte l'hébergement, assurez-vous d'avoir The Talk avec lui : expliquez-lui que quoi que vous fassiez, son choix d'hébergement limitera les performances du site que vous construisez.

Modèles prédéfinis

De nombreux sites de construction de personnes utilisent un modèle pré-construit avec une myriade d'options, un cadre générique qui essaie d'être tout pour tout le monde, généralement combiné avec des dizaines de composants, plugins et modules pour créer un site qui n'est vraiment pas si complexe si vous y pensez.

Je comprends l'appel, l'ayant fait moi-même dans le passé. Vous vous sentez autorisé à modifier la mise en page de votre site et à essayer différentes options jusqu'à ce que vous trouviez ce qui vous convient. Je dirais que vous devriez le faire si vous pensez que c'est votre processus créatif, mais que vous ne vous en tenez pas nécessairement au modèle générique prédéfini une fois que vous avez déterminé à quoi vous voulez que votre site ressemble. Si vous vous sentez mal à l'aise de créer votre propre modèle, bien sûr, un pré-construit est le seul moyen pour vous, mais gardez à l'esprit que cela vous limitera sur les mesures de performance.

Le problème objectif est qu'un modèle générique est conçu pour la flexibilité, pas pour la vitesse. D'après mon expérience, la charge de votre page (Time to First Byte - TTFB) peut augmenter de 1 à 3 secondes juste à cause de tous les bagages inutiles que vous emportez avec vous en utilisant ce type de modèle. Un modèle personnalisé basé sur Cassiopeia de Joomla 4 a un impact négligeable, de l'ordre d'une fraction de milliseconde.

Même si vous allez à mi-chemin et n'utilisez qu'un framework de modèle générique, vous traînez toujours beaucoup de code inutile à moins que vous ne sachiez vraiment ce que vous faites. Sans oublier que vous avez installé une quantité substantielle de code PHP et JavaScript qui doit être régulièrement entretenu pour des raisons de sécurité.

Un autre problème avec les modèles pré-construits et les frameworks de modèles est qu'ils ont tendance à charger tous leurs CSS et JavaScript dans la tête de la sortie HTML, ce qui a un impact négatif sur vos Core Web Vitals, en particulier le First Contentful Paint. Un modèle personnalisé basé sur Cassiopeia chargera ces fichiers statiques en différé, ce qui rendra votre site beaucoup plus rapide à afficher.

Si vous avez les compétences et le temps, vous feriez mieux de créer votre propre modèle. Cela semble effrayant, mais ce n'est pas le cas si vous êtes déjà un créateur de site Joomla expérimenté et que vous comprenez les outils basiques mais puissants de Joomla, comme les remplacements de modèles. Vous pouvez utiliser n'importe quel framework CSS et vous pouvez commencer par créer le modèle par défaut de Joomla 4, Cassiopeia.

Je ne suis en aucun cas un développeur front-end. J'ai réussi à prendre très facilement le design créé pour mon site et à le "traduire" en un modèle Joomla 4 basé sur Cassiopeia sans trop de problèmes. Bootstrap 5, intégré à Joomla et utilisé par Cassiopeia, est extrêmement polyvalent. La seule chose que vous devez comprendre pour rendre tout type de présentation visuelle possible - et réactif ! — est CSS Flexbox .

N'en fais pas trop

Il y a le vieil adage du « juste parce que vous pouvez ne veut pas dire que vous devriez ». Dans le contexte de Joomla, ce n'est pas parce que vous pouvez installer des centaines d'extensions que vous devriez le faire !

Avec plus de 7000 extensions dans le répertoire des extensions Joomla, il est assez facile d'aller trop loin et d'installer tout sous le soleil. Un plugin pour ceci, un module pour cela, un constructeur de page au lieu d'un simple remplacement de modèle et avant de vous en rendre compte, vous avez plus de 300 extensions tierces chargées sur chaque page de votre site. Comme vous pouvez l'imaginer, cela ralentirait n'importe quel site.

Parlons modules. Mon observation fortuite est que 90% des modules affichés sur 90% des sites que j'ai visités ou sur lesquels j'ai travaillé n'ont aucune raison d'être. Personne ne se soucie de la météo dans votre ville ; s'ils le faisaient, ils demanderaient à Google, Alexa ou Siri au lieu de visiter votre site. Personne ne se soucie des trois douzaines de boutons, liens et bannières vers le contenu que vous avez dans la barre latérale. Les gens veulent une navigation intuitive, pas un répertoire téléphonique. Pire encore, les sites de médias sociaux ont conditionné les visiteurs de votre site à passer en mode « aveuglement de la barre latérale et de la bannière », c'est-à-dire qu'ils supposent que ce contenu est indésirable dont ils n'ont pas besoin de se soucier. Les modules peuvent servir un véritable objectif, mais utilisez-les avec parcimonie. N'essayez pas de « remplir l'espace vide » avec des modules inutiles.

Ce qui nous amène aux plugins, en particulier les plugins de contenu et les plugins système qui recherchent et remplacent du texte en pleine page. Les plugins de contenu s'exécutent à chaque fois que du contenu est affiché sur votre site. Ils doivent faire une sorte d'initialisation et une sorte de remplacement de texte. Ces opérations prennent du temps. La recherche et le remplacement de pleine page par des plugins système, surtout s'ils utilisent des expressions régulières, prennent encore plus de temps. Une recherche et un remplacement sur chaque page produite par votre site sont-ils vraiment une meilleure solution pour les remplacements de modèles, les remplacements de langue ou le fait de passer du temps à modifier le contenu directement dans le backend ou dans la base de données ?

Lorsque vous combinez un abus excessif de modules et de plugins, vous pouvez vous retrouver avec un site qui doit effectuer des centaines de requêtes de base de données et passer quelques précieuses secondes à remplacer des éléments du contenu qu'il a fallu une éternité à générer. Ouais, ce site sera terriblement lent. Ce n'est vraiment pas la faute de Joomla, c'est juste le résultat direct de l'approche de mise en œuvre que vous avez adoptée. Je ne dirai pas que c'est nécessairement mauvais mais je ne dirai pas non plus que c'est la meilleure voie à suivre.

Si vous avez un problème à résoudre, l'utilisation d'une extension devrait être votre dernier recours. Commencez par les champs personnalisés, les remplacements de modèle et les remplacements de langue en premier. Si vous pensez que le site a l'air "vide", créez un contenu de qualité, ne le bourrez pas de modules inutiles dont personne ne se soucie, mais ralentissez quand même votre site. La directive principale est KISS: Keep It Stupidly Simple. C'est plus facile à dire qu'à faire et il faut généralement quelques itérations pour y arriver. N'oubliez pas de toujours réévaluer si vous avez besoin d'une extension et de la désactiver ou de la désinstaller lorsque vous ne l'utilisez plus.

Remplacer au lieu d'ajouter du cruft

La plupart des gens abordent le développement de leurs sites ou de ceux de leurs clients de la même manière qu'un utilisateur d'Android ou d'iPhone utilise son appareil : si je dois faire quelque chose, je dois installer quelque chose. J'appelle cela le There's An App For That Syndrome ou « TAFTS » en abrégé. Cela ressemble à une condition terminale, n'est-ce pas?

Les personnes souffrant de ce syndrome finissent par utiliser un milliard d'extensions qui ralentissent le site et deviennent un obstacle majeur à la mise à jour de Joomla ou de PHP quelques mois plus tard.

Le fait est que vous n'avez pas besoin d'ajouter du cruft sur votre site. Joomla est extrêmement flexible dès la sortie de la boîte. Lorsque vous voulez faire quelque chose, arrêtez-vous et demandez-vous : est-ce que cela peut être fait avec les fonctionnalités de base de Joomla ?

Contrairement plupart CMS, Joomla vous permet de passer outre façon dont il affiche tout ce utilisant substitutions de langue , modèle / mise page overrides et champs personnalisés . En utilisant ces outils simples, vous pouvez créer un contenu incroyablement complexe qui est extrêmement facile à gérer. Après tout, Joomla descend d'un CMS appelé Mambo dont la devise était « le pouvoir dans la simplicité ».

En n'utilisant rien d'autre que des remplacements de mise en page et des champs personnalisés, j'ai créé une page de didacticiels vidéo pour mon site d'entreprise, en auto-hébergeant les vidéos (pas d'intégration YouTube / Vimeo). La page des catégories de vidéos sur laquelle vous arrivez est une vue de blog de catégorie Joomla avec un simple remplacement de modèle et une pincée de CSS personnalisé. Lorsque vous cliquez sur une catégorie, vous voyez une liste de vidéos. Il s'agit simplement d'une vue de liste de catégories avec un remplacement de modèle. La longueur de la vidéo est un champ de texte personnalisé. Il existe deux autres champs d'URL personnalisés pointant vers le fichier vidéo et l'image du cadre de l'affiche. Ceux-ci sont utilisés pour afficher la partie supérieure de la page vidéo individuelle (lecteur vidéo). Cette page n'est qu'un article. Le contenu de l'article est la transcription que vous voyez plus bas sur la page. La transcription a des attributs de code temporel de données qui sont analysés par le JavaScript de la page, lui-même chargé dans le remplacement du modèle, ce qui en fait des liens cliquables pour pointer vers des points spécifiques dans le temps dans le lecteur vidéo. C'est bien et c'est tout le cœur de Joomla. Pas besoin d'une galerie tierce ou d'un composant de didacticiels vidéo dédié.

J'ai vu l'humble page de la liste des balises devenir un magnifique panneau de sélection de zone de contenu pour un organisme à but non lucratif. J'ai vu des articles de base avec des champs personnalisés définir le contenu de manière conviviale pour une application Web tactile, sans code tiers, à l'exception du gestionnaire d'événements tactile JavaScript. J'ai même vu des remplacements de modèles très simples qui font que la page de profil utilisateur Joomla ressemble à un service professionnel haut de gamme au lieu d'un tas de champs réunis.

Certes, tout n'est pas possible avec juste le noyau - vous ne pouvez pas raisonnablement faire du commerce électronique ou prendre des rendez-vous avec le noyau Joomla, vous avez besoin d'une extension ou d'un service tiers - mais les extensions ne sont certainement pas le premier ou le seul choix que vous avez en tant que intégrateur de sites.

En vous en tenant à une utilisation bien planifiée et minimale des extensions tierces, vous évitez de ralentir le site et assurez-vous qu'il est maintenable à long terme. Ceci est particulièrement important lorsque des extensions moins utilisées disparaissent de la surface de la Terre et que vous vous retrouvez avec le choix difficile de réimplémenter partiellement un site ou de le conserver avec une version obsolète de Joomla. Rappelez-vous, messieurs, une once de prévoyance vaut une livre d'essayer frénétiquement de corriger une mauvaise décision alors qu'il est déjà trop tard.

Aucun commentaire