Lorsqu’il s’agit de sites WordPress, tous ne peuvent pas être traités de la même façon en termes de ce qui fonctionne le mieux pour la performance. Un simple site WordPress de cinq pages se comporte complètement différemment d’un grand site WooCommerce (qui peut être très exigeant). Les sites WordPress d’adhésion et les sites communautaires sont un autre type de sites qui entrent dans ce que nous appelons parfois cette catégorie « délicate ». S’il n’est pas installé ou configuré correctement, vous vous retrouverez bientôt dans un cauchemar d’erreurs 500, de temps d’arrêt et de lenteurs de chargement des pages. Mais cela ne veut pas dire que vous n’avez pas d’options, vous n’avez qu’à suivre certaines pratiques exemplaires.

Aujourd’hui, nous allons explorer les choses à faire et à ne pas faire pour les sites d’adhésion WordPress et la meilleure façon de les optimiser pour assurer une performance, une évolutivité et une longévité optimales. 🚀

Exemples de sites d’adhésion

Voici quelques exemples de sites d’adhésion WordPress et de sites communautaires courants :

  • Un site construit autour d’un système de gestion de l’apprentissage (LearnDash, Lifter LMS) qui vend des cours numériques à ses membres. Ils sont de plus en plus populaires ces derniers temps !
  • Site WordPress basé sur un forum (bbPress ou BuddyPress) principalement utilisé par les membres pour discuter de différents sujets.
  • Un site d’adhésion construit sur l’un des nombreux plugins d’adhésion tout-en-un populaires (MemberPress ou Ultimate Membership Pro).
  • Un site communautaire de réseautage social (PeepSo).
  • Certains pourraient également inclure des solutions de eCommerce telles que WooCommerce et Easy Digital Downloads comme sites d’adhésion, car beaucoup d’entre eux ont des profils d’utilisateurs et des fonctionnalités communautaires.

Pourquoi les sites d’adhésion WordPress sont différents

Avant de nous lancer dans les choses à faire et à ne pas faire, plongeons dans quelques raisons pour lesquelles les sites d’adhésion WordPress sont différents de votre blog standard ou de votre site Web de petite entreprise.

Les sites d'adhésion #WordPress sont des bêtes quand il s'agit de performances. Vérifiez ce qu'il faut faire et ce qu'il ne faut pas faire. 🦖 Cliquez pour Tweet

1. Contenu non cachable

Tout d’abord, les sites d’adhésion contiennent beaucoup de contenu non cachable et des pages qui changent continuellement. Des éléments tels que la page de connexion pour les membres de la communauté (qui pourrait être frappée constamment en fonction de la taille du site), les pages de paiement pour les biens numériques ou les cours, et les forums de discussion sont des coupables communs et des points faibles, car ceux-ci ne peuvent généralement pas être mis en cache.

Mais cela ne s’arrête pas là. Sur les sites WordPress standards, le tableau de bord WordPress n’est pas non plus mis en cache pour les utilisateurs « connectés ». C’est très bien quand vous n’avez que quelques auteurs et administrateurs, mais quand vous avez soudainement des milliers de membres qui utilisent le tableau de bord, cela provoque immédiatement des problèmes de performances car rien de tout cela ne peut être servi depuis le cache sur le serveur. Cela signifie que vous avez besoin de la puissance et de l’architecture en arrière-plan pour gérer cela. Les fournisseurs d’hébergement mutualisé sont généralement paralysés dans ces circonstances.

Dans l’outil MyKinsta analytics que nous fournissons pour les clients hébergement, vous pouvez voir à quel point le cache est contourné. Ci-dessous voici un exemple d’un site où la grande majorité des requêtes ne sont pas servies à partir du cache.

Contournement du cache

Contournement du cache

2. Un grand nombre de visiteurs simultanés

Le deuxième problème des sites d’adhésion est généralement un grand nombre de visiteurs et de sessions simultanées. Sur un site WordPress d’information ou d’entreprise, un visiteur peut rester cinq ou dix minutes jusqu’à ce qu’il trouve ce dont il a besoin (et c’est un nombre élevé, généralement les taux de rebond sont beaucoup plus élevés). Sur les sites d’adhésion, c’est le contraire qui se produit. Les visiteurs viennent généralement sur le site pour s’engager avec quelque chose ou quelqu’un. S’ils suivent un cours en ligne, il n’est pas inhabituel qu’ils y restent pendant des heures. Vous pouvez voir où cela nous mène. Les visiteurs simultanés connectés à votre hébergement WordPress s’additionnent rapidement.

