Vai al contenuto

Impostazioni cookie

Scelga per ogni tipo quali cookie consente. Può modificare la sua scelta in qualsiasi momento tramite Impostazioni cookie in fondo a ogni pagina. Informativa sulla privacy

Necessari

Sempre attivi

Servono per accedere, conservare il carrello e ricordare le sue scelte. Sono sempre attivi.

Quali cookie?
  • weboke_sessie, weboke_klant, weboke_remember: la sua sessione e la permanenza dell'accesso
  • weboke_basket: il suo carrello
  • wkBtwIncl: visualizzazione dei prezzi con o senza IVA
  • wok_cookies: la sua scelta sui cookie, 12 mesi

Misurano quale annuncio porta a una visita o a un ordine, così non paghiamo annunci che non funzionano.

Quali cookie?
  • Google Ads tramite Google Tag Manager (_gcl_au, _gcl_aw), fino a 90 giorni
  • OpenAI Ads, annunci in ChatGPT
  • wok_aff: tramite quale partner è arrivato da noi (programma di affiliazione), 60 giorni

4,6

Paese e lingua

Ogni paese ha il suo sito, con i prezzi e l'IVA di quel paese.

Vedi

Modulo 6 · 6.2

Caching

Modulo 6: Velocità · Tempo di lettura: 9 minuti

Obiettivo della lezione: Dopo questa lezione saprà spiegare quali tipi di cache esistono e impostare e verificare correttamente una cache della pagina.

Concetti chiave: cache della pagina, cache del browser, Cache-Control, cache degli oggetti, Redis, OPcache, CDN, plugin di cache, LiteSpeed Cache, eccezioni (accesso effettuato, carrello, checkout), svuotare la cache, plugin di cache doppi

Cache: non fare due volte lo stesso lavoro

Una cache conserva il risultato di un lavoro, in modo che la volta successiva non debba essere rifatto. Su un sito WordPress esistono quattro punti in cui questo avviene, dal più grande al più piccolo:

TipoCosa viene conservatoDoveEffetto
Cache della paginaL'HTML completo di una paginaSul server (o presso un CDN)Il guadagno maggiore: PHP, plugin e database vengono saltati
Cache del browserFogli di stile, script, immagini, fontNel browser del visitatoreUna seconda pagina si carica più velocemente, perché i file sono già presenti
Cache degli oggettiRisultati delle query al databaseNella memoria del server (Redis, Memcached)Aiuta dove la cache della pagina non può intervenire, come per gli utenti con accesso effettuato e i negozi online
OPcacheIl codice PHP già tradottoNella memoria di PHPPHP non deve rileggere i file a ogni richiesta; è attiva di default presso la maggior parte dei provider di hosting

La cache della pagina

La lezione 1.2 lo ha mostrato: senza cache, WordPress ricrea l'intera pagina a ogni visita. Con una cache della pagina, il primo visitatore la genera e i successivi ricevono l'HTML salvato. Un TTFB di un secondo può così scendere a qualche centesimo di secondo, e il Suo piano può gestire molti più visitatori contemporaneamente.

Il modo in cui ottiene una cache della pagina dipende dal Suo server web:

  • LiteSpeed (molti hosting condivisi, tra cui WebOké): il server web dispone già di una cache propria. Il plugin gratuito LiteSpeed Cache la gestisce da WordPress: quali pagine possono entrare in cache, quando vengono svuotate. Poiché la cache si trova nel server web, PHP non viene nemmeno avviato per una pagina salvata.
  • Apache o nginx: un plugin di cache che salva l'HTML come file, come WP Super Cache, W3 Total Cache o un plugin a pagamento come WP Rocket. Oppure una cache gestita dal provider di hosting a livello di server.
  • Hosting WordPress gestito: spesso dispone di una cache propria; in questo caso di norma non si installa un plugin di cache.

Ne scelga uno solo. Due plugin di cache contemporaneamente (ad esempio LiteSpeed Cache e WP Rocket) si intralciano a vicenda: lavoro doppio, pagine che non vengono svuotate, errori strani. Su un server LiteSpeed, LiteSpeed Cache lavora con la cache del server web; un altro plugin di cache non può farlo.

Cosa non deve entrare nella cache

Una cache della pagina fornisce a tutti lo stesso HTML. Questo crea problemi con le pagine che sono diverse per ogni visitatore:

  • utenti con accesso effettuato (la barra di amministrazione, "Ciao, Lisa");
  • il carrello, il checkout e Il mio account in un negozio online;
  • pagine con un modulo con un codice monouso (nonce), che scade dopo un certo tempo;
  • pagine che mostrano contenuti diversi in base a posizione, lingua o un cookie.

