Parmi les outils indispensables au développement WordPress, Query Monitor occupe une place à part. Cette extension gratuite ajoute une barre d’administration détaillée qui révèle en temps réel ce qu’un site fait vraiment : requêtes SQL exécutées, hooks déclenchés, temps de génération de la page, appels HTTP sortants, erreurs PHP. Peu d’outils offrent une vision aussi complète sans configuration lourde.
Cet article ne se contente pas de présenter l’extension : il détaille les panneaux les plus utiles au quotidien, et la façon de les lire pour en tirer un vrai diagnostic, pas juste des chiffres bruts.
Installer et activer Query Monitor sans risque
Query Monitor s’installe comme n’importe quelle extension, depuis le catalogue officiel ou via WP-CLI :
wp plugin install query-monitor --activate
Un point important : Query Monitor ne doit jamais rester actif sur un environnement de production accessible publiquement, car il expose des informations techniques détaillées (requêtes SQL, chemins serveur) à quiconque a les droits suffisants pour voir la barre. L’extension limite cependant nativement son affichage aux utilisateurs disposant de la capacité manage_options, ce qui réduit le risque sans l’éliminer totalement.
Le panneau Queries : repérer les requêtes coûteuses
C’est le panneau le plus consulté. Il liste chaque requête SQL exécutée sur la page, avec son temps d’exécution et la fonction PHP qui l’a déclenchée. Deux signaux méritent l’attention :
- Un nombre total de requêtes anormalement élevé pour une simple page de contenu (au-delà d’une cinquantaine, en général, quelque chose mérite d’être creusé)
- Des requêtes identiques répétées plusieurs fois, souvent le signe d’une absence de mise en cache ou d’une boucle mal optimisée appelant
get_post_meta()ou une requête similaire à chaque itération
Le panneau permet aussi de filtrer les requêtes par composant (thème, extension, cœur de WordPress), ce qui aide à identifier précisément quelle partie du code est responsable d’une lenteur.

Le panneau Hooks & Actions : comprendre l’exécution réelle
Ce panneau liste tous les hooks déclenchés sur la page, avec les fonctions accrochées à chacun d’eux et leur priorité d’exécution. C’est particulièrement précieux pour déboguer un conflit entre deux extensions qui s’accrochent au même filtre : la liste révèle l’ordre exact d’exécution, souvent la clé du problème.
// Exemple de conflit typique repérable dans ce panneau :
// une extension A retire un filtre ajouté par une extension B,
// mais s'exécute avant que B ne l'ait ajouté
add_action( 'init', array( $extension_a, 'nettoyer_filtres' ), 5 );
add_action( 'init', array( $extension_b, 'ajouter_filtres' ), 10 );
Dans cet exemple, l’ordre des priorités (5 avant 10) fait que le nettoyage s’exécute avant l’ajout, ce qui rend l’opération inopérante. Ce genre de bug d’ordre d’exécution est très difficile à repérer sans un outil qui liste explicitement l’ordre réel.
Le panneau Capability Checks
Chaque appel à current_user_can() effectué sur la page est enregistré ici, avec le résultat (autorisé ou refusé) et le contexte. C’est un excellent moyen de vérifier qu’une vérification de droits fonctionne comme prévu, sans avoir à ajouter de trace manuelle dans le code pour le confirmer.
Le panneau HTTP API Calls
Un site WordPress qui interroge une API externe (un service de paiement, une passerelle d’envoi d’emails, un flux RSS tiers) le fait via wp_remote_get() ou wp_remote_post(). Ce panneau liste chacun de ces appels, avec leur temps de réponse. Un appel HTTP externe lent, bloquant le chargement de la page tant qu’il n’est pas résolu, est une cause fréquente de lenteur difficile à diagnostiquer autrement.
Utiliser Query Monitor en ligne de commande
Sur un environnement de développement local sans interface graphique accessible facilement, Query Monitor propose aussi une sortie compatible avec la console du navigateur et les outils de développement, mais reste avant tout pensé pour une utilisation via l’interface d’administration classique.
Bonnes pratiques d’utilisation
- Ne jamais laisser Query Monitor actif sur un environnement de production public
- Vérifier le panneau Queries après chaque ajout d’extension, pour repérer une éventuelle explosion du nombre de requêtes
- Utiliser le panneau Hooks & Actions en priorité lors d’un conflit entre deux extensions
- Combiner Query Monitor avec
WP_DEBUG_LOGpour une vision complète : l’un montre le comportement en temps réel, l’autre garde une trace persistante
Avant de soupçonner un problème d’hébergement face à un site lent, un tour par le panneau Queries de Query Monitor règle souvent la question en quelques secondes.
En résumé
Query Monitor n’est pas un simple outil de débogage parmi d’autres : c’est une fenêtre directe sur le fonctionnement réel d’un site WordPress, requête par requête, hook par hook. Bien utilisé, en particulier lors de l’intégration d’une nouvelle extension ou du diagnostic d’une lenteur, il fait gagner un temps considérable par rapport à une investigation à l’aveugle dans le code.