Pour empirer les choses, vous avez alors un grand nombre de visiteurs simultanés en plus du problème du « contenu non cachable « .

3. Requêtes complexes

Troisièmement, les sites d’adhésion génèrent généralement des requêtes plus complexe, ce qui à son tour ajoute une latence supplémentaire dans la récupération des informations de la base de données MySQL. Beaucoup de ceci est simplement dû à toutes les pièces mobiles supplémentaires et aux grandes quantités de données des sites comme ceux-ci. Cela peut également être causé par des sites qui dépendent fortement des requêtes de recherche pour la navigation ou qui utilisent WP_Query.

Sans compter que vous avez également un grand nombre d’utilisateurs simultanés qui interrogent la base de données en permanence.

4. Stocker beaucoup de données

Ce n’est pas vraiment surprenant, mais les sites d’adhésion stockent beaucoup de données et s’ils ne sont pas gérés correctement (ce dont nous parlerons plus loin), votre espace disque peut rapidement vous fuir. Cette situation s’aggrave également au cours de la durée de vie du site. Vidéos, cours, informations sur les membres et les profils, discussions, téléchargements numériques, etc. Ce ne sont là que quelques-uns des nombreux types de contenu différents qui s’additionnent rapidement.

Ce qu’il faut faire pour les sites d’adhésion WordPress

Nous hébergeons beaucoup de sites d’adhésion chez Kinsta et nos ingénieurs interagissent constamment avec ces propriétaires de sites sur une base quotidienne. Bien que nous encouragions toujours les utilisateurs à mettre en œuvre les meilleures pratiques en matière de performance Web, celles-ci ne sont généralement pas suffisantes lorsqu’il s’agit de ces types de sites. Aujourd’hui, nous allons donc vous montrer quelques façons d’aller plus loin pour que votre site d’adhésion et ses visiteurs aient la meilleure expérience possible.

1. Choisissez un hébergeur WordPress axé sur la performance

Le conseil de choisir un meilleur hébergeur WordPress peut sembler comme un disque rayé à ce stade, mais la vérité est que beaucoup de problèmes de performances avec les sites d’adhésion peuvent être retracés à partir de la cause profonde. Nous avons vu à maintes reprises des clients migrer vers Kinsta à partir d’autres fournisseurs et nous avons immédiatement constaté des améliorations drastiques. Toute notre entreprise, de l’infrastructure que nous plaçons derrière vos sites aux ingénieurs que nous embauchons, est axée sur la performance. Cela n’a jamais changé et ne changera jamais.

Comment Kinsta accélère les sites d’adhésion

Kinsta a été le premier hébergeur WordPress infogéré à utiliser exclusivement la plateforme Google Cloud. Nous offrons 20 centres de données différents à travers le monde, ce qui signifie que vous pouvez en choisir un le plus proche de vos visiteurs pour réduire la latence et le TTFB. Alors que d’autres hébergeurs peuvent utiliser le réseau de niveau standard de Google (moins cher et plus lent), nous utilisons le réseau de niveau premium de Google. Ceci est conçu pour minimiser les distances et les sauts, ce qui permet un transport global plus rapide et plus sécurisé de vos données.

Notre plateforme d’hébergement n’entre dans aucune des catégories d’hébergement traditionnelles et est très différente de l’infrastructure traditionnelle mutualisée, VPS ou dédiée. Kinsta utilise des hôtes gérés par LXD et des conteneurs logiciels LXC orchestrés pour chaque site. Cela signifie que chaque site WordPress d’adhésion est hébergé dans son propre conteneur isolé, qui possède toutes les ressources logicielles nécessaires à son fonctionnement (Linux, Nginx, PHP, MySQL). Les ressources sont 100% privées et ne sont partagées avec personne d’autre, pas même avec vos propres sites.

Architecture Kinsta

Architecture Kinsta

