Un negozio WooCommerce è il tipo di sito che più trae vantaggio da Redis. Il motivo è semplice: le pagine che contano di più per le vendite, cioè carrello, cassa e area cliente, sono diverse per ogni visitatore e non possono essere servite da una cache delle pagine. Vanno costruite ogni volta, e ogni volta WordPress e WooCommerce interrogano il database. Redis accorcia proprio quel lavoro. Vediamo dove aiuta, dove no, e a cosa fare attenzione.

Perché il negozio è diverso da un blog

Su un blog quasi tutti i visitatori vedono le stesse pagine: la cache delle pagine le consegna già pronte e il server lavora pochissimo. In un negozio la situazione cambia appena il cliente aggiunge un prodotto al carrello: da quel momento le sue pagine contengono dati personali e devono essere generate dal server.

Le pagine di carrello, cassa e «il mio account» vanno sempre escluse dalla cache delle pagine, come raccomanda la stessa documentazione di WooCommerce. Lo stesso vale per i cookie che WooCommerce usa per riconoscere il carrello. È qui che una object cache con Redis fa la differenza: la pagina viene comunque costruita, ma molte delle informazioni che servono (impostazioni del negozio, dati dei prodotti, tassonomie, opzioni dei plugin) arrivano dalla memoria invece che dal database.

Dove si sente il beneficio

  • Carrello e cassa: meno attesa a ogni passaggio, proprio nel momento in cui il cliente decide se completare l’acquisto.
  • Area cliente: ordini, indirizzi e dati del profilo si aprono più rapidamente.
  • Clienti collegati: chi naviga dopo aver fatto l’accesso spesso non riceve pagine dalla cache; Redis riduce il lavoro per ognuna di quelle pagine.
  • Pannello di amministrazione: elenco ordini, schede prodotto e report diventano più reattivi, soprattutto con cataloghi ampi e molti plugin.
  • Dati temporanei: WooCommerce e i suoi plugin usano molto i transient. Con una object cache persistente finiscono in Redis invece di appesantire la tabella delle opzioni del database.

Dove non aiuta

Redis non è una cura per tutto. Non risolve:

  • immagini prodotto troppo pesanti: lì serve ottimizzarle, per esempio con Image Optimizer;
  • un plugin scritto male che esegue operazioni lente a ogni richiesta;
  • chiamate esterne lente, come il calcolo delle spedizioni presso un corriere o la verifica di un gestionale remoto;
  • un database senza manutenzione, con tabelle gonfie di dati vecchi.

Se il negozio è lento per una di queste ragioni, Redis può migliorare un po’ la situazione ma non la causa. Prima di attivarlo vale la pena capire dove si perde il tempo.

Come collegarlo

Il collegamento è quello di qualunque sito WordPress: attivi Redis dal pannello DirectAdmin e installi un plugin di object cache che usi il socket del tuo account, /home/tuoutente/.redis/redis.sock. Il nostro plugin iWebLab Cache include un drop-in di object cache per Redis che trova il socket da solo e usa chiavi distinte per ogni sito. Trovi i passaggi completi nella guida su come collegare WordPress a Redis, in questa stessa serie.

Le accortezze da conoscere

1. I dati cambiati fuori da WooCommerce

È la fonte di problemi più comune nei negozi. Molti e-commerce sincronizzano prezzi e giacenze con un gestionale. Se la sincronizzazione passa dalle funzioni di WooCommerce (per esempio dalle sue API), la cache viene aggiornata correttamente. Se invece il programma scrive direttamente nel database, WooCommerce non se ne accorge e il sito può continuare a mostrare per un po’ il prezzo o la disponibilità vecchi, letti da Redis.

Le soluzioni sono due: far passare la sincronizzazione dalle API di WooCommerce, oppure svuotare l’object cache al termine di ogni sincronizzazione. Chiedi a chi ha realizzato il collegamento con il gestionale quale dei due metodi usa.

2. Una scadenza ragionevole

Un catalogo grande produce molte chiavi. Perché la memoria resti sotto controllo, i dati in cache devono scadere. La maggior parte dei plugin la imposta già; nel nostro puoi scegliere una scadenza predefinita per i dati che non ne indicano una propria. La memoria usata da Redis rientra nelle risorse del tuo piano.

3. Un solo sistema di object cache

I negozi tendono ad accumulare plugin di ottimizzazione. Il file di object cache è uno solo: se due plugin cercano di gestirlo, il risultato è imprevedibile. Tieni attiva l’object cache in un solo plugin e spegnila negli altri.

4. Il negozio di prova sullo stesso account

Capita spesso di avere una copia di prova del negozio nello stesso spazio. Le due installazioni condividono la stessa istanza Redis: devono avere prefissi diversi, altrimenti la copia di prova potrebbe mostrare dati del negozio vero o viceversa. Con iWebLab Cache il prefisso dipende dal percorso del sito ed è già diverso; con altri plugin controllalo, soprattutto dopo aver clonato il sito, perché la copia eredita la configurazione dell’originale.

5. Le operazioni massive

Dopo un’importazione massiva di prodotti, un aggiornamento importante di WooCommerce o il ripristino di un backup del database, svuota l’object cache. Non serve farlo dopo le normali modifiche dal pannello di WordPress: in quel caso la cache si aggiorna da sola.

Come capire se ha funzionato

Prima di attivare Redis, misura alcune operazioni tipiche: aprire il carrello con un prodotto dentro, passare alla cassa, aprire l’elenco ordini nel pannello. Ripeti le stesse prove dopo l’attivazione, più volte, perché i tempi oscillano. Lo strumento di sviluppo del browser, alla scheda della rete, ti mostra quanto impiega il server a rispondere alla pagina principale: è quel valore che Redis riduce.

Controlla anche lo stato nel plugin di object cache: deve risultare connesso. Se non lo è, il negozio funziona lo stesso ma senza i benefici della cache.

In breve

Situazione Cosa fare
Carrello, cassa e area cliente lenti Attiva Redis e un plugin di object cache
Prezzi o giacenze aggiornati da un gestionale Sincronizzazione tramite API, o svuotamento della cache a fine sincronizzazione
Copia di prova sullo stesso account Prefisso diverso per ogni installazione
Importazioni massive o ripristini Svuota l’object cache al termine
Immagini pesanti o plugin lenti Redis non basta: intervieni sulla causa

I nostri piani hosting WooCommerce includono Redis. Se vuoi un parere sul tuo negozio, apri un ticket: guardiamo dove si perde il tempo e ti diciamo se Redis è la mossa giusta.

Altri articoli su Guida a Redis

Parliamone

Un hosting che ti spiega le cose, e poi le fa

Questi articoli nascono dalle domande dei nostri clienti. Se vuoi un hosting dove dietro ogni risposta c’è un tecnico vero, parliamone.

  • 4,9 su 5 su Trustpilot264 recensioni, il 96% a cinque stelle
  • Risponde un tecnicoIn italiano, da chi gestisce i server
  • Il trasloco lo facciamo noiSito, database e posta, controllati prima di spostare i DNS