Definizione di cache
Anche senza pensare ai motori di ricerca sai che la velocità di un sito è importante, a nessuno piace aspettare e un sito che impiega troppo tempo per caricarsi, è noioso. Se ti interessa la velocità di un sito avrai sicuramente sentito parlare della cache, in questo articolo proviamo ad affrontare l’argomento partendo dalle basi, dalle definizioni, per poi andare a vedere gli aspetti pratici, cominciamo dalla definizione (secondo wikipedia).
Con il termine cache, in informatica, si indica un’area di memoria estremamente veloce ma solitamente di un basso ordine di grandezza di capacità. Il suo scopo è di velocizzare l’esecuzione dei programmi.
Facciamo solo un piccolo passo indietro e tutto sarà più chiaro.
Il caricamento di una pagina html
La prima volta che un utente visita una pagina di un sito statico il suo browser memorizzerà nella memoria locale una parte del sito, la cache, appunto. Tra gli elementi salvati ci saranno parti di HTML, fogli di stile CSS, immagini e altri elementi del sito. Se il visitatore tornerà a visitare quella pagina il browser non dovrà scaricare di nuovo tutto perchè una parte dei contenuti li ha salvati in precedenza sul disco fisso, nella memoria cache locale, l’effetto sarà che da quel momento in poi la pagina verrà caricata più velocemente. Oltre alla memoria cache del browser c’è anche la cache del server che può migliorare notevolmente le prestazioni di un sito, per capire come funziona dobbiamo vedere tutti i passaggi che si verificano quando un utente visita un sito dinamico, ovvero realizzato con un CMS. In questo esempio faremo riferimento a WordPress ma, mutatis mutandis, quanto vedremo è valido per tutti i CMS.
Quando un sito è costruito con un CMS le pagine HTML non sono già pronte, ma vengono create al volo secondo le istruzioni fornite dal CMS stesso, dai plugin e dal tema. In dettaglio quindi, quando un utente visita un sito fatto in WordPress:
- L’utente scrive nel browser l’indirizzo della pagina che vuole visitare (oppure clicca su un link)
- Il browser manda una richiesta HTTP al web server
- Il server prende in carico la richiesta e chiede al PHP di eseguirla
- Il PHP chiede al database tutti i contenuti che gli servono per generare quella pagina
- Il database risponde e fornisce i dati
- Il PHP genera il codice HTML
- Il PHP restituisce l’HTML e tutte le altre informazioni al web server
- Il server invia le informazioni e l’HTML al browser
- Il browser impagina e mostra la videata all’utente
La cache del browser interviene sono per gli ultimi punti e solo per quello specifico utente, un sistema di cache basato sul server interviene in un modo differente.
In generale un sistema di cache il server quando arriva al punto 7 che abbiamo visto sopra, invece di limitarsi a restituire l’HTML al browser dell’utente ne salva una copia in locale, in questo modo se un altro utente vorrà visitarla non dovrà più interrogare il PHP e il database ma avrà già tutto pronto. L’effetto è che il carico di lavoro del server si riduce notevolmente e il sito risulta più veloce, quasi come se fosse un sito statico, realizzato direttamente in HTML. Tutto chiaro? Tutto bello? Ovviamente ci sono delle controindicazioni.
Il motivo per cui si usano i CMS (e il PHP in generale) è che noi non vogliamo avere un sito statico, vogliamo poterlo aggiornare con semplicità e vogliamo che gli utenti vedano gli aggiornamenti che abbiamo pubblicato. Per questo motivo entrano in gioco delle regole, il meccanismo non è troppo complicato anzi, è logico.
Anche nel sito più dinamico del mondo ci sono delle cose che non cambiano spesso. Per esempio il logo, i fogli di stile CSS, una gran parte delle immagini… Le regole che si usano cercano di separare le parti statiche da quelle dinamiche e usare le cache soprattutto per quello che viene aggiornato con minor frequenza.
La cache per WordPress
Solo per dover di cronaca, prima di passare a WordPress facciamo una doverosa premessa. Esistono software che funzionano come cache a livello di server, indipendentemente dal CMS utilizzato. Noi usiamo Nginx ma è molto usato anche Varnish.
Esistono dei plugin per WordPress che gestiscono la cache del CMS, hanno tutti dei lati positivi e negativi e la configurazione può essere un po’ complicata, affronteremo l’argomento in un articolo più approfondito nei prossimi mesi, qui ci limiteremo ad elencare i più diffusi. E’ importante sapere che i migliori tra questi plugin rendono WordPress più veloce cercando di ottimizzare sia la cache del browser sia la cache del server.
W3 Total Cache
Questo plugin vanta più di un milioni di installazioni, viene aggiornato con regolarità e già nella versione gratuita offre notevoli benefici. Non è uno dei più semplici da configurare e neppure quello che offre i miglioramenti più spettacolari, ha il vantaggio di riuscire a convivere correttamente con molti popolari plugin, senza creare conflitti. Il plugin è disponibile a questo indirizzo.
WP Super Cache
Altro plugin molto popolare, vanta più di due milioni di installazioni. E’ sviluppato da Automattic, i geniacci che gestiscono wordpress.com, woocommerce, Jetpack e tantissimo di quello che è oggi il web, questo garantisce un ottimo livello di compatibilità, almeno con gli strumenti base di WordPress, maggiori informazioni a questo indirizzo.
WP Rocket
Secondo alcune ricerche comparate è il plugin che può offrire e in effetti anche noi abbiamo riscontrato ottimi risultati in una particolare installazione, esiste solo la versione a pagamento che, per un singolo sito, costa 50 dollari all’anno, questo il sito del plugin.
WP Fastest Cache
Anche questo è un plugin molto diffuso, con più di un milione di installazioni, e molto frequentemente aggiornato. E’ anche uno dei più semplici da installare e configurare, almeno nelle opzioni di base. Anche WP Fastest Cache è disponibile su wordpress.org.
Hyper Cache
Hyper Cache è ancora disponibile per lo scaricamento e l’installazione su wordpress.org (oppure direttamente dal backend di WordPress) ma ci sentiamo di sconsigliarlo anche senza averlo mai provato: risulta installato da solo 20.000 utenti (per un plugin di questo tipo è un numero molto basso, inoltre sembra essere stato abbandonato, non riceve aggiornamenti da parte dello sviluppatore da più di un anno.
Comet Cache
Anche Comet Cache è un plugin che sembra essere stato abbandonato dagli sviluppatori, si trova ancora su wordpress.org ma non riceve aggiornamenti da più di due anni, a meno di grosse novità non è il caso di utilizzarlo.
Cachify
Questo plugin è tecnicamente interessante dato che, come spiegato dagli sviluppatori, è in grado di adattarsi al tipo di server e alla sua configurazione. E’ in grado di usare Memcache, Nginx o APC riconoscendo l’ambiente in cui è stato installato ma, al momento in cui scriviamo, non riceve aggiornamenti da otto mesi. E’ comunque disponibile su wordpress.org dove risulta installato da 10.000 utenti.
Simple Cache
Disponibile su wordpress.org, al momento in cui scriviamo questo plugin risulta aggiornato 5 mesi fa e installato 5.000 volte. Lo abbiamo provato ed effettivamente è semplicissimo da configurare, tenendo fede al suo nome; dovremo approfondire meglio per misurarne i benefici e valutarne eventuali controindicazioni, cosa che ci ripromettiamo di fare in un prossimo articolo.
Conclusioni
La velocità di un sito è importante e deve essere attentamente valutata. La cache del browser e quella del server sono due tra le tecnologie che permettono di migliorare. Per chi gestisce un sito con WordPress ci sono plugin che permettono di migliorare le prestazioni senza richiedere competenze tecniche di altissimo livello.
Lascia un commento