Chaque site d’adhésion peut également profiter de la mise à l’échelle automatique pour mieux gérer les augmentations soudaines du trafic et de la charge. Les ressources matérielles (CPU/RAM) sont allouées automatiquement à chaque conteneur de site par nos machines virtuelles en fonction des besoins. Cela vous permet de développer votre site WordPress sans avoir à vous soucier des contraintes communes et des limites strictes imposées par les autres fournisseurs d’hébergement.

En savoir plus sur la différence Kinsta.

2. Profitez de PHP 7

Nous ne saurions trop insister sur l’importance d’utiliser l’une des dernières versions de PHP, de préférence PHP 7.3. Pour de nombreux sites, cela ne nécessite pas de travail et c’est un coup de pouce gratuit et instantané pour la performance !

PHP 5.6 n’est plus activement supporté et a atteint sa fin de vie (EOL) en décembre 2018, date à laquelle il a cessé de recevoir toute mise à jour de sécurité future. Nous avons récemment publié nos benchmarks de performances PHP dans lesquels nous avons testé PHP 5.6, 7.0, 7.1, 7.2, et 7.3. Comme vous pouvez le voir ci-dessous, sur un site WooCommerce, PHP 7.3 prend le gâteau pour la performance la plus rapide ! 🍰

Benchmarks PHP WordPress 5.0 + WooCommerce

Benchmarks PHP WordPress 5.0 + WooCommerce

Nous avons également testé Easy Digital Downloads et encore une fois PHP 7.3 a surpassé tout le reste. Si vous comparez PHP 7.3 à PHP 5.6, il peut traiter 3x plus de requêtes (transactions) par seconde.

Benchmarks PHP WordPress + Easy Digital Download

Benchmarks PHP WordPress + Easy Digital Download

Si votre hébergeur WordPress actuel ne supporte pas PHP 7 ou supérieur, il est peut-être temps de chercher un nouvel hébergeur. Kinsta propose PHP 7.3 depuis décembre 2018, ainsi que toutes les autres versions majeures. Vous pouvez facilement basculer entre chaque version dans le tableau de bord MyKinsta d’un simple clic.

Changer la version de PHP

Changer la version de PHP

Si votre site d’adhésion a des problèmes de compatibilité avec la dernière version de PHP, alors il est probablement temps de demander au développeur du plugin ou du thème pourquoi il est à la traîne ou d’engager votre propre développeur WordPress pour résoudre le problème. Vous ne voulez pas passer à côté des améliorations de performances à partir de PHP 7 et plus.

3. Utiliser la mise en cache d’objets

 

La mise en cache rend les sites Web plus rapides et réduit la charge sur le serveur Web. Que vous utilisiez un plugin de mise en cache ou un hébergeur infogéré comme Kinsta dont la mise en cache au niveau serveur (page) est implémentée, c’est quelque chose que vous devriez déjà faire. Cependant, lorsqu’il s’agit de sites d’adhésion WordPress, vos configurations de mise en cache communes ne sont généralement pas suffisantes car elles ne tirent pas toujours pleinement parti de ces avantages. C’est ici que la mise en cache d’objets entre en jeu.

Le cache d’objet stocke les résultats des requêtes de la base de données de sorte que la prochaine fois que ce bit particulier de données est nécessaire, il peut être livré à partir du cache sans interroger la base de données. Cela accélère les temps d’exécution PHP et réduit la charge sur votre base de données. Cela devient extrêmement important avec les sites d’adhésion ! Avec WordPress, vous pouvez implémenter la mise en cache d’objets de plusieurs façons différentes :

  1. Une solution de mise en cache tierce telle que W3 Total Cache
  2. Redis (recommandé)
  3. Memcached

Redis

Nous offrons Redis comme un option additionnelle chez Kinsta pour que vous puissiez profiter pleinement de la mise en cache d’objets persistants pour vos sites d’adhésion. La bonne nouvelle, c’est qu’une fois qu’il est configuré, vous pouvez toujours utiliser l’option Effacer le cache ajouté à la zone d’administration de votre site Web par le MU plugin Kinsta. Ce bouton effacera à la fois notre cache de page et toute mise en cache d’objet active sur le site.

Effacer le cache depuis la barre d'outils d'administration de WordPress

