martedì 27 settembre 2016

Velocità sito Wordpress: Plugin WP Super Cache o W3 Total Cache?

WP Super Cache è probabilmente uno dei plugin più utilizzati per gestire la cache su siti Wordpress. Oggi vi riporto la mia esperienza con questo plugin e del perchè sono passato a W3 Total Cache.

Fra le cose da fare che ci permettono di velocizzare un sito in Wordpress, possiamo trovare quello di dover installare un buon plugin che ci possa gestire bene la cache. In un primo step WP Super Cache potrebbe essere una delle scelte che abbiamo deciso di usare visto che è presente in tantissime guide Wordpress.

Quando e perchè W3 Total Cache è migliore di WP Super Cache?

Vediamo in breve il motivo per cui ho deciso di disattivare WP Super Cache ed installare W3 Total Cache. Come prima cosa W3 Total Cache ha molte più impostazioni da settare e su questo argomento è possibile trovare moltissime guide utili che ci permettono di configurare il plugin al meglio.

Il problema riscontrato con WP Super Cache, plugin che potrebbe risultare più facile nella configurazione è stato quando si ha un tema responsive che carica elementi differenti quando viene richiesto da mobile.

In caso gli elementi da caricare nella versione Desktop siano gli stessi della versione Mobile, molto probabilmente non vi accorgerete nemmeno dell'errore, ma se invece avete deciso di rendere custom il vostro tema andando a nascondere ad esempio la sidebar, i commenti, i post correlati o altre componenti nella versione per cellulare e tablet, allora potreste accorgervi che la cache non funziona in modo corretto.

Nelle impostazioni di WP Super Cache gli User Agent per il Mobile sono gestiti, ma quando si va a controllare la cartella fisica sul server della cache ecco cosa succede:
  • Vengono generati due file index.html e index-mobile.html e fin qui tutto bene
  • In caso siano presenti tutte e due le copie cache di una pagina potrete notare che la priorità è sempre data alla versione Desktop. Questo errore lo potrete notare se avete un tema che va a nascondere o aggiungere degli elementi nella versione Mobile
  • Secondo errore è che la versione mobile viene generata ogni volta che viene caricata la pagina
Il risultato è che in pratica quando siamo da smartphone non viene caricata la copia cache giusta andando a rallentare la navigazione rispetto alla versione più snella che magari avevamo pensato di mostrare all'utente finale.

Per testare questa cosa il consiglio è quello di:
  • avere un tema responsive che preveda di nascondere o aggiungere oggetti andando a riconoscere l'user-agent (per fare questo vi basterà usare la funzione is_mobile di Wordpress) 
  • aprire tramite FTP il sito in questione e andare nella cartella di Wordpress dove vengono caricate le pagine in cache
  • individuare la cache della pagina che stiamo analizzato e caricarla sia da smartphone che dal PC in modo che la versione index.html e index-mobile.html vegano generate
  • ora provate a vedere se su smartphone ricaricando la pagina viene servita la pagina corretta o vedere se è la stessa che siete abituati a vedere da PC Desktop.
Andando ad installare W3 Total Cache ho testato il tutto allo stesso identico modo ed il risultato visualizzato è stato corretto con la conseguenza di aver velocizzato la risposta del server di almeno il doppio considerando che le visite da mobile sono superiore a quelle desktop.

In pratica prima le pagine mobile non venivano servite in cache con il risultato che il carico sul server era maggiore, come se non ci fosse nemmeno un plugin per la cache. Qui a seguire il risultato dopo il cambio e la configurazione corretta della cache da mobile:

L'idea che mi sono fatto è che per un sito responsive che carica gli stessi contenuti per la versione mobile il problema potrebbe anche non porsi, ma in caso si preveda la disposizione differente di alcuni elementi nella versione Mobile ed usate WP Super Cache sappiate che potreste non visualizzare la versione corretta.

Salvo aggiornamenti successivi, questa è stata la mia esperienza fino a due settimane fa, dove è possibile vedere dal grafico il notevole miglioramento dopo il cambio di plugin: maggiore richieste al sito con una risposta che si è abbassatta fino a toccare i 150 ms.