In un negozio PrestaShop la parola «cache» indica cose diverse: la cache interna di PrestaShop, quella dei template, OPcache sul server, la cache delle pagine. Fare confusione è facile, e attivare tutto «perché più cache è meglio» può creare più problemi di quanti ne risolva. Vediamo come sono fatti i vari livelli e come lavora il nostro modulo per la rete iWebLab Edge.
I livelli di cache, dal basso verso l’alto
| Livello | Cosa conserva | Chi se ne occupa |
|---|---|---|
| OPcache | il codice PHP già interpretato | noi: è configurato per PrestaShop sui piani dedicati |
| Cache interna di PrestaShop | configurazioni e file generati dal negozio | PrestaShop, in automatico |
| Template compilati | i template del tema trasformati in PHP | PrestaShop, con le opzioni di compilazione |
| Cache degli oggetti (es. Redis) | risultati di interrogazioni al database | un modulo compatibile, se lo usi |
| Cache delle pagine | la pagina intera, pronta da consegnare | il nostro modulo e la rete iWebLab Edge |
Il livello che fa la differenza per i visitatori è l’ultimo: se la pagina è già pronta, il server non deve rifare tutto il lavoro a ogni visita.
Come lavora iWebLab Cache per PrestaShop
iWebLab Cache è un modulo sviluppato da noi per i negozi PrestaShop che ospitiamo. Le pagine pubbliche del catalogo vengono conservate sulla rete iWebLab Edge e consegnate dal nodo più vicino a chi le visita.
Le domande che ci fanno tutti sono due.
«Il cliente vedrà prezzi o disponibilità vecchi?»
No. Quando cambi un prodotto, un prezzo o la quantità in magazzino, il modulo svuota solo le pagine interessate: la scheda del prodotto e le pagine in cui compare. Non serve svuotare tutto a ogni modifica, e il resto del catalogo resta veloce.
«E il carrello?»
Carrello, checkout e area clienti non passano dalla cache: sono pagine personali, diverse per ogni visitatore, e vengono sempre preparate dal negozio.
Free e Pro
Il modulo esiste in versione Free e Pro (50 € l’anno). La versione Pro include Sentinella, che riconosce i bot e invece di bloccarli li serve dalla cache: motori di ricerca e assistenti di intelligenza artificiale leggono il catalogo senza pesare sul server, mentre il traffico davvero malevolo viene fermato.
Per un negozio questo conta molto. Ogni combinazione di filtri (taglia, colore, prezzo, ordinamento) è un indirizzo diverso, e un catalogo ne genera migliaia. Abbiamo visto negozi in cui quasi tutto il traffico arrivava sui filtri, da migliaia di indirizzi diversi, fino a fermare il server più volte al giorno: con la cache Pro la rete Edge ha preso su di sé l’ondata.
Cosa fare (e non fare) nelle impostazioni di PrestaShop
La cache dei template di PrestaShop
Nelle impostazioni delle prestazioni PrestaShop offre due opzioni che si somigliano ma fanno cose molto diverse:
- la compilazione dei template: decide quando i template del tema vengono ritrasformati in PHP. In produzione non deve avvenire a ogni visita: la ricompilazione forzata rallenta ogni pagina che non arriva dalla cache e non serve a nulla se non stai modificando il tema;
- la cache dei template: conserva pezzi di pagina già pronti. Con iWebLab Cache attiva sul negozio è un doppione: la pagina è già in cache sulla rete Edge, e due cache sovrapposte sullo stesso contenuto aumentano le occasioni in cui qualcosa resta vecchio o viene mostrato a chi non dovrebbe. Su un negozio sotto la rete Edge ti consigliamo di lasciarla spenta.
Altri moduli di cache delle pagine
Lo stesso vale per qualunque altro modulo che metta in cache le pagine intere: una sola cache delle pagine, non due. Se ne hai uno installato da prima, parlane con noi prima di attivare il nostro.
Redis
Redis lavora a un livello diverso (dati, non pagine) e può convivere con la cache delle pagine: aiuta soprattutto nelle pagine che non possono essere messe in cache, come carrello e back office. Lo attivi dal pannello.
Le pagine che cambiano in base al visitatore
Una cache delle pagine funziona perché tutti i visitatori anonimi vedono la stessa pagina. Se il negozio cambia il contenuto di una pagina pubblica in base al visitatore (lingua del browser, paese dedotto in automatico, gruppo di clienti), quella regola va considerata con attenzione: la copia in cache rischia di essere quella generata per il primo visitatore. Il caso più insidioso riguarda i prezzi con o senza IVA, e gli abbiamo dedicato un articolo a parte.
Lo stesso vale per i moduli che stampano nella pagina dati personali (nome del cliente, contenuto del carrello) senza caricarli dopo: se un tema o un modulo si comporta in modo strano con la cache attiva, segnalacelo con un ticket.
La prova da fare dopo l’attivazione
Dopo aver attivato la cache, e dopo ogni modifica importante al tema o ai moduli, fai una prova completa da una finestra anonima del browser:
- apri home, una categoria con filtri e una scheda prodotto;
- aggiungi al carrello e controlla che il contatore si aggiorni;
- registrati o accedi, e verifica che compaia il tuo nome e non quello di altri;
- completa un ordine di prova;
- dal back office cambia il prezzo di un prodotto e ricarica la sua scheda: deve comparire il prezzo nuovo.
Svuotare la cache
Con il modulo attivo, nella maggior parte dei casi non devi svuotare nulla a mano: le pagine interessate si rinnovano da sole quando modifichi prodotti, prezzi e magazzino. Lo svuotamento completo serve dopo interventi sul tema o sui moduli, ed è un’operazione che va fatta con qualche accortezza: ne parliamo nell’articolo dedicato.
In breve
- una sola cache delle pagine: la nostra, sulla rete iWebLab Edge;
- niente ricompilazione forzata dei template in produzione;
- cache dei template di PrestaShop spenta se il negozio è sotto la rete Edge;
- carrello, checkout e area clienti fuori dalla cache, sempre;
- la versione Pro con Sentinella se il catalogo ha molti filtri e molti bot.
Vuoi attivare iWebLab Cache sul tuo negozio o hai un dubbio su come convive con il tuo tema? Apri un ticket dall’area clienti: ti seguiamo noi.