Effacer le cache depuis la barre d’outils d’administration de WordPress

Dans certains cas, nous pouvons également mettre en cache une page ou une URL spécifique pour les utilisateurs connectés. Cependant, vous devrez d’abord en discuter avec notre équipe de support car il est important que vous compreniez toutes les ramifications de l’activation de cette fonction.

4. Améliorez votre recherche WordPress

Au fur et à mesure qu’un site d’adhésion grandit, vous découvrirez probablement que la fonctionnalité de recherche standard de WordPress ne sera pas suffisante. Les sites qui utilisent fortement WP_Query, utilisent la recherche comme principal moyen de navigation, ou même un site avec un grand nombre d’articles peut se heurter à des problèmes de performances, les temps de recherche de requête commencent à s’accumuler. C’est là qu’un moteur de recherche comme Elasticsearch peut vous aider.

Elasticsearch

Elasticsearch peut être utilisé pour accélérer l’interrogation de la base de données WordPress. Ceci est fait en construisant un index du contenu de la base de données de votre site et en utilisant Elasticsearch pour rechercher cet index beaucoup plus rapidement qu’une requête MySQL est capable d’effectuer pour la même recherche.

Nous offrons Elasticsearch comme option additionnelle chez Kinsta. Nos ingénieurs l’installent sur le même serveur que votre environnement PHP et votre base de données MySQL, ce qui permet de réduire la latence au lieu de l’héberger dans une instance séparée ou d’utiliser Elasticsearch Cloud.

5. Créer une page 404 légère

Nous avons constaté que les sites d’adhésion génèrent généralement un grand nombre d’erreurs 404. Votre site en génère probablement plus que vous ne le pensez ! Notre outil MyKinsta analytics peut vous aider à déterminer la quantité exact (voir ci-dessous).

Erreurs 404

Erreurs 404

Vous pouvez également vérifier les erreurs 404 dans la Google Search Console ou installer un plugin tiers tel que Redirection qui enregistre les erreurs 404. Cependant, n’oubliez pas que de tels plugins ont également un impact sur les performances. Il est préférable de s’appuyer sur un outil au niveau du serveur.

La raison pour laquelle ces erreurs sont mauvaises est que de nombreuses pages 404 sont très gourmandes en ressources. Pour un site d’adhésion, vous devrez éviter une page 404 lourde. Créez un modèle 404 simple qui évite si possible d’interroger la base de données. Et bien sûr, passez un peu de temps à corriger les erreurs 404, car ce n’est pas seulement exigeant en ressources, c’est tout simplement mauvais pour l’expérience utilisateur.

6. Augmenter le nombre de workers PHP

Les workers PHP sont peut-être un terme dont vous n’avez jamais entendu parler, mais c’est la manière dont les hébergeurs, y compris Kinsta, gèrent la limitation de requêtes (plutôt que de vous limiter par CPU ou RAM, ce qui est généralement le cas des fournisseurs d’hébergement mutualisé).

Les workers PHP déterminent combien de requêtes simultanées votre site peut traiter à un moment donné. En d’autres termes, chaque requête non mise en cache pour votre site Web est traitée par un worker PHP. Par exemple, si vous avez 4 requêtes qui arrivent sur votre site exactement en même temps et que votre site a 2 workers PHP, deux de ces requêtes seront traitées tandis que les deux autres devront attendre que les deux premières aient fini de les traiter.

Rappelez-vous que nous avons discuté plus tôt que l’un des plus gros problèmes avec les sites d’adhésion WordPress est toutes ces demandes non mises en cache. C’est pourquoi les workers PHP deviennent très importants car ils doivent travailler pour chaque demande. Par conséquent, ces sites auront généralement besoin de workers PHP supplémentaires pour s’assurer que chaque demande est traitée sans délai et traitée avec succès.

Que se passe-t-il si vous atteignez continuellement le nombre maximum de workers PHP ? Fondamentalement, la file d’attente commence à repousser les requêtes plus anciennes, ce qui pourrait entraîner des erreurs 500 sur votre site. Chacun des plans d’hébergement de Kinsta inclut un nombre prédéfini de workers PHP. Si vous avez de la difficulté à estimer les besoins de votre site, vous pouvez toujours discuter avec notre équipe de vente ou de support.

