Sélectionnez votre langue

Avec le changement des critères d'évaluation et de classement des sites de Google, les mesures raisonnablement nouvelles des « Vitals Web » ont suscité un nouvel intérêt pour une variété de technologies de mise en cache afin d'améliorer les délais de livraison de contenu dans la course sans fin vers l'insaisissable « 100 % à tous les niveaux » et résultats d'indexation des moteurs de recherche satisfaisants.

Bien que cela soit admirable, cela a également généré une certaine confusion, des erreurs de configuration, des performances médiocres et de la frustration pour beaucoup. Si vous envisagez d'utiliser la minification ou la mise en cache sur votre site, assurez-vous d'abord d'avoir suivi les meilleures méthodes d'optimisation pour la mise en page, les images et l'utilisation des extensions, sinon vous risquez de ne pas voir les résultats que vous attendiez.

Qu'est-ce que la mise en cache ?

La mise en cache, c'est lorsqu'une version statique des données, ou dans ce cas votre site Web ou page Joomla, est générée contenant le contenu à ce moment-là. Cela empêche le serveur d'interroger la base de données, de traiter les données ou de formater la page à chaque visite sur cette page ; à la place, il charge la version pré-formatée " en cache ". L'idée est que si la base de données et d'autres requêtes de ressources sont supprimées, le temps de chargement et de formatage de la page est considérablement réduit, ce qui permet de diffuser le contenu de votre site plus rapidement au visiteur et d'offrir une meilleure expérience utilisateur. Cela ressemble à l'utopie de la livraison de sites Web, n'est-ce pas ?

Inconvénients potentiels de la mise en cache

Attention, la minification et la mise en cache présentent des inconvénients potentiels, certains contenus peuvent devenir « obsolètes » ou « périmés » pendant un certain temps. C'est tout à fait correct si votre contenu est assez statique et ne change pas très souvent, ou n'est pas sensible au temps. Cependant, si vous produisez des pages avec des données urgentes ou des éléments de contenu connexes tels que des sites de taux de change, de trading, de données statistiques ou même des sites de commerce électronique où des prix compétitifs et à jour sont importants, alors le choix de mettre en cache ou comment à mettre en cache doit être considéré très attentivement pour éviter les incohérences ou les sorties confuses.

Selon le niveau de mise en cache que vous choisissez d'utiliser, cela déterminera si les grands ensembles de données ou le contenu hautement lié sont synchronisés et ont du sens pour votre visiteur. Avec des ensembles de données ou du contenu plus volumineux, il peut également y avoir une perte de performances si votre serveur ou votre compte d'hébergement ne dispose pas de suffisamment de ressources ou de puissance de traitement pour effectuer l'activité de mise en cache des données en arrière-plan. Par la suite, lorsque les visiteurs parcourent votre site, les temps de chargement de votre page peuvent en fait augmenter, car les visiteurs attendent toujours que l'application de cache crée la page mise en cache avant de l'afficher. Cela dit, si l'architecture de votre site signifie que vos visiteurs ont tendance à revisiter la même page plusieurs fois au cours de la même session, comme des hubs centraux ou des sites de type portail, alors la mise en cache peut produire des résultats idéaux et améliorer les temps de chargement.

Quand devriez-vous envisager la mise en cache ?

Bon, commençons à l'envers. La mise en cache ne sera pas la « solution miracle » pour des performances d'hébergement mal configurées ou bon marché (désolé, votre hébergement partagé à 2 $/an ne bénéficiera probablement pas beaucoup de la mise en cache). Ce ne sera pas non plus la solution ultime pour charger très rapidement des pages volumineuses ou très graphiques (désolé, votre portfolio de photos de 10 ans sur une seule page ne bénéficiera probablement pas non plus beaucoup de la mise en cache à court terme). Alors, quand devriez-vous réellement envisager la mise en cache ? Si votre site et son contenu sont raisonnablement statiques, j'entends par là que le contenu existant n'est pas mis à jour ou modifié régulièrement, ou que du nouveau contenu n'est pas ajouté en permanence.

