Che cos'è la cache e perché rende il sito più veloce?
Fare caching significa conservare un risultato, così da non doverlo ricreare o recuperare ogni volta. Senza cache il tuo server ricostruisce ogni pagina per ogni visitatore, anche se non è cambiato nulla; con la cache il visitatore riceve subito il risultato conservato. I livelli sono cinque: la cache del browser, la cache di un CDN, la cache delle pagine, la cache degli oggetti e la cache opcode di PHP. Se una modifica non compare, quasi sempre stai guardando uno di questi livelli.
I cinque livelli, dal visitatore al server
- Cache del browser. Il browser del visitatore conserva in locale immagini, fogli di stile e script. Una seconda pagina del tuo sito si carica così molto più in fretta.
- Cache del CDN. Un CDN come Cloudflare conserva copie dei tuoi file su server vicini al visitatore. Di norma si tratta di file statici come immagini, CSS e JavaScript, non delle pagine stesse.
- Cache delle pagine. Viene conservata la pagina HTML già costruita per intero. Per il visitatore successivo PHP e il database non entrano più in gioco. È il livello che rende di più sui siti che cambiano poco. In WordPress se ne occupa un plugin di cache.
- Cache degli oggetti. Le risposte del database vengono conservate in memoria, di solito con Redis o Memcached. Aiuta soprattutto i siti molto frequentati e i negozi online, dove gli stessi dati vengono richiesti centinaia di volte al minuto.
- Cache opcode. PHP traduce prima ogni script in istruzioni eseguibili. OPcache conserva quella traduzione in memoria, così non va rifatta a ogni richiesta. Non te ne accorgi, se non per il fatto che un file PHP modificato a volte diventa attivo solo poco dopo.
"Non vedo la mia modifica"
La confusione classica. Cambi qualcosa, ricarichi la pagina e non vedi alcuna differenza. Non concludere che la modifica sia fallita: passa in rassegna i livelli, dal più vicino al più lontano:
- Apri la pagina in una finestra privata. Quella finestra parte senza file conservati e senza accesso effettuato. Se lì la modifica la vedi, era la cache del tuo browser.
- Forza un ricaricamento completo: Ctrl+F5 su Windows, Cmd+Shift+R su un Mac. Il browser scarica allora di nuovo tutti i file della pagina.
- Svuota la cache delle pagine del tuo CMS o del plugin di cache. Se la modifica la vedi quando hai effettuato l'accesso e non nella finestra privata, la causa è quasi certamente questa: agli utenti che hanno effettuato l'accesso di norma non vengono servite pagine in cache.
- Svuota la cache del CDN, se ne usi uno. Con Cloudflare puoi svuotare un solo indirizzo oppure tutto.
- Hai modificato un foglio di stile o uno script? Sono quelli che restano più a lungo, perché i browser possono conservarli per settimane. Dai al file un nuovo numero di versione nel nome o dopo il punto interrogativo nell'indirizzo; così ogni browser lo considera un file nuovo.
- Controlla di aver modificato il file giusto. Una modifica fatta in una copia o in un tema non attivo non diventa mai visibile.
Quando svuotare la cache
- dopo una modifica alla grafica, al menu, al piè di pagina o a un widget, perché compaiono in ogni pagina
- dopo un aggiornamento del CMS, del tema o di un plugin
- dopo un trasferimento o il passaggio a https, così nelle pagine conservate non restano vecchi indirizzi
Un buon plugin di cache svuota da solo la pagina che stai modificando. Svuotare ogni volta l'intera cache è controproducente: dopo, il server deve ricostruire tutte le pagine.
Che cosa non va mai in cache
Le pagine che cambiano da visitatore a visitatore: il carrello, la cassa, l'account e i moduli con un codice di sicurezza. Se finiscono nella cache delle pagine, un visitatore vede i dati di un altro, oppure un modulo funziona una volta sola. I plugin di cache di solito escludono da soli le pagine standard di WooCommerce; ricontrolla dopo aver riorganizzato il negozio.
Errori frequenti
- Due plugin di cache insieme. Ciascuno conserva il risultato dell'altro, e lo svuotamento non è mai completo. Scegline uno.
- Usare la cache per nascondere un sito lento. Una pagina che senza cache impiega otto secondi resta lenta per il primo visitatore e per ogni cliente che ha effettuato l'accesso. Cerca prima la causa; vedi perché il mio sito è diventato improvvisamente lento.
Per WordPress l'approccio completo, di cui la cache è solo una parte, è su velocizzare WordPress. Come si misura la velocità lo leggi in che cosa sono i Core Web Vitals.
Domande frequenti
Perdo qualcosa se svuoto la cache?
No. La cache contiene solo copie. Le tue pagine, le immagini e il database restano intatti; le copie vengono ricostruite alla visita successiva.
Come svuoto la cache sul telefono?
Apri la pagina in una scheda privata: è la prova più rapida. Per svuotarla davvero vai nelle impostazioni del browser, alla voce privacy o dati di navigazione. I cookie non serve cancellarli.
La cache DNS è la stessa cosa?
No. La cache DNS ricorda a quale server punta il tuo nome a dominio, non che cosa c'è sulla pagina. Conta solo dopo un trasferimento o una modifica DNS. Vedi perché una modifica DNS a volte ci mette così tanto.
Un sito piccolo ha bisogno della cache?
La cache del browser e la cache opcode aiutano qualsiasi sito, e di norma sono già attive. Una cache delle pagine conviene non appena il sito gira su un CMS. Una cache degli oggetti ha senso solo con molti visitatori, un negozio online o un'area riservata.
Non ci riesci?
Se una modifica resta invisibile dopo aver svuotato ogni livello, mandaci tramite contatto l'indirizzo della pagina e che cosa hai modificato di preciso.