7. Effectuer une maintenance régulière de la base de données

La maintenance régulière des bases de données n’est pas seulement recommandée pour les sites WordPress d’adhésion, c’est obligatoire ! Si vous ne le faites pas, un jour, vous vous demanderez probablement pourquoi votre site a explosé. Voici quelques recommandations :

Nettoyage des données chargées automatiquement

Les données chargées automatiquement sont des données qui sont chargées sur chaque page de votre site WordPress. Ces données sont stockées dans votre table wp_options. Sur les grands sites, cette table peut rapidement devenir incontrôlable. Consultez notre tutorieldétaillé sur la façon de nettoyer les données chargées automatiquement.

Nettoyer les transients et les tâches CRON

Tout comme pour les données chargées automatiquement, vous devez également nettoyer régulièrement les transients. Quand ils fonctionnent correctement, les transients sont censés expirer et se retirer d’eux-mêmes, mais ce n’est pas toujours le cas. Si quelque chose est mal configuré ou même corrompu, ils peuvent commencer à s’accumuler.

Par exemple, nous avons eu un client où quelque chose a mal tourné avec des transients expirés et cela a créé de gros problèmes. Après avoir creusé, nous avons découvert que le site contenait 695 846 enregistrements de transients (lignes) dans la base de données. En supprimant les lignes (qui contenaient des transients qui auraient déjà dû expirer), le site s’est immédiatement rétabli (comme illustré ci-dessous).

Transients (après correction)

Transients (après correction)

Vous pouvez utiliser le plugin gratuit Transients Manager pour afficher, rechercher, modifier et supprimer les transients sur votre site WordPress. Si vous êtes un peu plus technophile, vous pouvez aussi utiliser les commandes WP-CLI pour éliminer les transients.

Les tâches CRON (WP-Cron), utilisées pour planifier des tâches répétitives pour votre site WordPress, peuvent également présenter des problèmes similaires. Vous pouvez utiliser le plugin gratuit WP Control pour vérifier et vous assurer que vos tâches CRON ne sont pas hors de contrôle.

Changer le moteur de base de données en InnoDB

Enfin, vous devriez remplacer votre moteur de base de données par InnoDB si vous ne l’avez pas déjà fait. Beaucoup d’anciens sites utilisent encore le moteur de stockage MyISAM dans leur base de données. Au cours des dernières années, InnoDB s’est montré plus performant et plus fiable. Une grande raison d’utiliser InnoDB au lieu de MyISAM, c’est que vous n’aurez pas de problèmes avec le verrouillage complet au niveau des tables. Cela permet d’accélérer le traitement de vos requêtes.

Consultez notre tutoriel pour savoir comment convertir votre base de données (tables) de MyISAM à InnoDB. Si vous migrez vers Kinsta et que notre équipe d’ingénieurs vous assiste, nous transférons automatiquement votre moteur de base de données vers InnoDB.

8. Décharger les données

Comme nous l’avons mentionné précédemment, les sites d’adhésion ont tout simplement une tonne de données ! Les vidéos, les fichiers PDF, les photographies en pleine résolution, les documents et les fichiers audio ont tendance à être les principaux coupables. Par conséquent, vous devrez peut-être trouver un moyen de transférer tout cela vers une solution de stockage moins coûteuse. Cela peut vous faire économiser de l’argent en ayant simplement à mettre à jour votre plan d’hébergement. Consultez les articles suivants :

À ne pas faire pour les sites d’adhésion WordPress

Voici quelques choses que vous ne devriez pas faire sur vos sites d’adhésion WordPress.

Restez à l’écart des compteurs d’articles

N’ajoutez jamais de compteurs d’affichage/vue pour les articles de votre site si vous n’en avez pas besoin. Par exemple, évitez des choses comme « 792 articles » à côté de l’avatar d’un utilisateur dans les messages du forum ou « 5,243 vues » lorsque vous lisez les messages du forum. Lorsque vous avez une longue discussion, ces compteurs auront un impact énorme sur votre base de données. En général, minimisez l’utilisation des compteurs et ne les utilisez qu’en cas de besoin.