Cela ne veut pas dire que les sites à évolution rapide ou très dynamiques ne bénéficient pas de la mise en cache, mais leurs politiques de cache et de CDN (Content Delivery Network) auront tendance à être beaucoup plus faibles et adaptées à leurs besoins et à leurs délais, plus que le site moyen et ciblera davantage la mise en cache de contenu plus ancien, avec des exceptions pour le contenu plus récent.

Dans certains cas, une utilisation simple mais efficace des extensions de compression ou de minification peut produire de meilleurs résultats en raison d'une pression moindre sur les ressources d'hébergement disponibles, sans oublier une bonne optimisation des dimensions de l'image et de la taille des fichiers.

À ce stade, il convient de mentionner la «  pré-mise en cache  » et les «  applications Web progressives  » (PWA). Ces technologies ciblent souvent les appareils mobiles et les sites où les visiteurs reviennent régulièrement, peut-être pour vérifier un statut ou le début d'un événement.

Par où commencer avec la mise en cache

Si votre site peut être considéré comme petit ou moyen et que vous avez investi judicieusement dans un bon hébergement, en réalité vous n'avez besoin de rien de plus que d'activer SSL et GZip dans Joomla ou la mod_deflate et mod_expires mise en cache du navigateur pour obtenir une bonne expérience utilisateur ou " Core Web Vitals ” via Google, en particulier si votre site est Joomla 4. La compression de connexion, le Lazy Load pour les sites lourds en images et les politiques de mise en cache du navigateur, combinés à une bonne mise en page et à un bon hébergement, devraient permettre de gérer les éléments vitaux du milieu des années 90. Si vous recherchez ce petit coup de pouce supplémentaire, la minification html et les extensions de combinaison CSS/JS peuvent dynamiser votre expérience utilisateur sans utiliser trop de ressources.

Si votre site a tendance à être plus grand ou si les requêtes de base de données de contenu dynamique ont tendance à être plus larges, la mise en cache des requêtes de base de données et/ou la mise en cache OPCode peuvent être le meilleur choix par rapport aux extensions de mise en cache de page, en utilisant potentiellement toujours des de compression ou de minification utilitaires pour réduire les temps de chargement des ressources statiques aussi.

