Quando prendiamo in considerazione le prestazioni di WordPress, viene proposta spesso una domanda, e cioè come rimuovere le query string dalle risorse statiche. I file CSS e JavaScript di solito riportano la versione del file alla fine delle loro URL, come domain.com/style.css?ver=4.6. Alcuni server e server proxy non sono in grado di memorizzare le query string, anche se è presente un header cache-control:public.

Quindi, rimuovendo le query string, è possibile migliorare il caching. Ciò eliminerà anche l’avviso che vedete in GTMetrix e Pingdom chiamato “Remove query strings from static resources”.

Rimuovere le Query String dalle Risorse Statiche
Rimuovere le Query String dalle Risorse Statiche

Si tenga presente che le query string ci sono per un motivo preciso. L’aggiunta delle versioni sui file viene utilizzata dagli sviluppatori di WordPress per aggirare i problemi di caching. Ad esempio, se pubblicano un aggiornamento del file style.css da ?ver=4.6 a ?ver=4.7, questo sarà considerato come un URL completamente nuovo, e non sarà cercato nella cache. Se rimuovete le query string e aggiornate un plugin, invece, ciò potrebbe comportare il mantenimento della versione presente nella cache. In alcuni casi, questo potrebbe interrompere il front-end vostro sito fino alla scadenza delle risorse della cache o alla cancellazione della cache.

Le query string vengono utilizzate anche per l’organizzazione dei flussi di lavoro nel processo di sviluppo.

Rimuovere le Query String dalle Risorse Statiche

Esistono un paio di modi diversi per rimuovere le query string, una prevede una piccola stringa di codice e l’altra un plugin di WordPress. Se si utilizza una CDN per consegnare le risorse, questo potrebbe non essere necessario, in quanto alcuni provider CDN hanno in realtà la possibilità di memorizzare nella cache le query string. Verificate con i vostro host e provider CDN prima di implementare quanto segue per vedere se possono memorizzare nella cache le query string. Il CDN di Kinsta crea una cache per le query string.

  1. Rimuovere le Query String dalle Risorse Statiche con il codice
  2. Rimuovere le Query String dalle Risorse Statiche con un plugin

1. Rimuovere le Query String dalle Risorse Statiche con il codice

Potete rimuovere facilmente le query string dagli asset con poche righe di codice. Dopo aver fatto un backup del vostro sito, create un tema child e aggiungete quanto segue al file functions.php del vostro tema child.

function remove_query_strings() {
if(!is_admin()) {
add_filter('script_loader_src', 'remove_query_strings_split', 15);
add_filter('style_loader_src', 'remove_query_strings_split', 15);
 }
}
function remove_query_strings_split($src){
 $output = preg_split("/(&ver|\?ver)/", $src);
 return $output[0];
}
add_action('init', 'remove_query_strings');

Importante! La modifica del codice sorgente di un tema WordPress potrebbe interrompere il vostro sito se non eseguita correttamente. Se non vi sentite sicuri a fare queste modifiche, contattate uno sviluppatore. In alternativa, potete usare il plugin gratuito Code Snippets, che vi permette di aggiungere del codice senza dovervi preoccupare di mettere offline il vostro sito.

Create un nuovo snippet e aggiungete il codice di cui sopra. Selezionate “Only run on site front-end” e salvate. Le vostre query string spariranno! Potrebbe essere necessario svuotare la cache sul vostro sito WordPress per vedere le modifiche lato front-end.

Snippet per rimuovere le query string
Snippet per rimuovere le query string

Con Query String (Prima del Codice)

Ecco un esempio di script che caricano con le query string.

Richieste con query string
Richieste con query string

Senza Query String (Dopo il Codice)

Ecco un esempio di come caricano gli script dopo aver rimosso le query string.

Richieste senza query string
Richieste senza query string

2. Rimuovere le Query String dalle Risorse Statiche con un plugin

Un’alternativa all’uso del codice è quella di utilizzare un plugin per le prestazioni di WordPress che integra questa funzione. Il plugin premium Perfmatters (sviluppato da un membro del team di Kinsta), permette di rimuovere le query string dalle risorse statiche con un semplice clic. Permette anche di implementare facilmente altre ottimizzazioni per il vostro sito WordPress, e funziona a fianco del vostro attuale plugin di cache.

Rimozione delle query string con il plugin Perfmatters
Rimozione delle query string con il plugin Perfmatters

Niente Più Query String

Dopo aver usato una delle opzioni descritte sopra, non dovreste più vedere un avviso sulle query string nei tool di test della velocità dei siti web come GTMetrix o Pingdom.

Risoluzione dell’avviso “Remove query strings from static resources“
Risoluzione dell’avviso “Remove query strings from static resources“