Définition
WordPress, le CMS le plus populaire, est très fréquemment sujet à des problèmes de performance. Cependant, ce CMS ne fournit pas d'outil natif pour analyser les goulots d'étranglements à l'origine des lenteurs, ce qui ne facilite pas les analyses.
Query Monitor est un plugin WordPress gratuit qui apporte les outils de profilages nécessaires lors de l'exécution de chaque page généré par WordPress pour identifier les points à vérifier lors d'un problème de vitesse et de performance.
Si la méthode habituelle est de tâtonner la désactivation de chaque plugin jusqu'à ce que le problème disparaît, Query Monitor apporte une nouvelle approche en identifiant immédiatement le plugin et/ou le thème à l'origine d'une requête SQL ou requête HTTP lente.
Dans ce guide, vous allez apprendre tout ce que vous devez savoir pour identifier vos problèmes de performances avec Query Monitor.
Procédure
WordPress, le CMS le plus populaire, est très fréquemment sujet à des problèmes de performance. Cependant, ce CMS ne fournit pas d'outil natif pour analyser les goulots d'étranglements à l'origine des lenteurs, ce qui ne facilite pas les analyses.
Query Monitor est un plugin WordPress gratuit qui apporte les outils de profilages nécessaires lors de l'exécution de chaque page généré par WordPress pour identifier les points à vérifier lors d'un problème de vitesse et de performance.
Si la méthode habituelle est de tâtonner la désactivation de chaque plugin jusqu'à ce que le problème disparaît, Query Monitor apporte une nouvelle approche en identifiant immédiatement le plugin et/ou le thème à l'origine d'une requête SQL ou requête HTTP lente.
Dans ce guide, vous allez apprendre tout ce que vous devez savoir pour identifier vos problèmes de performances avec Query Monitor.
Pour installer Query Monitor, rendez-vous sur le tableau de bord de votre site WordPress et rendez-vous sur Extensions puis Ajouter.
Recherchez le plugin Query Monitor et installez-le.
Une fois installé, activez l'extension.
Dès que le plugin est actif, un nouveau menu s'affiche sur la barre de menu WordPress. En cliquant sur le menu, la fenêtre de débogage s'affiche :
Il vous sera alors nécessaire de vous rendre sur la page où vous constatez des problèmes de performances et cliquer sur le menu pour voir les détails.
N'oubliez pas de désactiver le plugin Query Monitor dès que vous avez fini de déboguer, car la génération de ces données de débogage est lui-même assez lourde et peut engendrer des problèmes de performances.
Le menu vue d'ensemble de Query Monitor indique l'URL actuellement ouverte.
Le temps de génération de la page est le temps sur laquelle PHP exécute le script. La limite, mentionnée en dessous est le max_execution_time défini sur PHP. En général, le temps de génération de la page doit être approximativement similaire au temps d'attente du navigateur (visible depuis le console développeur) :
Dans la présente exemple, vous constatez qu'il y a un problème : le temps de génération de la page n'est que de 377 ms, or le navigateur prend jusqu'à 959 ms avant de pouvoir recevoir la page. Ce problème survient quand le réseau entre le navigateur web et le serveur du site est lente. Dans ce genre de cas, il sera nécessaire de mettre en place un serveur plus proche du client grâce à Ipxchange ou Cloudflare.
La section "Pic d'utilisation mémoire" indique la consommation mémoire maximale de votre site web lors de la génération de la page. La limite WordPress est définie par la constante WP_MEMORY_LIMIT dans wp-config.php, tandis que la limite du serveur est définie par la valeur de memory_limit défini depuis l'interface cPanel.
La section suivante, "Requêtes en base de données", indique le temps dépensé pour récupérer des informations depuis la base de données.
La section "Appels d'API HTTP" indique les requêtes HTTP effectués par le site lors de la génération de la page pour accéder à des API externes. Le temps de réponse d'une API dépendra inévitablement du serveur sur lequel cet API est hébergé.
Les deux derniers sections, "Cache objet" et "Cache d'Opcode" indiquent l'état d'utilisation de ces deux caches. A rappeler que le cache objet stocke les objets WordPress en mémoire pour réduire le nombre de requêtes MySQL effectués sur la base de données et ainsi optimiser le temps de réponse, tandis que le cache Opcode permet à PHP de ne pas recompiler à chaque fois le fichier PHP. Une fois un fichier PHP exécuté pour la première fois, le cache Opcode stocke l'Opcode de ce fichier PHP (la version compilée donc binaire du fichier PHP) pour une future exécution.
Si vous souhaitez en savoir plus sur les enjeux du cache objet, nous vous conseillons de consulter notre documentation dédié à la mise en place d'un cache objet persistant avec Redis.
Ce menu vous affiche les erreurs PHP rencontrés par WordPress (pas forcément une erreur fatale et/ou bloquante). Elles sont souvent masqués et difficile à retrouver sans modifier les seuils de reporting d'erreur PHP. Query Monitor permet toutefois de les visualiser rapidement sans modifier aucune configuration. La colonne "Composant" vous indique la provenance du script à l'origine de l'erreur, si cela vient du coeur de WordPress, d'un thème ou d'un plugin en particulier. La colonne "Emplacement" indique le fichier et le numéro de ligne s'y afférant.
Si vous rencontrez des erreurs PHP, même si ceux-ci ne sont pas bloquantes, votre performance pourrait en être affecté. Rien que si vous avez beaucoup d'erreurs à loguer, votre processus PHP devra ouvrir, écrire et fermer le fichier de log PHP à chaque nouvelle visite. Si vous avez des dépréciations, ajustez les seuils de reporting d'erreur PHP pour que ceux-ci ne soient pas incluses dans les fichiers logs pour éviter des écritures inutiles sur le fichier log PHP, si vous ne pouvez pas, pour l'instant, les résoudre convenablement.
Ce menu regroupe les requêtes SQL effectués par WordPress ainsi que les composants à l'origine des requêtes et leur temps d'exécution :
Si vous constatez des requêtes particulièrement lentes :
Le menu "Appels d'API HTTP", un peu plus bas dans la liste, permet de visualiser les requêtes API effectués par le site durant le chargement de la page :
Si vous constatez une API qui répond trop lentement, nous vous recommandons de le désactiver en désactivant le plugin associé.
Si toutefois la durée est approximativement arrondie (tel que 30,001s par exemple), ceci pourrait dire que la requête API dépasse un temps d'exécution limite, et ce souvent à cause d'un blocage par pare-feu. Si l'API accède à une ressource qui n'est pas sur le port 80 ou 443 standard, n'oubliez pas de vérifier que la requête est bien autorisé sur le pare-feu du serveur cPanel.
Maintenant, vous savez comment utiliser le plugin gratuit Query Monitor pour identifier l'origine de vos problèmes de lenteurs sur votre site web WordPress. N'hésitez pas à donner vos avis et partager vos questions en commentaire.
Pour aller plus loin
Maintenant, vous savez comment utiliser le plugin gratuit Query Monitor pour identifier l'origine de vos problèmes de lenteurs sur votre site web WordPress. N'hésitez pas à donner vos avis et partager vos questions en commentaire.