Debugging WordPress con Query Monitor

Cos’è Query Monitor e perché usarlo

Query Monitor è un plugin di debugging per WordPress che fornisce informazioni dettagliate su ogni aspetto del funzionamento del sito. A differenza di altri strumenti, non richiede configurazioni complesse e funziona immediatamente dopo l’attivazione. È lo strumento preferito da sviluppatori e site builder professionisti per identificare colli di bottiglia, errori nascosti e conflitti tra plugin.

Il plugin si integra direttamente nella barra di amministrazione di WordPress e nella barra front-end, rendendo accessibili decine di pannelli informativi senza mai lasciare il sito. È compatibile con la maggior parte degli hosting e non richiede modifiche al server.

Installazione e attivazione

L’installazione di Query Monitor avviene come per qualsiasi plugin WordPress. Dal backend, naviga in Plugin > Aggiungi nuovo e cerca “Query Monitor”. Il plugin è sviluppato da John Blackbourn e compare tra i primi risultati. In alternativa, scarica il pacchetto da WordPress.org e caricalo manualmente.

Dopo l’attivazione, noterai una nuova voce nella barra di amministrazione in alto, etichettata con il nome del plugin e un indicatore numerico colorato. Il colore dell’indicatore varia in base al numero di query eseguite sulla pagina corrente: verde per siti ottimizzati, giallo/arancione per situazioni critiche, rosso quando qualcosa non va.

Query Monitor è visibile solo agli utenti con permessi di amministratore. Per usarlo, devi aver effettuato l’accesso al sito. Se lavori in ambiente di staging, hai il vantaggio di poterlo tenere attivo permanentemente senza impattare gli utenti finali.

Primo utilizzo: esplorare l’interfaccia

Cliccando sulla voce Query Monitor nella barra, si apre un pannello a comparsa che elenca tutte le sezioni disponibili. La prima cosa da notare è la colonna di sinistra, che raggruppa le categorie principali: Queries, Hooks & Actions, HTTP Requests, Scripts & Styles, Languages, PHP Errors, Redirections, e molte altre.

Ogni sezione può essere espansa per mostrare i dettagli specifici. Il pannello si chiude cliccando nuovamente sull’icona o premendo ESC. Puoi anche lasciarlo aperto mentre navighi nel backend o nel front-end: si aggiorna automaticamente a ogni pagina.

Analizzare le query database

La sezione “Queries” è probabilmente la più utilizzata. Mostra ogni singola query SQL eseguita per generare la pagina corrente, complete di tempo di esecuzione, componente chiamante (plugin, tema, WordPress core) e file sorgente.

Con Query Monitor puoi identificare immediatamente:

  • Query lente (evidenziate in giallo/rosso)
  • Query duplicate eseguite più volte senza caching
  • Plugin o temi che eseguono troppe query non necessarie
  • Chiamate a wpdb non ottimizzate

Per ridurre il numero di query, controlla se i tuoi plugin supportano il caching persistente (Memcached, Redis). Se vedi decine di query per meta post, considera l’uso di plugin come “Post Meta Inspector” per verificare se qualche funzionalità sta leggendo metadati in modo inefficiente.

Filtrare e ordinare le query

Il pannello delle query supporta filtri avanzati. Puoi cercare per tipo di query (SELECT, INSERT, UPDATE, DELETE) e ordinare per tempo di esecuzione o per chiamante. Questo è particolarmente utile quando devi analizzare una pagina che carica centinaia di query e vuoi isolare quelle problematiche.

Un esempio pratico: se la home page esegue 150 query di cui 90 sono SELECT da un plugin di slider, sai esattamente quale componente ottimizzare o sostituire.

Debugging di script e stili

La sezione “Scripts & Styles” elenca tutti i file CSS e JS caricati sulla pagina, mostrando dipendenze, versioni e dimensione di ogni file. Puoi vedere immediatamente quali script bloccano il rendering, quali vengono caricati in footer e quali hanno dipendenze non risolte.

Query Monitor mostra anche gli handle (nomi univoci) di ogni script e stile, consentendoti di rimuoverli o spostarli selettivamente usando wp_dequeue_script() e wp_dequeue_style() nel tuo functions.php. È uno strumento indispensabile per ottimizzare il caricamento delle risorse.

Identificare conflitti tra plugin

I conflitti tra plugin sono una delle cause più comuni di malfunzionamenti in WordPress. Query Monitor aiuta a diagnosticarli in diversi modi:

  • PHP Errors: mostra errori, warning e notice generati da ogni plugin
  • Hooks & Actions: visualizza l’ordine di esecuzione degli hook, permettendo di capire se un plugin sta sovrascrivendo le azioni di un altro
  • HTTP Requests: se un plugin effettua richieste HTTP esterne che falliscono, le vedi qui

Per isolare un conflitto, disattiva tutti i plugin tranne Query Monitor, poi riattivali uno alla volta controllando il pannello dopo ogni riattivazione. Quando il problema ricompare, hai identificato il colpevole.

Richiedere richieste HTTP e AJAX

La sezione “HTTP Requests” elenca tutte le richieste esterne effettuate dalla pagina. Include il metodo (GET, POST), l’URL, il tempo di risposta e il codice di stato. Richieste lente o fallite verso API esterne possono rallentare drammaticamente il caricamento delle pagine.

Per il debugging AJAX, Query Monitor cattura tutte le chiamate AJAX effettuate tramite admin-ajax.php e WooCommerce. Ogni chiamata è analizzata separatamente, mostrando query eseguite, errori PHP e tempo di esecuzione. È particolarmente utile per debug di carrelli WooCommerce lenti o form di contatto che non rispondono.

Memoria e performance

Il pannello principale mostra anche l’utilizzo di memoria (in MB) e il tempo di caricamento della pagina. Questi dati sono aggiornati a ogni richiesta e ti permettono di monitorare l’impatto di ogni modifica in tempo reale.

Un sito WordPress ottimizzato dovrebbe consumare meno di 40 MB di memoria per pagina e caricarsi in meno di 500 ms a livello server. Valori superiori indicano che qualche componente sta usando troppe risorse.

Query Monitor in ambienti di staging

Per ambienti di staging, Query Monitor può essere configurato per essere sempre attivo e visibile. Non c’è alcun impatto sulle performance degli utenti finali poiché il plugin si attiva solo per gli amministratori loggati. Usalo durante lo sviluppo per verificare l’impatto di ogni modifica prima di pubblicarla in produzione.

Se lavori con più sviluppatori, considera di forzare l’attivazione di Query Monitor via mu-plugin per avere un ambiente di sviluppo standardizzato. Crea un file nella cartella wp-content/mu-plugins/ che includa il plugin automaticamente.

Conclusione

Query Monitor è uno strumento essenziale per chiunque sviluppi o gestisca siti WordPress professionalmente. Con la sua interfaccia chiara e la mole di informazioni tecniche che mette a disposizione, trasforma il debugging da attività frustrante a processo sistematico e risolvibile. Installalo oggi stesso e inizia a esplorare i pannelli: ogni sezione ti insegnerà qualcosa di nuovo sul funzionamento del tuo sito.

Leave a Reply