Cela vaut également pour les compteurs sociaux. Notez que nous les utilisons sur le blog de Kinsta, mais nulle part ailleurs sur notre site. Mais notre plugin a aussi une mise en cache intégrée, ce qui assure qu’ils ne génèrent pas de requêtes à chaque chargement de page.

Compteurs de partages

Compteurs de partages

Éviter les constructeurs de page

Les constructeurs de page sont parfaits pour beaucoup de gens, en fait, nous avons même une liste complète de ceux que vous pouvez utiliser sur votre site. Cependant, la plupart d’entre eux (pas tous) ont des implications sur les performances car ils génèrent du code inutile supplémentaire pour afficher la page de la même manière que l’utilisateur peut encore la construire sans savoir comment coder. Si vous le pouvez, codez vos modèles de page à la main et faites-les toujours aussi légers que possible.

Par exemple, notre site Web Kinsta (voir ci-dessous) est en WordPress, mais le thème entier est en fait codé par notre développeur interne. Cela nous aide à réduire la surcharge que les grands thèmes WordPress ont généralement, mais nous permet de profiter de toutes les fonctionnalités incroyables. Encore une fois, il y a des milliers de développeurs et de designers WordPress talentueux à votre disposition si vous avez besoin d’aide.

Page d'accueil Kinsta

Page d’accueil Kinsta

N’utilisez pas trop de plugins

Nous savons que vous avez déjà entendu cela. La vérité est que la qualité du code d’un plugin est plus importante que le nombre total de plugins que vous avez installés. Cela étant dit, chacun d’entre eux aura quand même un « coût de performance« . 🐢 Si vous n’utilisez plus les fonctionnalités des plugins, désactivez et supprimez-les de votre site. Non seulement cela facilite le dépannage, mais cela diminuera probablement le nombre de requêtes sur votre site (à la fois sur le backend et le frontend).

Soyez prudent avec les intégrations tierces

Il existe de nombreuses plateformes CRM et d’automatisation tierces que vous pourriez vouloir intégrer à votre site WordPress. Cependant, soyez prudent avec ces dernières car certaines peuvent introduire des latences et des retards supplémentaires lors de la communication avec leurs APIs, services, etc. Vous devrez peut-être regarder les solutions construites à l’intérieur de WordPress, telles que ces solutions CRM.

Non pas pour rendre les choses plus difficiles, mais le contraire pourrait aussi être vrai. Si un CRM tiers ou une plateforme d’automatisation terce s’occupe d’un grand nombre de ses propres tâches, elle pourrait en fait aider à alléger la charge de votre hébergeur WordPress. La meilleure façon d’en être sûr est de tester différentes solutions.

Recommandations supplémentaires

Et bien sûr, nous ne pouvons pas vous laisser partir sans mentionner certaines des optimisations de vitesse les plus courantes que vous devriez déjà appliquer :

  • Compressez vos images ! Chez Kinsta, nous réalisons généralement des économies de 60 à 70 % selon les types d’images et la forme de compression que vous utilisez. Nous recommandons la compression lossy.
  • Utilisez toujours un CDN. Bien que nous ayons un choix de 20 centres de données disponibles chez Kinsta, votre serveur sera toujours loin de quelqu’un. Un CDN peut y remédier en copiant et en livrant vos ressources (images, JS, CSS) à partir de POPs dans le monde entier. Notre Kinsta CDN est inclus pour les clients.
  • Réfléchissez à deux fois avant de décider de gérer votre propre VPS. Essayer d’être un sysadmin pour économiser 20$/mois est une mauvaise idée.

Résumé

Les sites WordPress d’adhésion et les sites communautaires sont définitivement dans leur propre catégorie quand il s’agit d’optimisation. En général, il faut faire un effort supplémentaire si l’on veut obtenir d’excellentes performances. Mais la grande nouvelle, c’est que bon nombre des solutions qui existent peuvent faire des merveilles. PHP 7, Elasticsearch et le Cache Objets Redis sont tous des moyens simples et efficaces de voir des résultats instantanés. Et bien sûr, avoir un hébergeur axé sur la performance devrait toujours être en tête de votre liste. 😉

Avez-vous un site d’adhésion WordPress ? Nous aimerions entendre vos pensées ou les problèmes que vous avez rencontrés en cours de route.

9
Partages