Di recente abbiamo ricevuto una domanda da un cliente frustrato dal fatto che il suo sito impieghi molto tempo a caricarsi. Possiamo capire questa sensazione… ci siamo passati tutti: state navigando sul web e poi, all’improvviso, ci vuole un’eternità per caricare un’altra pagina! Ma perché succede? E come possiamo risolvere il problema?

L’uso della cache è un ottimo modo per velocizzare il sito.

Uno dei metodi più semplici è l’aggiunta di un’intestazione expires alle pagine HTML. In questo modo, i browser non richiederanno altri file al server fino a quando non sarà trascorsa una certa data.

L’uso della cache è un modo semplice per migliorare le prestazioni del sito e assicurarsi che le pagine del sito vengano caricate più velocemente.

Come funziona la cache?

  • è un archivio di contenuti.
  • memorizza i contenuti del server, come immagini, video e altre risorse necessarie per il caricamento rapido del sito web. È importante capire che la cache non memorizza solo le risorse del vostro sito, ma anche quelle di tutti i siti che visitate sul web. Quindi, se si caricano tre siti web diversi in un giorno, ognuno di essi avrà i propri dati memorizzati nella cache finché non la si cancella manualmente o accidentalmente.
  • Il browser dispone anche di un proprio archivio locale (l’oggetto “localStorage”) in cui memorizza le preferenze dell’utente, i cookie e altre informazioni, come le password salvate, quando si visitano le pagine web senza collegarle al server in cui sono state originariamente ospitate. Quando questi oggetti scadono dopo essere rimasti inattivi per troppo tempo (di solito 30 giorni), vengono rimossi anche da localStorage, ma rimangono comunque nella cache del browser finché non vengono cancellati manualmente o eliminati accidentalmente nel corso del tempo a causa della mancanza di utilizzo (facilità con cui gli utenti dimenticano).

Cos’è la cache, tecnicamente?

Memorizzare i dati sul server e mantenerli fino a quando non vengono apportate modifiche si chiama “caching lato server“. Questo può essere fatto con un software integrato o utilizzando strumenti aggiuntivi di terze parti come Varnish cache, Redis, ecc.

Memorizzare i dati sul lato client e sbarazzarsene una volta che diventano stantii (più vecchi di X ore) è chiamato “caching lato client“. In genere, questo viene fatto con librerie JavaScript come jQuery Storage API o con il supporto localStorage/WebSQL integrato nei browser come parte delle specifiche HTML5 (per saperne di più, si veda più avanti).

browser Cache

Cosa c’è nella cache?

La cache è un file sul server che memorizza una copia della pagina, o parte di essa. Ciò consente di servire più velocemente le pagine agli utenti che le hanno già visualizzate in precedenza (senza doverle caricare da zero).

I tipi più comuni sono:

  • Cache di memoria, che memorizza i dati nella RAM. Queste scadono quando il sistema viene riavviato, ma possono essere facilmente reinizializzate richiedendone il contenuto tramite una chiamata API o un parametro di query string dell’URL.
  • Archivi su disco, che possono essere mappati in memoria o memorizzati indipendentemente l’uno dall’altro e dai processi in esecuzione, in modo da preservarne il contenuto anche dopo i riavvii e gli arresti anomali del sistema (se configurati correttamente). Questi sono spesso definiti “appiccicosi”, perché tendono a non disperdersi nel tempo, a meno che non vengano specificamente sfrattati da qualche altro processo che tenta di ottenere i diritti di accesso a tale spazio di risorse all’interno dell’architettura della macchina sottostante l’applicazione web.

Come mantenere una cache fresca?

La cache può essere implementata in diversi modi. I più diffusi sono i plugin supportati dal database, come WP Rocket, WP Super Cache, W3 Total Cache e Fastest Cache, ma se cercate nella directory dei plugin di WordPress, potreste trovare qualcosa che si adatta meglio alle vostre esigenze.

Il segreto è assicurarsi che sia sempre aggiornata. A tale scopo, è possibile assicurarsi che tutti i contenuti dinamici del sito vengano memorizzati nella cache e cancellati ogni volta che è necessario (ad esempio, quando ci sono nuovi post o commenti), nonché disabilitare la cache per pagine o tipi di post specifici (come i risultati della ricerca).

Durata

Quando si tratta di determinare la durata, la domanda più ovvia è “Per quanto tempo devo mettere in cache i miei contenuti?“. A questa domanda si può rispondere solo dopo aver considerato il tipo di contenuto del sito e la frequenza con cui cambia.

  • Contenuto dinamico: La prima cosa da considerare è se il contenuto del sito è dinamico o statico. Se si tratta di contenuti dinamici, è consigliabile impostare una durata più breve per il caching, perché gli utenti vedranno informazioni non aggiornate nelle schede del browser non appena aggiorneranno la pagina. Una buona regola è impostare la durata della cache per le pagine con aggiornamenti frequenti (come i siti di notizie) a circa 15 minuti o meno. Se esistono più versioni di questo tipo di pagine, ad esempio se avete versioni separate per i dispositivi mobili e per i desktop, allora ogni versione dovrebbe avere una durata di cache distinta (ad esempio “News – Mobile” e “News – Desktop”).
  • Contenuto statico: I siti con pagine statiche in genere traggono vantaggio da durate più lunghe, poiché gli utenti probabilmente non le visiteranno con la stessa frequenza; tuttavia, è necessario un qualche tipo di soglia in cui gli utenti non trovino dati vecchi quando visitano di nuovo quelle pagine in un secondo momento. Per esempio, se non c’è motivo di rivisitare un articolo, a meno che non sia successo qualcosa di importante da allora (come uno scandalo governativo), allora forse ha senso mantenere questa pagina in cache in modo permanente, anche se aggiorniamo regolarmente altre parti”.

La cache può memorizzare anche i dati di utenti anonimi.

Avrete notato che la cache può impazzire quando si tratta di memorizzare i dati di utenti anonimi. Sta solo tenendo traccia di tutti i vostri visitatori, ricordate? Allora perché memorizza così tanti dati per gli utenti che non hanno effettuato l’accesso al vostro sito?

Perché glielo avete detto voi! Quando si imposta la cache, si può scegliere per quanto tempo la cache conserverà le voci prima che scadano. Se un utente visita una pagina anonima e riceve alcuni contenuti dalla CDN (Content Delivery Network), poi se ne va senza effettuare il login, la sua voce rimarrà nella cache fino alla scadenza. Quindi, se tornerà domani, otterrà di nuovo la vecchia copia anziché qualcosa di nuovo!

Un sito veloce non è una “chimera”!

La velocità è la parte più importante di un sito. Nessuno vuole aspettare il caricamento di una pagina e se volete che i vostri utenti tornino, la velocità è la strada da seguire.

La cache può aiutarvi a velocizzare il vostro sito e a renderlo più efficiente nel servire i contenuti, anche quando molte persone vi accedono contemporaneamente e può essere utilizzata sia per gli utenti anonimi che per quelli registrati, quindi vale la pena di valutare se la cache può essere utile o meno alla vostra applicazione.

In sintesi, è un ottimo modo per velocizzare il vostro sito. Soddisfa i visitatori e può persino migliorare la vostra SEO.