Rimuovere le query string dalle risorse statiche

Strumenti come Pingdom, GT Metrix o PageSpeed spesso raccomandano di rimuovere le query string dalle risorse statiche. Tuttavia, questa loro raccomandazione spesso manca di contesto, per cui a volte potrebbe non avere senso e non essere applicabile a certi file URI random.

WP Rocket ti permette di rimuovere le query string con un solo clic:

Tuttavia, non tutte le query string sono create allo stesso modo. Alcune possono essere rimosse, altre potrebbero essere rimosse ma è meglio non farlo per ragioni di sicurezza mentre altre non possono proprio essere eliminate, per evitare problemi di visualizzazione sul sito.

Cache del browser e cache busting

Suggerimento: Leggi questo articolo del nostro blog Browser Caching, Explained In Plain English per capire meglio come funziona la cache del browser.

“Cache busting” è la pratica del non applicare query string agli URI dei file, mantenendo però gli avvisi di modifica dei file per il browser.

Un modo per implementare il cache busting è cambiando semplicemente il nome del file quando un nuovo file viene aggiornato. Il browser cercherà il vecchio file senza trovarlo, rimuovendo così il file precedentemente copiato in cache e scaricando il nuovo file.

Quando WP Rocket rimuove una query string, segue questo concetto: non solo elimina la query string, ma genera una copia del file originale con la query string inclusa nel nome del file.

Esempio:
// URI del file originale con query string:
https://example.com/style.css?ver=1.0

// Copia generata da WP Rocket:
https://example.com/style-1.0.css

I file generati da WP Rocket vengono archiviati in una directory dedicata dentro la cartella della cache:

/wp-content/cache/busting/

Il tuo codice sorgente si vedrà in modo simile a questo, quando l'opzione è attiva:

Non tutte le query strings vengono rimosse, perché?

WP Rocket elimina solo le query string di WordPress in formato ?ver=. Questo come impostazione predefinita.

Alcuni plugin o temi potrebbero usare una query string diversa per applicare una funzionalitĂ  critica. Per esempio, la funzione Photon di Jetpack usa una query string per riconoscere le dimensioni delle immagini. Per cui se WP Rocket rimuovesse tutte le query strings, indistintamente, alcune funzionalitĂ  del sito potrebbero perdersi.

Le query strings su URI esterni (i.e. i file che vengono da altri domini che non siano il tuo) non verranno rimosse a causa delle implicazioni generali della gestione di risorse esterne.

Non usare soluzioni semplificate!

Raccomandiamo caldamente di non rimuovere le query string con un plugin o una funzione che non preveda l'incorporamento del numero di versione nell'URI. Le query string sono fondamentali perché il tuo sito venga visualizzato correttamente, per cui il cache busting deve essere sempre garantito.