Object Cache e Redis su WordPress: guida pratica

Ciao e benvenuto. Se hai bisogno di chiarimenti sul codice, lascia un commento (no WhatsApp); ricorda però che non fornisco assistenza gratuita sugli articoli che ho scritto nè personalizzo il codice in modo gratuito, quindi se la tua richiesta va oltre il semplice "aiutino", se vuoi mi chiedi una consulenza a pagamento nella pagina contatti. Grazie della comprensione. Alessio

Facciamo chiarezza su una confusione che sento di continuo: la page cache e l’object cache non sono la stessa cosa. La prima salva l’HTML già pronto di una pagina, l’altra tiene in memoria i risultati delle query al database. Su un sito con tanti utenti loggati o su un WooCommerce pieno di prodotti e filtri, è proprio la seconda a fare la differenza sulle pagine che non puoi mettere in page cache. E lo strumento con cui la si fa, nel 99% dei casi, si chiama Redis.

In questa guida vediamo cos’è davvero l’object cache, perché su WordPress conviene usare Redis, come attivarlo e come metterlo a punto senza spararsi nei piedi.

Object cache: cos’è (e cosa non è)

Ogni volta che WordPress genera una pagina fa decine, a volte centinaia di query al database: opzioni, post, meta, utenti, transient. Molte di queste sono identiche a ogni caricamento. L’object cache le tiene in RAM così la seconda volta non tocca il database, risponde dalla memoria. Il risultato tipico è un TTFB più basso e pagine dinamiche — carrello, area utente, ricerche — sensibilmente più reattive.

La differenza con la page cache è netta: la page cache serve l’HTML pronto e salta PHP del tutto, ma non può farlo sulle pagine personalizzate per utente. Lì l’object cache lavora dove la page cache non arriva. Non sono alternative, vanno insieme: ne ho parlato anche nella guida per velocizzare WooCommerce senza rompere il checkout.

Perché Redis

Redis (o in alternativa Memcached) è un archivio chiave-valore in memoria, velocissimo. Su WordPress lo si usa come backend dell’object cache persistente: “persistente” vuol dire che la cache sopravvive tra una richiesta e l’altra, a differenza di quella di default che vive solo per il singolo caricamento. Su uno shop con parecchi ordini al mese, o su un sito con molti utenti loggati, la differenza si sente eccome.

Cosa ti serve

  • Redis installato sul server: se hai un VPS lo installi tu, se sei su hosting gestito spesso c’è già (chiedi o attivalo dal pannello). Ho scritto come installare Redis su un server passo passo.
  • L’estensione PHP redis (phpredis), quella che fa parlare PHP con Redis.
  • Il plugin Redis Object Cache, che collega WordPress a Redis con un drop-in.

Come attivarlo

Prima dico a WordPress dove trovare Redis, nel wp-config.php:

Poi installo il plugin e abilito l’object cache. Da WP-CLI è un secondo:

Se wp redis status risponde “Connected”, ci sei. Da qui in poi WordPress smette di ri-chiedere al database le stesse cose mille volte.

Il tuning che conta davvero

Redis appena installato va già bene, ma due impostazioni lato server evitano guai quando la memoria si riempie. Nel redis.conf:

Il punto chiave è la policy allkeys-lru: senza, Redis pieno inizia a rifiutare scritture e la cache smette di funzionare in silenzio. Con l’LRU invece scarta da solo le chiavi vecchie e continua a girare.

Come verifico che stia lavorando

Non fidarti del “l’ho attivato”: guarda i numeri. Dal backend del plugin, o con wp redis status, controlli l’hit ratio — la percentuale di richieste servite dalla cache. Se dopo un po’ di traffico sta sopra il 90% stai andando bene; se è bassa o piena di miss, qualcosa non gira (spesso un plugin che invalida la cache troppo spesso).

Gli errori che vedo più spesso

  • Object cache senza page cache (o viceversa): sono due leve diverse, servono entrambe.
  • Redis senza limite di memoria e senza LRU: si riempie e la cache muore zitta zitta.
  • Flush a raffica: plugin che svuotano tutta la cache a ogni salvataggio azzerano il vantaggio.
  • Nessun prefisso su server condivisi: due siti che scrivono sullo stesso Redis senza prefisso si pestano i piedi.

Domande frequenti

Object cache o page cache: quale mi serve ?

Tutte e due, perché fanno cose diverse. La page cache serve l’HTML pronto delle pagine pubbliche; l’object cache (Redis) velocizza le query del database, soprattutto sulle pagine dinamiche che la page cache non può toccare. Su WooCommerce si usano insieme.

Meglio Redis o Memcached ?

Per WordPress, Redis. Fa le stesse cose di Memcached ma è più ricco, gestisce meglio la persistenza e le policy di eviction, ed è supportato da tutti i plugin di object cache. Memcached resta una scelta valida se il tuo host offre solo quello.

Serve anche su un blog piccolo ?

Su un blog statico con poco traffico il guadagno è modesto: lì la page cache fa quasi tutto. Redis dà il meglio dove ci sono utenti loggati, carrelli, ricerche e cataloghi grossi — cioè su WooCommerce e sui siti dinamici.

Come faccio a sapere se Redis sta davvero lavorando ?

Controlla lo stato con wp redis status o dal pannello del plugin, e guarda l’hit ratio. Connesso e con una buona percentuale di hit significa che la cache sta servendo; se è scollegato o pieno di miss, va indagato.

Se invece parti da uno shop che arranca, tieni d’occhio anche gli altri colli di bottiglia di WooCommerce.

Immagine di Alessio Angeloro

Alessio Angeloro

Alessio Angeloro è uno sviluppatore WordPress e programmatore WooCommerce specializzato in integrazioni avanzate: gateway di pagamento rateali (Findomestic, Compass, Agos, Cofidis), collegamenti via API con gestionali e CRM, sviluppo di plugin personalizzati e ottimizzazione delle performance degli ecommerce. Con un background sistemistico e anni di esperienza su progetti reali, aiuta aziende, professionisti e agenzie a trasformare WooCommerce in uno strumento di vendita stabile, veloce e scalabile, evitando soluzioni generiche e poco performanti. Lavora con codice pulito e configurazioni su misura, pensate per far crescere il tuo negozio online nel tempo.
Condividi l'articolo
Facebook
Twitter
LinkedIn
WhatsApp

Lascia un commento

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.