Performance e cache: come velocizzare un sito WordPress

Cache, lazy load, GZIP, ottimizzazione JS e immagini: la guida pratica per ridurre i tempi di caricamento e migliorare i Core Web Vitals di WordPress.

WordPress6 min

Un sito WordPress lento perde traffico, conversioni e posizionamento. Google da anni considera la velocità un fattore di ranking e i Core Web Vitals sono diventati la metrica di riferimento. La buona notizia è che la maggior parte dei problemi di performance si risolve con un set di interventi standard: cache, ottimizzazione immagini, gestione di JS e CSS.

In questa guida vediamo cosa fare in ordine di impatto, quali strumenti usare e cosa evitare per non rompere il sito (in particolare su WooCommerce).

I tre livelli di cache

1. Cache di pagina

Il browser di chi visita il sito non chiede ogni volta a WordPress di rigenerare la pagina: riceve una versione HTML statica già pronta, salvata dal plugin di cache. Questo elimina query al database e riduce il TTFB anche del 70-80%.

Plugin più diffusi:

  • LiteSpeed Cache (gratis, richiede server LiteSpeed): il più potente sul suo stack
  • WP Rocket (a pagamento): il più semplice, configurazione "one-click"
  • W3 Total Cache (gratis): potente ma con curva di apprendimento ripida
  • WP-Optimize (freemium): buon compromesso, include ottimizzazione DB

2. Cache del browser

Le risorse statiche (immagini, CSS, JS, font) vengono salvate nel browser dell'utente per giorni o mesi: alla seconda visita il sito si carica quasi istantaneamente. Si attiva con header HTTP Cache-Control e Expires. Tutti i plugin sopra lo configurano automaticamente.

3. Cache lato server (object cache)

Per siti complessi (e-commerce, membership, magazine ad alto traffico) la cache di pagina non basta: anche le query al database vanno cachate. Si usa Redis o Memcached lato server. Va attivato dall'hosting o dal plugin (LiteSpeed e WP Rocket lo gestiscono se disponibile).

Compressione: GZIP e Brotli

Il server può comprimere CSS, JS e HTML prima di inviarli al browser, riducendo il peso del 70-80%. GZIP è universalmente supportato; Brotli (più recente) comprime meglio ma serve un server compatibile.

Quasi tutti gli hosting moderni hanno GZIP attivo di default. Brotli si attiva di solito da pannello hosting o da plugin di cache. Verifica con gtmetrix.com: nel report compare la voce "Enable text compression".

Immagini: il fattore di impatto numero uno

Le immagini sono di solito il 60-80% del peso di una pagina. Ottimizzarle significa:

Compressione e formato

Plugin consigliati: ShortPixel, Imagify, Smush, EWWW Image Optimizer. Ognuno ha un piano gratuito con limiti mensili e piani a pagamento per volumi maggiori (canone annuo nell'ordine di poche decine di euro).

Cosa fanno:

  • Comprimono ogni immagine al caricamento (lossless o lossy)
  • Generano una versione WebP o AVIF servita ai browser compatibili (tutti i moderni)
  • Comprimono anche le immagini già in libreria (operazione bulk una tantum)

Dimensioni corrette

Caricare un JPG da 4000px e mostrarlo a 800px è uno spreco. WordPress genera automaticamente versioni multiple (srcset) e serve quella giusta per ogni schermo, ma se carichi originali enormi pesano comunque sul server.

Lazy loading

Le immagini sotto la "piega" vengono caricate solo quando l'utente scrolla. WordPress 5.5+ ha lazy loading nativo (loading="lazy"), tutti i plugin di cache lo estendono anche a iframe e video.

JavaScript e CSS: ridurre il render-blocking

Quando il browser incontra un file JS o CSS che blocca il rendering, deve scaricarlo e processarlo prima di mostrare la pagina. Risultato: schermo bianco per 1-2 secondi.

Le ottimizzazioni standard:

  • Defer/async per JS non critico: caricato in parallelo, eseguito dopo il rendering
  • Minify CSS e JS: rimuove spazi e commenti, riduce peso del 20-30%
  • Combine CSS/JS (con cautela): unisce più file in uno, riduce le richieste HTTP. Su HTTP/2 e HTTP/3 è meno utile e a volte peggiora
  • Eliminate unused CSS: rimuove CSS non usato dalla pagina specifica (gestito da plugin avanzati)
  • Critical CSS: estrae il CSS necessario per la prima vista e lo inserisce inline

WP Rocket e LiteSpeed Cache hanno tutte queste opzioni. Attivale una alla volta e testa: alcune possono rompere effetti grafici o slider.

Database e housekeeping

Un database WordPress accumula revisioni di articoli, transient scaduti, commenti spam, dati di plugin disinstallati. Periodicamente:

  • Elimina revisioni vecchie (mantieni le ultime 3-5)
  • Pulisci transient scaduti
  • Rimuovi tabelle di plugin disinstallati
  • Ottimizza tabelle con OPTIMIZE TABLE

Plugin come WP-Optimize automatizzano queste operazioni con uno scheduler.

CDN e hosting

Se il sito ha utenti distribuiti geograficamente, una CDN serve i file statici dal server più vicino all'utente. Cloudflare è la scelta più popolare (piano gratuito generoso). Per immagini molto pesanti, Bunny.net e KeyCDN offrono ottimi rapporti qualità/prezzo.

L'hosting resta il primo collo di bottiglia. Hosting condivisi a 30 €/anno reggono siti vetrina semplici; per WooCommerce o traffico oltre alcune migliaia di visite/giorno serve hosting dedicato WordPress (SiteGround, Kinsta, WP Engine, Cloudways, hosting italiani specializzati).

Errori comuni

  • Due plugin di cache attivi: si conflittano e rallentano il sito.
  • Cache attiva sul checkout WooCommerce: clienti vedono carrelli di altri. Verifica le esclusioni.
  • Combine JS aggressivo: rompe Google Maps, slider, form. Disattiva e prova senza.
  • WebP servito a browser non compatibili: ormai raro, ma verifica con strumenti tipo webpagetest.org.
  • Immagini originali da 5 MB: nessuna ottimizzazione recupera questo errore. Comprimi all'origine.
  • CDN che cacha pagine HTML del backend admin: rende impossibile lavorare in WordPress. Escludi /wp-admin/.

In sintesi

Velocità su WordPress è una somma di interventi: hosting decente, plugin di cache configurato bene, immagini in WebP, JS deferred, CDN se serve. Nessuno di questi singoli interventi fa miracoli, insieme portano un sito da 6 secondi di caricamento a meno di 2.

Quando consegniamo un sito, lo lasciamo già con cache configurata, immagini ottimizzate e Core Web Vitals nella zona "Buono". Se erediti un sito lento, parti dal misurare con PageSpeed Insights e affronta i suggerimenti in ordine di impatto.

Domande frequenti

L'obiettivo realistico è un Largest Contentful Paint sotto 2,5 secondi su mobile in connessione 4G, con un Time to First Byte sotto 600 ms. Su desktop puoi puntare a tempi inferiori al secondo. Sotto questi numeri Google considera il sito 'Buono' nei Core Web Vitals e l'esperienza utente è fluida. Sopra i 4 secondi cominci a perdere conversioni: ogni secondo in più di caricamento riduce sensibilmente il tasso di conversione, soprattutto su mobile.