Dans les cas où votre site est très volumineux (contenu d'entreprise ou de type scientifique) et que le contenu est plus « centré sur les données », avec de grands tableaux ou des listes d'informations connexes qui peuvent être recherchées ou filtrées par les visiteurs, alors les goûts de Redis ou Memcached pourrait être une option préférée. L'utilisation de ces options nécessite beaucoup plus de compréhension de votre architecture de données et vous serez plus susceptible d'exécuter un serveur dédié, un VPS (Virtual Private Server) ou une instance de Cloud Virtual Server plutôt que d'utiliser un compte d'hébergement partagé.

Bien que ces deux applications soient considérées comme des applications de « mise en cache », elles fonctionnent davantage comme des magasins de données indexés en mémoire et sont basées sur des objets plutôt que sur des caches basés sur des fichiers de pages entiers, permettant ainsi la mise à jour dynamique des objets de données individuels sans invalider l'ensemble du cache. pour n'importe quelle page. Pour ces raisons, il s'agit davantage d'architectures au niveau de l'entreprise que de petites et moyennes implémentations de sites Web.

Les pièges courants de la mise en cache

La première règle du Cache-Club est « less is more ». J'entends par là, ne mélangez pas au hasard différentes couches ou niveaux de technologies de compression, de minification et de cache sans d'abord tester individuellement. Le mélange de plusieurs technologies et méthodes a tendance à interférer les uns avec les autres et à provoquer des conflits. Les technologies de cache combinées aux technologies de compression et de minification peuvent être une bonne chose, si elles sont effectuées dans le bon ordre et si elles se connaissent dans une certaine mesure ; Sinon, la compression ou la mise en cache de quelque chose qui est déjà compressé ou mis en cache peut en fait augmenter en taille, produisant le résultat exactement opposé à ce que vous cherchez à obtenir.

Comprendre la configuration optimale de la mise en cache est plus complexe qu'il n'y paraît au départ, l' " plus on est plus joyeux approche " donne le plus souvent un résultat " plus est absolument horrible " et " ça a cassé mon site ", malheureusement.

Il existe de nombreux types, variétés, niveaux et couches de mise en cache, tous ne conviennent pas à tous les types de contenu et de sites, dans de nombreux cas «  aucun  » peut en fait être la meilleure réponse et souvent une combinaison limitée, dans le bon ordre peut produire le « désiré » balle d'or » des résultats brillants.

Bref, pour ceux qui ne connaissent peut-être pas bien serveur, application, php ou Joomla ! Configuration ou réglage de performance, c'est un champ de mines prêt à exploser, sans parler de ruiner et de frustrer votre journée.

Naviguer dans le champ de mines de la cache

Comme le dit le livre, en gros caractères sympathiques, « Ne paniquez pas ! "...
Il y a des choses à faire et à ne pas faire de base qui peuvent être prises en compte afin de réduire votre stress.

  1. Ne « jetez pas tout sauf l'évier de la cuisine » (1) sur le problème, vous observerez soit des conflits, soit vous ne pourrez pas déterminer ce qui fonctionne et ce qui ne fonctionne pas. (ex : ne pas enfreindre la première règle de Cache-Club )

  2. N'hébergez pas sur le plan d'hébergement le moins cher avec la plus grande offre d'espace disque, ceux-ci ont tendance à ne pas être réglés pour les performances mais pour un retour maximum sur l'investissement des hôtes.

  3. Parlez à votre hôte pour voir quelles, le cas échéant, les limites de ressources peuvent être en place (PHP memory_limit, MySQL max_user_connections, Query Cache, MemCache, entrées/sorties d'E/S (essentiellement, lecture et écriture à partir du disque), matériel virtuel ou physique limites (RAM/CPU/Cores).

  4. Testez d'abord chaque extension de cache ou minimiseur et option de mise en cache du serveur séparément pour obtenir une base de référence, y compris les CDN.

  5. Documentez vos tests afin de pouvoir suivre non seulement les résultats, mais également les combinaisons que vous avez peut-être déjà essayées.

  6. Regardez les graphiques et les cascades fournis par la plupart des sites de test de vitesse de page pour trouver des anomalies, en particulier celles affectant Web Vitals LCP (Largest Contentful Paint) et FCP (First Contextual Paint) de Google.

  7. Essayez de comprendre ce qui cause réellement le problème de performances et vérifiez toutes les pages, pas seulement votre page d'accueil.

  8. Optimisez la mise en page, la structure et les images de votre site avant de décider si vous avez vraiment besoin d'activer la mise en cache, sans parler de la réduction de l'utilisation d'extensions inutiles ou excessives ou de grandes bibliothèques Javascript pour l'utilisation d'une fonctionnalité « mignonne ».

Comme mentionné ci-dessus, dans la plupart des cas, «  moins c'est plus  », jeter tout sauf l'évier de la cuisine (1) sur un site peu performant sans comprendre pourquoi il est sous-performant peut non seulement augmenter les besoins d'entretien, mais peut également gâcher complètement les performances raisonnables. vous avez peut-être observé.

Comme pour tous les articles génériques et de démarrage, nous ne sommes pas en mesure d'entrer dans la configuration d'une application ou d'une extension spécifique, mais simplement de vous fournir un point de départ pour approfondir vos recherches sur vos propres besoins. Gardez à l'esprit que tous les serveurs ne sont pas égaux, en particulier les comptes d'hébergement partagé, et que tous les sites ne sont pas égaux en fonction des types de contenu, des cas d'utilisation et de l'utilisation des extensions.

Votre utilisation du cache et ses résultats peuvent varier considérablement. En fin de compte, la meilleure configuration est un serveur et des applications bien dimensionnés et configurés pour répondre à vos besoins, aucune mise en cache ne surmontera complètement un environnement d'hébergement mal configuré ou bon marché. Ce qui suit donne un bref aperçu de certaines des différentes options de cache, de compression et de minification disponibles :

  • Joomla GZip
    Cette option de configuration globale compresse le flux de données entre le serveur Web et le navigateur. Dans la plupart des cas, il s'agit généralement d'une bonne option à activer, à moins que votre hébergement ne propose LiteSpeed ​​Caching (LSCache), Varnish ou une mise en cache proxy similaire, car ces utilitaires de serveur le feront. généralement prendre soin de cela pour vous.

  • mod_deflate
    S'il est installé, ce module de serveur Web peut compresser des actifs spécifiques et vous permet de définir des directives de temps de cache long pour influencer la durée pendant laquelle le navigateur Web des visiteurs doit mettre en cache une copie locale existante d'un actif ou s'il doit télécharger à nouveau l'actif à partir du site à nouveau. S'il n'est pas activé par défaut sur l'hôte, vous pouvez utiliser un fichier .htaccess ou web.config pour invoquer mod_deflate et choisir quels actifs demander au navigateur de mettre en cache et pendant combien de temps. Parlez à votre hébergeur pour déterminer si mod_deflate est installé sur votre serveur.

  • Joomla ! Cache de site et/ou de page
    Le cache du site Joomla a tendance à être le meilleur pour les pages statiques et sera appliqué de manière égale sur l'ensemble du site, le plug-in Joomla Page Cache est un peu plus spécifique et mettra en cache statiquement les pages individuelles, y compris les données de module et de plug-in, il n'est donc particulièrement utile que pour les sites très statiques et des modules qui ne sont pas dynamiques ou aléatoires par nature.

  • Caches tiers/Extensions de performances
    Ceux-ci ont tendance à se présenter sous la forme de plugins Joomla, la plupart offrant à la fois des options de compression/minification et de mise en cache et certains offrant des niveaux différents de chacun, de minimal à agressif. Les comptes d'hébergement avec des ressources disponibles plus importantes sont plus capables de s'exécuter de manière agressive, tandis que les serveurs disposant de moins de ressources peuvent avoir du mal à terminer la tâche de compression ou de mise en cache dans un délai acceptable, ce qui peut entraîner des problèmes TTFB (Time To First Byte) élevés. À cette fin, vous constaterez peut-être qu'une mise en cache ou une compression moins agressive produit assez souvent de meilleurs résultats.

  • PHP OPCode/OPCache et mise en cache des requêtes MySQL
    Ce sont des utilitaires de cache basés sur des applications serveur et ne sont généralement pas au courant des activités de cache d'extension Joomla. Si elles sont activées, il est probablement judicieux de désactiver les options de cache basées sur les extensions Joomla ou tierces pour éviter les conflits ou les activités de « double mise en cache ». L'utilisation de ces fonctions est préférable pour les sites qui utilisent fortement un traitement basé sur PHP ou des sites de type requête SQL lourdes mais régulières. Dans certains cas, ceux-ci peuvent être utiles pour le commerce électronique ou les sites à forte utilisation de champs personnalisés, mettant en cache les requêtes de base de données, mais pas directement la page générée par la requête.

  • Serveurs de cache et proxy
    Ces environnements incluent le LiteSpeed ​​Caching Server ou des applications similaires aux serveurs proxy Varnish. En règle générale, laissez ces applications faire le gros du travail sans entrave, alors désactivez Joomla GZip, désactivez les deux utilitaires Joomla Cache, limitez les extensions tierces à la "minification" et non au cache ou à la compression, supprimez toutes les entrées .htaccess GZip ou mod_deflate et assurez-vous toutes les instructions mod_expire correspondent aux délais configurés dans le cache/serveur proxy.

  • Hébergement de conteneurs virtuels et de gestionnaires de ressources
    Ici, les choses peuvent devenir un peu « poilues ». Pour la plupart, les applications de gestion de conteneurs et de ressources virtuelles telles que CloudLinux Manager ou MySQL Governor sont mieux laissées à elles-mêmes avec des configurations par défaut, et les options de compression Joomla intégrées et les extensions de minification et de cache tierces fonctionnent mieux, dans des limites raisonnables. Vous pouvez rencontrer des limitations de ressources, imposées par l'application du gestionnaire d'environnement virtuel, qui limitent l'efficacité de toute fonction de mise en cache externe . ", vous devrez essayer, tester et faire des erreurs ici pour trouver les meilleures options.

  • Réseaux de diffusion de contenu
    Les CDN peuvent considérablement améliorer les performances de par la nature même de leur architecture. En particulier pour les sites internationalement occupés, il n'y a peut-être plus besoin d'options de mise en cache uniquement en raison du mécanisme de livraison distribué dans le monde entier, mais pour les sites locaux ou purement régionaux, les CDN peuvent affecter négativement les performances ou n'avoir aucun effet. Cependant, pour les grands sites, une combinaison de GZip, mod_deflate et d'un simple cache de pages peut également améliorer considérablement les serveurs qui ne répondent pas (TTFB lent - Time To First Byte), en particulier si cela est causé par de grandes requêtes SQL ou un grand nombre d'images de style portfolio. L'utilisation d'une mise en cache proxy supplémentaire devant un CDN peut sérieusement affecter les performances « administrateur/ » en raison de la mise en cache multiple et de l'invalidation constante du cache, en particulier pour l'ajout régulier d'articles.

Cet article effleure à peine la surface concernant les techniques de mise en cache et de performance, en particulier en ce qui concerne les grands sites de bases de données SQL (data-centric), les sites à fort trafic ou les sites très graphiques (portefeuille ou analytique), ce type de sites « niveau entreprise » nécessite une analyse des systèmes , les activités de réglage du système de fichiers et de réglage de la base de données avant de déterminer la « stratégie de mise en cache » requise.

Nous apprécions que cet article ne vous ait pas donné de réponses définitives ou de « solutions miracles », mais nous espérons qu'il vous aura peut-être permis de mieux comprendre ce que vous essayez d'accomplir et la meilleure façon de l'aborder. ( Quelle est la première règle du Cache-Club ? )


Note de bas de page : (1) «  jeter tout sauf l'évier de cuisine  » est un idiome de langue anglaise, couramment utilisé pour décrire avec humour une situation où tout et n'importe quoi, même des actions sans rapport, sont prises en même temps dans le but d'atteindre un but, mais se termine normalement mal. Une expression similaire en anglais américain est «  utilisation d'une approche au pistolet à dispersion  ».

Contributions aux articles : Merci à Anja de Crom pour la copie~ et la relecture~ de tous mes articles, sans son expertise en rédaction, son expérience internationale et sa patience avec moi, cet article n'aurait pas été possible.

Lectures complémentaires :
JCM - Joomla 4 Performance - https://magazine.joomla.org/all-issues/october-2021/the-new-metrics-for-web-performance

Melbourne JUG - Améliorez vos scores de phare -
https://joomla.org.au/news-articles/australian-virtual-user-group-events/avjug-april-2021-google-lighthouse

JCM - Qu'est-ce qu'un CDN et comment en implémenter un dans Joomla -
https://magazine.joomla.org/all-issues/january-2021/what-is-a-cdn-and-how-to-implement-a-cdn-in-joomla

JCM - Utilisation du LazyLoading natif sur votre site Web -
https://magazine.joomla.org/all-issues/january-2021/using-native-lazyloading-on-your-website

JCM - Liste de contrôle SEO Joomla -
https://magazine.joomla.org/all-issues/may-2021/joomla-seo-checklist

Aucun commentaire