Il sito WordPress impiega quattro o cinque secondi per caricarsi, il pannello di amministrazione è lento e il cliente scrive che "per lui gira". Questo è uno dei problemi più comuni che i proprietari di siti web ci presentano. La buona notizia è che in nove casi su dieci la causa è una delle poche ben note e può essere trovata in un'ora.
Di seguito trovi nove motivi, in ordine dal più comune, per cui WordPress funziona lentamente. Per ognuno, ti spieghiamo come riconoscerlo e come risolverlo da solo.
Indice
- Come controllare se WordPress è davvero lento?
- La colpa è dell'hosting condiviso?
- Hai troppi plugin?
- Le immagini sono troppo pesanti?
- Il sito ha la cache attivata?
- Quale versione di PHP alimenta il sito?
- Il database non è intasato?
- Il tema o il page builder non sono troppo pesanti?
- Gli script esterni non stanno bloccando il caricamento?
- wp-cron non sta consumando risorse?
- Da dove iniziare la riparazione?
- FAQ
Come verificare se WordPress è davvero lento?
Prima di cambiare qualsiasi cosa, misura. Senza misurare non sai se la modifica ha prodotto risultati, e "mi sembra più veloce" non è un risultato.
Tre strumenti sono sufficienti:
- PageSpeed Insights (pagespeed.web.dev) mostra il punteggio di Google per telefono e computer e gli indicatori Core Web Vitals. Il più importante è il LCP, ovvero il tempo dopo il quale è visibile l'elemento più grande della pagina. Un buon risultato è inferiore a 2,5 secondi.
- GTmetrix o WebPageTest visualizzano il caricamento in un grafico a cascata. Mostra quale file impiega più tempo a caricarsi.
- TTFB (Time To First Byte), ovvero il tempo al primo byte di risposta del server. Puoi controllarlo in entrambi gli strumenti o nella scheda Rete del browser (F12). Se il TTFB supera i 600 ms, il problema è sul lato server o PHP. Se il TTFB è basso, ma la pagina si carica ancora a lungo, i responsabili sono i file lato browser: immagini, script, font.
Questa divisione è fondamentale. Un TTFB elevato indica l'hosting, l'assenza di cache, PHP obsoleto, un database sovraccarico o wp-cron. Un TTFB basso con un caricamento lento indica immagini, un tema pesante e script esterni. I plugin possono rovinare entrambi.
Misura la home page e una sottopagina, ad esempio un post o una scheda prodotto. Salva i risultati, li rivedrai dopo ogni modifica.
La colpa è dell'hosting condiviso?
Questa è la ragione numero uno che il proprietario del sito spesso non sospetta, perché "dopotutto, pago per l'hosting".
Su un classico hosting condiviso, il tuo sito si trova su un unico server insieme a centinaia di altri. Processore, memoria e disco sono condivisi. Se un vicino ha un picco di traffico, invia una newsletter o qualcuno attacca il suo sito, anche il tuo WordPress rallenta. A questo si aggiungono i limiti dei processi PHP. Se più persone accedono al negozio contemporaneamente, le richieste successive attendono in coda.
Come riconoscerlo: il TTFB salta. Al mattino 300 ms, la sera 2 secondi, senza alcun cambiamento sul sito. Nel Pannello dell'hosting si vedono messaggi di superamento del limite di risorse (spesso chiamati "resource limit reached" o "508").
Come risolvere: l'ottimizzazione del sito aiuterà solo in parte. Se il server è sovraccarico a causa di altri, è necessario cambiare hosting con uno in cui le risorse sono assegnate a te. Su Saplo, ogni Box è un contenitore separato con la propria RAM e disco. Box S ha 1 GB di RAM (27 €/anno), Box M 2 GB (65 €/anno), Box L 6 GB (139 €/anno), e nessuno dall'esterno consuma questa memoria. I dettagli dei piani sono nel listino prezzi.
Hai troppi plugin?
Il numero di plugin di per sé non è un problema. Un sito con quaranta plugin leggeri può essere più veloce di uno con dieci plugin pesanti. Il problema sono i plugin che, ogni volta che si accede al sito, eseguono molte query al database o caricano i loro script su ogni sottopagina, anche dove non sono necessari.
I colpevoli più comuni sono i plugin di statistiche complessi calcolati sul server, i plugin di sicurezza "tutto in uno" che scansionano i file in movimento, i plugin per i post correlati, gli slider e i moduli caricati a livello globale.
Come riconoscerli: installa il plugin gratuito Query Monitor. Sulla barra di amministrazione mostrerà il tempo di generazione della pagina, il numero di query al database e quale plugin ne invia quante. Una pagina che impiega più di 0,5 secondi per essere generata o con diverse centinaia di query ha un problema.
Come risolvere:
- Esegui un backup del sito.
- Disattiva i plugin che non usi da mesi. Eliminali, non solo disattivarli.
- Per i plugin pesanti, cerca un sostituto più leggero.
- Usa un plugin come Asset CleanUp o Perfmatters per disabilitare il caricamento degli script di un dato plugin dove è superfluo (ad esempio, gli script del modulo di contatto solo sulla pagina Contatti).
- Misura di nuovo.
Le tue immagini sono troppo pesanti?
Una foto scattata con la fotocamera o il telefono pesa tra i 4 e gli 8 MB e ha una larghezza di 4000 pixel. Sul sito web viene visualizzata con una larghezza di 800 pixel, ma il browser deve comunque scaricare l'intero file. Tre di queste foto sulla homepage e il LCP aumenta a diversi secondi, soprattutto su un telefono.
Come riconoscerlo: in PageSpeed Insights compaiono i suggerimenti "Pubblica immagini in formati di nuova generazione" e "Dimensiona correttamente le immagini". Nel grafico a cascata, le barre più lunghe sono file JPG o PNG.
Come risolvere:
- Prima di caricarle, riduci le foto a una larghezza ragionevole, di solito da 1600 a 2000 pixel per le foto a larghezza intera.
- Abilita la conversione al formato WebP o AVIF. Questo viene fatto da plugin come Converter for Media, EWWW Image Optimizer o ShortPixel.
- Assicurati che il lazy loading sia abilitato. WordPress lo aggiunge automaticamente dalla versione 5.5, ma alcuni temi lo disabilitano.
- Non caricare in modo lazy le immagini visibili nella parte superiore della pagina (ad esempio, le immagini nell'intestazione). Sono quelle che determinano il LCP.
Il tuo sito ha la cache abilitata?
WordPress senza cache, ad ogni visita, avvia PHP, si connette al database, assembla la pagina con decine di query e solo allora la invia al browser. Con dieci visitatori contemporaneamente, il server esegue lo stesso lavoro dieci volte.
Ci sono due tipi di cache che vale la pena distinguere:
- Cache delle pagine memorizza l'HTML pronto e lo serve ai visitatori successivi senza avviare PHP. È fornita da plugin come WP Super Cache, W3 Total Cache, LiteSpeed Cache (solo su server LiteSpeed) o WP Rocket (a pagamento).
- Cache degli oggetti (object cache) memorizza i risultati delle query al database in memoria, solitamente in Redis. Aiuta dove la cache delle pagine non funziona: nel pannello di amministrazione, nel carrello e nell'account cliente di un negozio WooCommerce.
Come riconoscerlo: in Query Monitor, verifica se la cache degli oggetti è attiva. Il TTFB sulla pagina che stai aggiornando per la seconda volta dovrebbe diminuire significativamente. Se non diminuisce, la cache delle pagine non funziona.
Come risolvere: installa un plugin di cache delle pagine (non due contemporaneamente, perché entrerebbero in conflitto) e abilita la cache degli oggetti se l'hosting fornisce Redis. Su Saplo, l'installazione di WordPress dal catalogo collega automaticamente Redis locale nel Box e abilita il plugin Redis Object Cache, con un prefisso e un database separati per ogni sito. Non è necessario configurare nulla manualmente.
Quale versione di PHP c'è dietro il tuo sito?
WordPress è scritto in PHP e ogni nuova versione di PHP è più veloce della precedente. La differenza tra PHP 7.4 e PHP 8.3, sullo stesso sito, può essere notevolmente percepibile, specialmente nel pannello di amministrazione e nei grandi negozi online. Inoltre, PHP 7.4 non riceve più aggiornamenti di sicurezza.
Come verificarlo: nel Pannello di WordPress, vai su Strumenti, poi Salute del sito, poi Informazioni, sezione Server. Vedrai la versione di PHP e il limite di memoria.
Come risolvere:
- Fai un backup.
- Aggiorna WordPress, il tema e i plugin alle versioni più recenti. I vecchi plugin possono essere incompatibili con le nuove versioni di PHP.
- Cambia la versione di PHP nel pannello di hosting a 8.2 o 8.3.
- Controlla la home page, il modulo, il carrello e il pannello. Se qualcosa non funziona, torna alla versione precedente e cerca il plugin incompatibile.
Su Saplo, quando installi WordPress, scegli la versione di PHP da un elenco che va da 7.4 a 8.5. Per impostazione predefinita, installiamo la 8.3, perché praticamente ogni plugin attuale è compatibile con essa.
Il database non è intasato?
Il database di WordPress si gonfia nel tempo. Raccoglie revisioni dei post (ogni salvataggio crea una nuova copia), post nel cestino, spam nei commenti, dati temporanei scaduti (transienti) e opzioni da plugin che hai eliminato da tempo. La tabella wp_options è particolarmente pericolosa. WordPress carica alcune delle sue righe ad ogni accesso al sito (opzioni con il flag autoload). Quando cresce fino a diversi megabyte, rallenta ogni accesso.
Come riconoscerlo: In Integrità del sito, WordPress dalla versione 6.6 in poi avverte automaticamente di opzioni autoload troppo grandi. In Query Monitor puoi vedere query lente al database.
Come risolvere:
- Limita il numero di revisioni aggiungendo la riga
define('WP_POST_REVISIONS', 5);al filewp-config.php. - Pulisci il database con il plugin WP-Optimize o Advanced Database Cleaner: revisioni, cestino, spam, transienti scaduti.
- Rimuovi le opzioni dei plugin disinstallati. Advanced Database Cleaner mostra a quale plugin appartiene una data opzione.
- Fai sempre un backup del database prima della pulizia.
Il tuo tema o page builder non è troppo pesante?
I temi "multi-funzione" venduti con centinaia di layout predefiniti caricano script e stili per tutte le loro funzioni su ogni pagina, anche quelle che non utilizzi. I page builder (Elementor, Divi, WPBakery) aggiungono a ciò un codice HTML profondamente annidato e i propri file CSS e JS.
Questo non significa che il builder debba essere eliminato. Significa che deve essere configurato correttamente.
Come identificarlo: in PageSpeed Insights, i suggerimenti "Riduci JavaScript inutilizzato" e "Riduci CSS inutilizzato" indicano i file del tema o del builder. La pagina ha diversi megabyte di script.
Come risolverlo:
- In Elementor, abilita le funzioni di performance nelle impostazioni (caricamento ottimizzato delle risorse, caricamento CSS in un file anziché inline).
- Disabilita i moduli che non utilizzi nel tema (slider, icone, animazioni).
- Quando crei un nuovo sito web, considera un tema leggero, come GeneratePress, Kadence o Astra, e un editor a blocchi invece di un builder pesante.
Gli script esterni non bloccano il caricamento?
La chat sul sito, il pixel di Facebook, Google Analytics, Tag Manager con dieci tag, Google Maps, un video di YouTube incorporato, un widget di recensioni, i font di Google Fonts. Ognuno di questi è una connessione separata a un server diverso e ulteriori kilobyte di script sui quali non hai alcun controllo.
Come identificarlo: nel grafico a cascata, vedi molti file da domini esterni. PageSpeed Insights mostra il suggerimento "Riduci l'impatto del codice di terze parti".
Come risolverlo:
- Rivedi Tag Manager ed elimina i tag delle vecchie campagne.
- Carica la chat solo dopo l'interazione dell'utente o dopo alcuni secondi.
- Incorpora i video di YouTube come miniature che caricano il player solo dopo un clic (ad esempio, lo fa WP YouTube Lyte).
- Scarica i font sul tuo server invece di caricarli da Google Fonts. Questo risolve anche la questione del GDPR.
wp-cron consuma risorse?
WordPress ha uno scheduler di attività integrato, wp-cron. Non funziona come un vero cron di sistema, ma si avvia quando i visitatori accedono al sito. Su un sito con molto traffico, si attiva troppo spesso, mentre su un sito con poco traffico, le attività (pubblicazione di post programmati, backup, invio di email dal negozio) vengono eseguite con ritardo e possono rallentare una visita casuale che le ha attivate.
Come riconoscerlo: le singole visite sono notevolmente più lente delle altre senza una ragione apparente. Il plugin WP Crontrol mostra un elenco di attività, spesso include anche attività di plugin disinstallati che sono rimaste in sospeso per anni.
Come risolvere:
- In WP Crontrol, elimina le attività dei plugin che non hai più.
- Disabilita l'esecuzione di wp-cron da parte dei visitatori, aggiungendo la riga
define('DISABLE_WP_CRON', true);awp-config.php. - Imposta un vero cron di sistema che ogni 5 minuti richiami
wp cron event run --due-nowo l'indirizzowp-cron.php. Su Saplo, a partire dal Box M, hai accesso SSH con sudo completo, quindi puoi configurarlo in una singola riga di crontab.
Da dove iniziare la riparazione?
Se non sai da dove iniziare, segui quest'ordine, perché dall'alto ci sono i cambiamenti più economici e con il maggiore effetto:
- Misura la pagina con PageSpeed Insights e registra TTFB e LCP.
- Fai un backup completo del sito e del database.
- Aggiorna WordPress, i plugin e PHP a 8.2 o 8.3.
- Attiva la cache delle pagine e, se puoi, l'object cache in Redis.
- Ottimizza le immagini e convertile in WebP.
- Esamina i plugin in Query Monitor e rimuovi quelli superflui.
- Pulisci il database e limita le revisioni.
- Snellisci gli script esterni e configura il tema.
- Misura di nuovo. Se il TTFB continua a variare a seconda dell'ora del giorno, il problema è nell'hosting, non nel sito.
In quest'ultimo caso, nessun plugin aiuterà. È necessario trasferire il sito dove le risorse del server sono solo tue. Se stai considerando Saplo, trasferiremo WordPress per te: la Migrazione è gratuita, insieme al database e alla posta, senza interruzioni del sito. Maggiori informazioni su come funziona WordPress su Saplo sono disponibili nella pagina WordPress nel Catalogo delle applicazioni e nella pagina hosting WordPress.
FAQ
Quanti plugin sono troppi in WordPress?
Non c'è un limite fisso. Ciò che conta è cosa fanno i plugin, non il loro numero. Un sito con trenta plugin leggeri può funzionare velocemente, mentre un singolo plugin mal scritto può bloccarlo. Controlla il tempo di generazione della pagina e il numero di query in Query Monitor, anziché il numero di voci nell'elenco.
Un plugin di cache è sufficiente per velocizzare WordPress?
Spesso offre il maggiore aumento di prestazioni una tantum, ma non risolve tutto. La cache delle pagine non funziona nel Pannello di amministrazione, nel carrello o per i clienti del negozio che hanno effettuato l'accesso. In questi casi, un object cache in Redis, un PHP aggiornato e l'ordine nei plugin sono d'aiuto. La cache, inoltre, non risolverà il problema delle immagini pesanti o di un server sovraccarico.
Perché il pannello di amministrazione di WordPress è lento, ma il sito è veloce?
Questo succede perché i visitatori ricevono pagine precaricate dalla cache, mentre il pannello di amministrazione viene sempre generato in tempo reale da PHP e dal database. Un pannello lento è solitamente un segno di plugin pesanti, una tabella wp_options intasata, una versione PHP obsoleta o la mancanza di object cache. Inizia con Query Monitor aperto nel pannello.
Qual è un buon punteggio di PageSpeed Insights?
Un punteggio da 90 in su è ottimo; da 50 a 89 richiede miglioramenti. Più importanti del punteggio stesso sono i Core Web Vitals: LCP sotto i 2,5 secondi, INP sotto i 200 ms e CLS sotto 0,1. Sono questi a influenzare il posizionamento della pagina su Google.
Il cambio di hosting velocizzerà WordPress?
Sì, se la causa è il server, ovvero un TTFB elevato e instabile e messaggi sui limiti delle risorse. No, se il sito ha immagini pesanti e decine di script inutili, perché gli stessi file dovranno essere scaricati dal nuovo server. Prima misura, poi decidi.
- #Hosting
- #Guide
- #WordPress
- #Prestazioni
