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.