I buoni plugin di cache escludono automaticamente gli utenti con accesso effettuato e le note pagine di WooCommerce. Con altri plugin (un'area riservata ai membri, un sistema di prenotazione) deve impostare Lei stesso le eccezioni. Il segnale che qualcosa non va: un visitatore vede il carrello di qualcun altro, oppure un modulo restituisce "scaduto" o "richiesta non valida".

Svuotare: quando la cache è obsoleta?

Se modifica una pagina, la versione salvata deve essere eliminata. I plugin di cache, al salvataggio di un articolo, di norma svuotano quella pagina, la homepage e gli archivi. In caso di modifica al menu, al tema o a un widget, spesso è necessario svuotare l'intera cache. Se dopo una modifica vede ancora la versione precedente, svuoti la cache (nella barra di amministrazione del plugin di cache) e verifichi in una finestra privata, in modo che la Sua cache del browser personale non interferisca.

La cache del browser

Il server comunica al browser, tramite intestazioni, per quanto tempo può conservare un file:

cache-control: public, max-age=31536000

Questo significa: lo conservi per un anno. Per fogli di stile, script, font e immagini, un tempo lungo va benissimo, perché WordPress, in presenza di una nuova versione, aggiunge un diverso ?ver= dopo l'indirizzo, e il browser lo considera quindi un file nuovo. Per l'HTML stesso è invece comune un tempo breve (o nessuno), in modo che i visitatori vedano rapidamente le modifiche.

Molti provider di hosting e plugin di cache gestiscono questo aspetto automaticamente. Nell'esercizio di questa lezione lo verificherà.

Cache degli oggetti e Redis

Una cache della pagina non aiuta per gli utenti con accesso effettuato né per il carrello. In questo caso aiuta una cache degli oggetti: WordPress conserva il risultato delle query al database in memoria, in un programma come Redis o Memcached. La volta successiva che arriva la stessa richiesta, WordPress recupera la risposta dalla memoria anziché dal database.

Questo è particolarmente utile per negozi online, siti con area membri e siti con molti redattori con accesso effettuato. Per un normale sito informativo con una cache della pagina, la differenza è minima. Una cache degli oggetti richiede che il Suo provider di hosting offra Redis o Memcached; la attiva poi con un plugin (LiteSpeed Cache lo supporta, esistono anche plugin dedicati).

Una CDN

Una CDN (content delivery network) è una rete di server dislocati in molti punti del mondo che conservano copie dei Suoi file (e a volte delle Sue intere pagine). Un visitatore li riceve dal server più vicino. Questo aiuta soprattutto con visitatori lontani e con molto traffico. Per un sito europeo con visitatori europei su un server europeo, il guadagno è minimo. Una CDN con proxy (come Cloudflare) modifica anche il Suo DNS e il Suo certificato (corso DNS lezione 7.5); non lo faccia senza capire cosa comporta.

In pratica: come si presenta in un pannello

Come esempio utilizziamo LiteSpeed Cache su un server LiteSpeed. Altri plugin di cache hanno impostazioni simili con nomi diversi.

  1. Installi e attivi LiteSpeed Cache in Plugin > Aggiungi nuovo plugin.
  2. Apra LiteSpeed Cache > Cache: "Abilita cache" è attivo, "Cache utenti con accesso effettuato" è disattivato (a meno che non sappia bene cosa sta facendo).
  3. In caso di negozio online: verifichi in Escludi che carrello, checkout e Il mio account siano presenti (con WooCommerce avviene automaticamente).
  4. Lasci disattivati inizialmente gli altri componenti (ottimizzazione di CSS e JavaScript, immagini). Li attivi uno alla volta e testi dopo ogni passaggio: proprio questi componenti talvolta compromettono un tema.
  5. Verifichi in una finestra privata con gli strumenti di sviluppo (F12, Network, prima richiesta): al secondo caricamento dovrebbe comparire x-litespeed-cache: hit.

Riepilogo

  • Esistono quattro tipi di cache: pagina (il guadagno maggiore), browser, oggetti e OPcache.
  • Su un server LiteSpeed, LiteSpeed Cache gestisce la cache del server web; su Apache o nginx si usa un altro plugin di cache. Ne scelga uno solo.
  • Utenti con accesso effettuato, carrello, checkout e pagine personali non devono entrare nella cache della pagina.
  • Svuoti la cache dopo modifiche al menu o al tema e verifichi in una finestra privata.
  • Una cache degli oggetti (Redis) aiuta i negozi online e gli utenti con accesso effettuato; una CDN soprattutto in caso di distanza e molto traffico.

Quiz

1. Quale cache offre solitamente il maggiore guadagno di velocità per un normale sito informativo?



2. Un cliente vede nel proprio carrello i prodotti di qualcun altro. Cosa c'è probabilmente che non va?



3. Perché non si installano due plugin di cache contemporaneamente?



4. Per chi è più utile una cache degli oggetti come Redis?



Esercizio

Esercizio A6.2: La Sua cache della pagina funziona? Inserisca l'indirizzo del Suo sito. Il programma richiede la homepage due volte a breve distanza, senza cookie, e alla seconda volta verifica la presenza di intestazioni che indicano un cache hit (x-litespeed-cache: hit, x-cache: HIT, cf-cache-status: HIT, un valore age maggiore di 0, oppure l'intestazione di un'altra cache nota). Successivamente richiede un foglio di stile dalla homepage e verifica se il browser può conservarlo per almeno sette giorni (cache-control: max-age o expires). Annoti quale cache sta utilizzando.

Esercizio A6.2: Funziona la Sua cache di pagina?



Quello che inserisce e quello che rileviamo non vengono salvati. Il Suo browser ricorda le Sue risposte e se ha superato l'esercizio. Se ha effettuato l'accesso, conserviamo in I miei corsi solo il fatto che l'esercizio era (quasi) corretto; anche lì può eliminarlo.

Per approfondire

Questi articoli descrivono i passaggi nei pannelli di WebOké; in altri pannelli funzionano in modo simile.

Un momento…

Configuri i suoi domini

Per ogni dominio imposti i nameserver, il collegamento al suo hosting e chi ne diventa l'intestatario.

Caricamento dei suoi domini…