Quando si tratta di gestire un sito web, la velocità è uno dei fattori più importanti.
Un sito WordPress lento può danneggiare non solo l’esperienza utente, ma anche il posizionamento sui motori di ricerca, con un impatto negativo diretto sul traffico e sulle conversioni.
Come forse saprai i siti che funzionano meglio sono veloci.
Fortunatamente, con le giuste contromisure, è possibile velocizzare un sito WordPress senza compromettere la funzionalità. Avere un sito WordPress veloce non è impossibile se si seguono le giuste linee guida e si effettuano le opportune ottimizzazioni.
In questo articolo, esamineremo le cause più comuni della lentezza di WordPress e forniremo consigli e best practices per ottimizzare le prestazioni del tuo sito web.
Dalla scelta di temi e plugin, alla configurazione della cache, fino all’ottimizzazione del database e del codice, copriremo ogni aspetto per rendere la tua installazione di WordPress il più veloce possibile.
Indice
- Perché WordPress è lento? Cause comuni e come risolverle
- Perché la velocità del sito è importante?
- Web Vitals: misura e ottimizza la velocità del tuo sito WordPress
- Scegliere i migliori Temi e Plugin per migliorare le prestazioni di WordPress
- Ottimizzazione del database WordPress
- Gestire la cache e ottimizzare il codice HTML, JS e CSS in WordPress
- Ottimizzazione delle immagini per WordPress
- Consigli per migliorare le prestazioni di WordPress
- Come scegliere un hosting performante per WordPress
- Conclusione
Perché WordPress è lento? Cause comuni e come risolverle
WordPress, essendo un sistema di gestione dei contenuti (CMS) molto versatile, permette di costruire praticamente qualsiasi tipo di sito web.
Tuttavia, proprio questa flessibilità può portare a problemi di performance se non si adotta un approccio consapevole all’ottimizzazione di struttura e contenuti del sito web.
Principali cause della lentezza di WordPress
Le cause che determinano la lentezza di WordPress possono essere molteplici.
Il problema principale di WordPress – e di molti altri CMS – consiste nell’uso intensivo del database.
WordPress utilizza costantemente il database per gestire contenuti, utenti, commenti e altro.
Ogni pagina generata dal sito richiede diverse query al database, il che comporta un rallentamento della navigazione, soprattutto se le interrogazioni al database sono numerose e complesse.
Per siti “piccoli” e con poco traffico questo potrebbe non essere un problema particolarmente evidente, ma su siti complessi e/o con parecchio traffico, l‘uso intensivo del database può portare ad un forte degrado dei tempi di risposta delle pagine sino, nei casi più critici, al blocco del sito web stesso a causa dell’incapacità del server di rispondere a tutte le richieste in entrata!
Oltre a questo problema, per così dire intrinseco alla natura stessa di WordPress, le cause più comuni che determinano la lentezza dei siti sviluppati con questo CMS sono:
- Uso di temi non ottimizzati: temi pesanti con molto codice superfluo, o che caricano risorse non necessarie, possono rallentare il sito in modo significativo.
- Uso di plugin di scarsa qualità: sebbene i plugin offrano funzionalità aggiuntive, alcuni di essi possono essere “scritti male” o creare conflitti, aumentando i tempi di caricamento delle pagine e creando instabilità al sito web.
- Uso di un numero eccessivo di plugin: i plugin sono utili, ma ogni volta che ne aggiungiamo uno al nostro sito, il caricamento risulta “appesantito”. È importante selezionare con cura i plugin da utilizzare, mantenendo attivi solo quelli necessari e disinstallare gli altri.
- Mancata (o inadeguata) implementazione della cache (vedremo più avanti cos’è e perché è importante).
- Hosting economici o di bassa qualità: la scelta dell’hosting è importante per la sicurezza e la velocità di un sito sviluppato con WordPress e dovrebbe essere ponderata con la dovuta attenzione.
Oltre a questi tanti altri problemi, grandi e piccoli, possono incidere sui tempi di caricamento. Vedremo tra poco quali sono questi problemi e come risolverli.
Perché la velocità del sito è importante?
Un sito web veloce è essenziale non solo per offrire ai visitatori una esperienza di navigazione gradevole, ma anche per migliorare la visibilità sui motori di ricerca e incrementare le conversioni. Vediamo perché.
Velocità e SEO
Google considera la velocità del sito un importante fattore di ranking. In poche parole: i siti più veloci tendono a essere premiati nei risultati di ricerca, mentre quelli lenti possono essere penalizzati. Strumenti come Google PageSpeed Insights, Lighthouse o GT Metrix possono aiutarti a monitorare le prestazioni del sito e individuare problemi e opportunità di miglioramento.
Velocità e User Experience (UX)
Se un sito richiede troppo tempo per caricarsi, gli utenti potrebbero abbandonarlo prima ancora di vedere il contenuto. La bounce rate (percentuale di rimbalzo) aumenta notevolmente quando il sito è lento, con conseguente diminuzione del tempo medio di permanenza sulla pagina.
Velocità e Conversioni
Che tu gestisca un e-commerce o un blog, un sito più veloce contribuisce a migliorare il tasso di conversione. Diversi studi dimostrano che anche un ritardo di un secondo nel caricamento può ridurre le conversioni del 7%. Per le aziende online, questo si traduce in perdite significative.
In altre parole un sito veloce è un sito che genera più lead e produce più vendite.
Web Vitals: misura e ottimizza la velocità del tuo sito WordPress
I Core Web Vitals sono un insieme di metriche che Google utilizza per valutare la qualità dell’esperienza utente su un sito web. Comprendere e ottimizzare queste metriche è cruciale per migliorare le prestazioni del nostro sito WordPress.
Cosa sono i Core Web Vitals?
Si tratta di un insieme di metriche che determinano quanto un sito web è performante e soddisfacente dal punto di vista dell’esperienza di navigazione. I tre fattori principali sono:
- LCP (Largest Contentful Paint): Misura il tempo necessario per caricare l’elemento più grande visibile nella viewport. Un valore LCP accettabile è sotto i 2,5 secondi.
- FID (First Input Delay): Misura il tempo che passa tra la prima interazione dell’utente (come un click) e la risposta del browser. Un buon FID è sotto i 100 millisecondi.
- CLS (Cumulative Layout Shift): Valuta la stabilità visiva della pagina, misurando quanto gli elementi della pagina si spostano durante il caricamento. Un CLS accettabile è inferiore a 0,1.
Un sito WordPress non ottimizzato avrà sicuramente dei “cattivi punteggi” in una o più di queste metriche.
Una precisazione: in questo articolo non ci occuperemo specificamente di ottimizzazione per i Web Vitals ma ci concentreremo esclusivamente sulla velocità di caricamento.
Fermo restando che il miglioramento di questo aspetto del sito avrà degli impatti super-positivi sui Web Vitals, questi ultimi considerano anche altri fattori, come CLS, che non attengono esclusivamente alla velocità e che quindi, in questa sede, non prenderemo in considerazione.
Scegliere i migliori Temi e Plugin per migliorare le prestazioni di WordPress
Non tutti i temi e plugin sono uguali dal punto di vista della “qualità” del codice. Alcuni possono essere fantastici, ma altri possono compromettere seriamente le prestazioni (e, a volte, anche la sicurezza) del tuo sito.
Come scegliere un tema ottimizzato
- Utilizza temi leggeri: Evita temi con troppe funzionalità integrate. Temi leggeri come Astra, Neve, Kadence o GeneratePress sono buoni punti di partenza per chi desidera sviluppare un sito WordPress veloce.
- Utilizza temi aggiornati: il tema, come i plugin, deve essere aggiornato con una certa frequenza: evitare temi molto vecchi o che non vengono aggiornati da parecchio tempo perché, sicuramente, non sono un buon punto di partenza nella costruzione del tuo sito WordPress.
- Evita temi multi-funzionali: Temi che includono molti plugin integrati o visual builder possono essere più lenti da caricare. Se utilizzi un tema multi-funzionale, verifica che ci sia un’opzione per disattivare le funzionalità non necessarie.
Come scegliere i giusti plugin
- Scegli plugin popolari e costantemente aggiornati: Plugin mal codificati possono compromettere la sicurezza e la velocità. Usa plugin popolari (con molte installazioni), aggiornati di recente e ben recensiti. Diversamente da quello che si potrebbe pensare il fatto che un plugin sia gratuito non significa che sia “peggiore” di uno Premium (a pagamento).
- Usa solo i plugin che ti servono davvero: Ogni plugin aggiunge codice e, pertanto, può rallentare il tuo sito web. Seleziona con cura ciò che effettivamente ti serve e disattiva (o meglio elimina!) quelli superflui.
Ottimizzazione del database WordPress
Il database è il cuore del tuo sito WordPress, ma se non è mantenuto pulito e ottimizzato, può diventare un collo di bottiglia per le prestazioni del tuo sito.
Il database di WordPress tende, nel tempo, a crescere più del dovuto ed a raccogliere dati inutili, come revisioni dei post, transient scaduti e tabelle residue di plugin non più attivi.
Questo “gigantismo” del database può comportare un degrado delle prestazioni, quindi è importante prendersi cura della base dati su cui poggia il sito effettuando una manutenzione periodica dei dati.
Principali azioni per ottimizzare il database
- Elimina o riduci le revisioni dei post: WordPress salva automaticamente diverse revisioni di ogni post e pagina, accumulando dati inutili nel database. Puoi limitarle le revisioni aggiungendo una regola nel file
wp-config.php
(vedremo più avanti come fare) o utilizzando plugin specifici per l’ottimizzazione. - Pulisci i transient scaduti: I transient sono dati temporanei utilizzati per migliorare le prestazioni del sito, ma una volta scaduti possono rimanere nel database pur essendo, di fatto, inutili.
- Elimina i dati di plugin disattivati: Quando disattivi un plugin, alcune tabelle o opzioni rimangono nel database. Installa un plugin di pulizia per eliminare questi dati non necessari oppure, se hai le giuste competenze, utilizza phpMyAdmin per una pulizia manuale di tabelle e record inutili.
Importante: assicurati di fare sempre un backup del database prima di effettuare operazioni di pulizia per evitare di perdere dati importanti qualora qualcosa vada storto.
Limitare le revisioni
Le revisioni di WordPress sono una funzionalità che consente di salvare automaticamente le versioni precedenti di post e pagine mentre li modifichi. Ogni volta che salvi una modifica, WordPress crea una nuova revisione, consentendoti di tornare indietro a una versione precedente del contenuto.
Sebbene questa funzione sia utile, l’accumulo di numerose revisioni può appesantire il database, riducendo le prestazioni del sito, specialmente su siti con molti articoli o contenuti (abbiamo già parlato più sopra dell’importanza di un database ottimizzato).
Per evitare che il database si riempia eccessivamente di revisioni, è possibile limitare il numero massimo di revisioni che WordPress conserva per ogni post o pagina. Questo può essere fatto aggiungendo una semplice configurazione nel file wp-config.php
del tuo sito WordPress:
/* Limita il numero di revisioni salvate per post */
define( 'WP_POST_REVISIONS', 5 );
In questo esempio, WordPress salverà solo le ultime 5 revisioni per ciascun post o pagina. Ovviamente il numero di revisioni da mantenere può essere personalizzato a piacimento. Se non vuoi che WordPress salvi alcuna revisione, puoi disattivarle completamente impostando il valore su false
:
/* Disattiva completamente le revisioni */
define( 'WP_POST_REVISIONS', false );
Se il tuo sito ha già accumulato molte revisioni, puoi eliminarle per alleggerire il database. Puoi farlo manualmente tramite query SQL o utilizzare plugin come WP-Optimize o Advanced Database Cleaner per rimuovere le revisioni inutilizzate in modo sicuro.
Gestire le opzioni in autoload
La gestione delle opzioni in autoload fa parte delle ottimizzazioni legate al database di WordPress. Le opzioni in autoload in WordPress sono impostazioni che vengono caricate automaticamente ogni volta che una pagina del sito viene visualizzata. Queste opzioni vengono generate sia dal core di WordPress che da temi e plugin, i quali hanno accesso a questa risorsa per archiviare dati necessari al loro funzionamento.
Queste opzioni sono memorizzate nel database nella tabella “wp_options” e contrassegnate per essere caricate automaticamente in fase di esecuzione (autoload = yes) oppure no.
Sebbene il caricamento automatico delle opzioni possa migliorare le prestazioni quando usato correttamente, perché i dati sono disponibili e non devono essere richiesti al database, un numero eccessivo di opzioni in autoload o un peso complessivo troppo elevato dei dati in esse memorizzati può comportare un rallentamento del sito e trasformarsi, pertanto, in un problema.
Per questo motivo gli sviluppatori di WordPress consigliano di mantenere il peso totale delle opzioni in autoload al di sotto degli 800KB. Quando tale soglia viene superata lo strumento integrato per il monitoraggio dello “Stato di saluto” di WordPress segnalerà il problema come “critico”.
Purtroppo non è infrequente che i siti web superino questa soglia. Ma come è possibile che le opzioni in autoload diventino un problema?
Questo dipende, principalmente, da temi e plugin. Se le opzioni di WordPress hanno un peso limitato, infatti, quelle caricate da temi e plugin possono essere ingombranti! Inoltre capita spesso che temi e plugin ormai disattivati o cancellati lascino la loro traccia tra le opzioni continuando ad appesantirle con dati ormai inutili.
Per gestire le opzioni in autoload è possibile utilizzare plugin come Advanced Database Cleaner o WP Optimize, che permettono di identificare le opzioni non necessarie e di rimuoverle in modo sicuro. Questi strumenti consentono di visualizzare quali opzioni vengono caricate automaticamente e il loro peso, offrendo la possibilità di ripulire le opzioni autoload inutilizzate.
In alternativa, è possibile gestire le opzioni in autoload direttamente tramite phpMyAdmin, ma questa soluzione è consigliata solo agli utenti più esperti. Accedendo al database, è possibile eseguire la seguente query SQL per identificare le opzioni autoload più pesanti:
SELECT option_name, option_value, LENGTH(option_value) AS size
FROM wp_options
WHERE autoload = 'yes'
ORDER BY size DESC;
Questa query mostrerà le opzioni caricate automaticamente, ordinate in base alla loro dimensione. Una volta identificate le opzioni non necessarie, puoi modificarle direttamente (impostando autoload su “no”) o rimuoverle se non sono più utilizzate, riducendo così il carico complessivo sul sito.
I migliori plugin per prendersi cura del database di WordPress
WP-Optimize
WP-Optimize è un plugin completo che consente di pulire, comprimere e ottimizzare il database WordPress, migliorando le prestazioni del sito. Offre anche funzioni di cache, compressione delle immagini e vinificazione del codice sorgente per ridurre i tempi di caricamento. Il plugin è disponibile in versione Free con funzionalità limitate oppure in versione Pro, in abbonamento, per chi desidera migliori livelli di performance ed ottimizzazione per il proprio sito WordPress.
Advanced Database Cleaner
Advanced Database Cleaner è uno strumento potente per la manutenzione del database WordPress, che consente di rimuovere dati inutilizzati come revisioni di post, commenti spam e transitori, aiutando a mantenere il database leggero e performante. Il plugin è disponibile in versione Free con funzionalità limitate. La versione PRO, che costa poche decine di dollari, sblocca diverse funzionalità interessanti come l’identificazione di opzioni, tabelle e cron job “orfani” (cioè di plugin non più utilizzati) che possono essere eliminati senza problemi.
Gestire la cache e ottimizzare il codice HTML, JS e CSS in WordPress
La cache è una delle tecniche più efficaci per migliorare le prestazioni di un sito WordPress. Memorizzare in cache le pagine o gli oggetti permette di ridurre il carico sul server e migliorare i tempi di caricamento delle pagine per gli utenti.
Prima di addentrarci negli aspetti tecnici, però, è utile fare una piccola introduzione per spiegare meglio cos’è la cache e a cosa serve, per comprendere l’importanza di una sua corretta gestione in WordPress.
Cos’è la cache?
In informatica, la cache è un sistema che salva temporaneamente copie dei dati frequentemente utilizzati per consentirne un accesso più rapido in futuro. In pratica, la cache memorizza le informazioni in modo che possano essere recuperate velocemente senza dover ripetere processi complessi ogni volta.
Un esempio comune è la cache del browser, che conserva file come immagini, fogli di stile e script relativi ai siti web visitati. Quando un utente torna su un sito, il browser può caricare questi file direttamente dalla sua cache locale, invece di scaricarli nuovamente dal server remoto. Questo accelera la navigazione e riduce il carico sul server.
Diverse tipologie di cache
Tuttavia, la cache del browser non è l’unica tipologia di cache che può migliorare le prestazioni di un sito web. Un altro tipo cruciale è la cache lato-server.
Quando un utente visita un sito dinamico, come quelli realizzati tramite WordPress, il server deve eseguire una serie di operazioni per generare e restituire la pagina web richiesta. Questi processi includono l’esecuzione di codice PHP, l’interrogazione del database ed il caricamento di file come immagini, CSS e JavaScript. Senza una cache, queste operazioni devono essere ripetute ogni volta che la pagina viene richiesta, comportando una lavoro inutile per il server.
La cache lato-server crea e conserva versioni statiche delle pagine: quando un utente richiede una pagina già visitata, il server può restituire la versione in cache, riducendo significativamente il tempo di caricamento e il numero di risorse necessarie ad esaudire la richiesta. Questo approccio diminuisce le query al database e riduce l’uso di risorse PHP, alleggerendo il server e migliorando i tempi di risposta complessivi.
All’interno di un sito WordPress, esistono diversi tipi di cache che possono essere implementati per migliorarne le prestazioni: la cache degli oggetti, la cache delle pagine e la cache CDN. Vediamoli uno ad uno.
Cache degli oggetti persistenti
La cache degli oggetti persistenti è un tipo di cache che memorizza dati complessi, come i risultati di query al database o calcoli costosi, per evitare di ripeterli inutilmente.
Questi “oggetti persistenti” sono tipicamente informazioni che non cambiano frequentemente, ma che vengono richieste spesso. Esempi di oggetti persistenti includono impostazioni del sito, risultati di interrogazioni al database o dati di sessione dell’utente.
È importante precisare che WordPress integra nativamente una cache degli oggetti, ma questa funziona solo a livello di singola pagina. L’obiettivo è impedire che lo stesso processo venga eseguito più volte durante il rendering della pagina. Invece di ripetere continuamente la stessa operazione, il sistema salva il risultato nella cache degli oggetti per riutilizzarlo durante lo stesso caricamento della pagina.
Tuttavia, questo approccio è limitato. Un’implementazione più estesa della cache degli oggetti, su più pagine o sezioni del sito, potrebbe ridurre notevolmente il carico di lavoro del server ed i tempi di risposta (TTFB), migliorando così le prestazioni complessive del sito.
Su siti semplici o con poco traffico, la cache degli oggetti può essere considerata meno rilevante. Tuttavia, su siti complessi, con molte interazioni e query ripetitive – come un e-commerce – la cache degli oggetti può migliorare significativamente le prestazioni. Ad esempio, informazioni come dettagli sui prodotti o sugli ordini possono essere salvate in cache, evitando di dover interrogare continuamente il database.
Per implementare una cache degli oggetti persistenti in WordPress, solitamente si utilizzano strumenti come Redis o Memcached, che memorizzano questi dati direttamente in memoria, consentendo un recupero rapido.
Se questi strumenti non sono disponibili, è possibile utilizzare plugin come Docket Cache, che converte gli oggetti persistenti in semplici oggetti PHP utilizzando Zend OP Cache, garantendo comunque ottimi risultati.
Cache delle pagine
La cache delle pagine salva versioni statiche delle pagine generate dinamicamente da WordPress. In questo modo, per gli utenti non loggati, il server può servire direttamente queste copie senza dover elaborare nuovamente i dati ogni volta. Questo è particolarmente utile per ridurre i tempi di caricamento su siti con molto traffico, riducendo al contempo il carico sul server per preservarne le risorse.
Implementare una corretta strategia di caching in WordPress è fondamentale per ottenere tempi di caricamento più rapidi, ridurre il carico sul server e migliorare l’esperienza utente, soprattutto su siti con elevato traffico.
Perché implementare sia la cache degli oggetti che quella delle pagine?
La cache degli oggetti e la cache delle pagine sono due strumenti distinti ma complementari per ottimizzare le prestazioni di un sito WordPress. Implementarle entrambe consente di affrontare diversi tipi di richieste e ottimizzare sia le interazioni dinamiche che il caricamento delle pagine statiche.
Cache degli oggetti ottimizza le operazioni a livello di database, riducendo il numero di query eseguite ripetutamente. Questo è particolarmente utile in siti con molte operazioni dinamiche, come gli e-commerce o le piattaforme che richiedono l’interrogazione continua del database per mostrare informazioni sempre aggiornate (es. dati utente, dettagli sugli ordini, ecc.). La cache degli oggetti aiuta a:
- Alleggerire il carico sul database, diminuendo il numero di query ripetitive.
- Migliorare il tempo di risposta per operazioni dinamiche.
- Ottimizzare le sezioni del sito che mostrano contenuti dinamici come carrelli, wishlist e profili utente che non beneficiano della cache delle pagine.
Cache delle pagine, invece, si occupa del rendering delle pagine generate dinamicamente e le trasforma in versioni statiche. Questo significa che gli utenti non loggati o che interagiscono con contenuti come pagine e articoli possono accedervi molto più velocemente. La cache delle pagine aiuta a:
- Ridurre il tempo di caricamento delle pagine statiche per gli utenti anonimi.
- Diminuisce significativamente il carico sul server, poiché evita di rigenerare la stessa pagina per ogni richiesta.
- Offrire un’esperienza utente più fluida, soprattutto su siti con elevato traffico.
Implementare entrambi i tipi di cache permette di ottimizzare al massimo le prestazioni del sito in diversi scenari:
- Efficienza per contenuti dinamici e statici: Mentre la cache degli oggetti velocizza le interazioni dinamiche con il database, la cache delle pagine ottimizza il rendering delle pagine statiche per ridurre i tempi di caricamento.
- Riduzione globale del carico sul server: La cache delle pagine riduce il carico durante la generazione di pagine statiche, mentre la cache degli oggetti allevia la pressione sul database per le richieste dinamiche.
- Maggiore scalabilità: Su siti con molte interazioni e traffico elevato, l’uso combinato delle due cache migliora la scalabilità, consentendo al sito di gestire più visitatori contemporaneamente senza rallentamenti significativi.
In sintesi, la cache degli oggetti migliora le prestazioni legate ai dati dinamici e alle query, mentre la cache delle paginesi occupa di servire rapidamente le pagine statiche. Utilizzare entrambe le tecniche garantisce un miglioramento globale delle prestazioni del sito, riducendo il carico del server e offrendo un’esperienza utente più fluida e veloce.
Cache CDN
La cache CDN (Content Delivery Network) distribuisce i contenuti statici del sito, come immagini, file CSS e JavaScript, su diversi server sparsi in tutto il mondo. Quando un utente accede al sito, la CDN consegna i file dal server più vicino all’utente, riducendo la latenza e velocizzando il caricamento della pagina. Questo tipo di cache è particolarmente utile per siti con pubblico globale.
Oltre a migliorare la velocità del sito, una CDN offre anche una maggiore sicurezza. Molti servizi CDN, come Cloudflare o Akamai, includono funzionalità di protezione avanzate, come mitigazione degli attacchi DDoS, firewall applicativi (WAF) e protezione dalle minacce di rete. Queste soluzioni non solo ottimizzano la distribuzione dei contenuti, ma migliorano anche la sicurezza complessiva del sito, rendendolo più robusto e meno vulnerabile agli attacchi.
Ottimizzazione del codice HTML, CSS e JavaScript per WordPress
Il codice di un sito WordPress – che include HTML, CSS e JavaScript – può essere ottimizzato per ridurre il tempo di caricamento e migliorare le prestazioni generali con effetti tangibili sotto forma di miglioramento dei punteggi Web Vitals.
Minimizzazione del codice HTML
La minimizzazione del codice HTML consiste nel rimuovere spazi bianchi, commenti e caratteri non necessari dal sorgente della pagina web. Questo processo riduce la dimensione complessiva dei file e accelera il caricamento della pagina. Plugin come Autoptimize offrono strumenti per automatizzare questo processo, rendendo il codice HTML più leggero e veloce da caricare.
Ottimizzazione del CSS
Il CSS controlla l’aspetto del tuo sito, ma caricare file CSS troppo grandi può rallentare notevolmente il sito.
Molti temi WordPress caricano fogli di stile enormi per stilizzare ogni possibile implementazione, ma spesso il codice realmente utilizzato è solo una piccola frazione di quello effettivamente caricato. Questo si traduce in uno spreco di risorse e in pagine web più pesanti, che caricano dati non necessari.
Un’altra situazione comune riguarda fogli di stile complessi che contengono codice effettivamente utilizzato nella pagina, ma che potrebbe essere caricato in un secondo momento perché si riferisce a porzioni di pagina non immediatamente visibili all’utente. Il termine above the fold indica la parte di pagina visibile senza scorrere, mentre below the fold si riferisce alla parte visibile solo dopo lo scroll dell’utente.
Per ottimizzare il caricamento del CSS e risolvere questi problemi, puoi adottare le seguenti soluzioni:
- Rimozione del codice CSS inutilizzato: Il codice CSS che non viene utilizzato può essere eliminato per ridurre le dimensioni del file. Strumenti come PurgeCSS o plugin come WP Rocket offrono funzionalità per rilevare e rimuovere il CSS superfluo.
- Elaborazione e caricamento del CSS Critico (Critical CSS): Il caricamento di una versione ridotta del CSS necessaria per il rendering iniziale della pagina (Critical CSS) migliora il tempo di caricamento percepito dall’utente. Plugin come Autoptimize offrono questa funzionalità integrata, consentendo di caricare solo il CSS essenziale per la parte di pagina visibile subito (above the fold), mentre il resto del CSS viene caricato successivamente.
Ottimizzazione del JavaScript
I file JavaScript possono spesso rallentare il caricamento delle pagine, soprattutto se non vengono gestiti correttamente. Ecco alcune tecniche per ottimizzarli e migliorare le prestazioni complessive del sito:
- Minimizzazione: Riduci le dimensioni dei file JavaScript eliminando commenti, spazi vuoti e caratteri non necessari. Strumenti come Autoptimize o Fast Velocity Minify automatizzano questo processo, permettendo di ridurre il peso complessivo dei file JavaScript, velocizzando il caricamento.
- Caricamento Asincrono e Differito: Utilizza gli attributi
defer
easync
per ottimizzare il caricamento degli script. L’attributodefer
assicura che il JavaScript venga caricato in background, permettendo il rendering completo della pagina prima che gli script vengano eseguiti. L’attributoasync
, invece, carica gli script in parallelo con l’HTML, ma li esegue non appena sono pronti, riducendo il tempo di blocco del rendering della pagina. Queste tecniche sono particolarmente utili per file JavaScript non critici.
Implementando queste tecniche di ottimizzazione del JavaScript, è possibile migliorare significativamente la velocità di caricamento delle pagine e l’esperienza utente complessiva.
Ottimizzazione delle risorse di rete
Uno dei fattori principali che possono causare il rallentamento di un sito WordPress è l’uso eccessivo di risorse di rete, come file CSS, Javascript e font. Ogni volta che una pagina web carica una risorsa esterna (sia che sia ospitata sullo stesso server che su un server remoto) il browser deve effettuare una richiesta HTTP aggiuntiva.
Questo processo aggiunge latenza e può aumentare significativamente i tempi di caricamento, soprattutto quando le risorse in questione sono di tipo render-blocking, cioè impediscono il caricamento completo della pagina fino a quando non sono state completamente scaricate.
Utilizzare risorse locali – Se una risorsa, come uno script o un file CSS, può essere ospitata direttamente sul server del sito invece di essere caricata da un server esterno, è consigliabile farlo. Caricare risorse localmente riduce la dipendenza da server esterni e abbassa il rischio che un eventuale ritardo nella risposta del server remoto rallenti l’intero sito. Questo è particolarmente importante per le risorse critiche, che influenzano il rendering della pagina. Alcuni plugin con WP Rocket sono in grado di scaricare ed includere in pagina eventuali script remoti.
Concatenazione di CSS e JavaScript – Un altro modo per ridurre il numero di richieste HTTP di risorse ospitate sul nostro server è concatenare i file CSS e JavaScript. La concatenazione consiste nell’unire più file in uno solo, riducendo così il numero di richieste necessarie per caricare tutte le risorse del sito. Ad esempio, se il tuo sito carica diversi fogli di stile CSS, unendoli in un unico file ridurrai notevolmente il tempo di caricamento. La stessa cosa vale, ovviamente, per i Javascript. Strumenti come WP Rocket e Autoptimize possono automatizzare questa operazione.
Incorporazione diretta di CSS e JavaScript – Un’altra tecnica efficace per ridurre il numero di richieste HTTP delle risorse locali è l’incorporazione diretta di CSS o JavaScript critici all’interno del codice HTML della pagina, eliminando così la necessità di caricare file separati. Questa tecnica, nota anche come inline CSS/JavaScript, è particolarmente utile per piccoli blocchi di codice essenziali per il rendering della pagina. Tuttavia, è consigliabile non abusarne, in quanto potrebbe rendere il codice HTML più pesante e difficile da gestire se si incorporano troppe risorse.
Utilizzare font standard o incorporare font localmente – L’uso eccessivo di font esterni, come Google Fonts, può causare rallentamenti nel caricamento del sito, soprattutto se vengono caricati diversi stili o varianti non necessari. Ogni richiesta di font, infatti, aggiunge latenza e richiede una connessione esterna, rallentando il caricamento delle pagine.
Per migliorare le prestazioni del sito, una soluzione efficace è quella di utilizzare font standard, già presenti sui dispositivi degli utenti, come Arial, Helvetica o Times New Roman. Questi font non richiedono alcuna richiesta di rete, poiché sono integrati nei sistemi operativi. In alternativa, puoi incorporare i font localmente sul server del tuo sito, riducendo il numero di richieste HTTP e rendendo il caricamento più veloce e affidabile. Questa pratica consente anche di mantenere il controllo sulle prestazioni e sulla personalizzazione dei font, senza dipendere da server esterni. Un ottimo plugin per ottimizzare l’uso dei Google Font è OMGF (Optimize My Google Font).
Abilitare la compressione GZIP
Oltre alla minimizzazione del codice, la compressione dei file è un’altra tecnica essenziale per ridurre i tempi di caricamento. La compressione GZIP è uno dei metodi più efficaci per ridurre la dimensione dei file HTML, CSS e JavaScript durante il trasferimento dal server al browser.
GZIP comprime i file prima che vengano inviati dal server, riducendone le dimensioni anche fino al 70%. Una volta ricevuti, i file vengono decompressi dal browser dell’utente, migliorando significativamente le prestazioni del sito, soprattutto su connessioni lente.
Molti plugin di ottimizzazione, come W3 Total Cache o WP Rocket, includono l’opzione per abilitare automaticamente la compressione GZIP, rendendone l’implementazione molto semplice. Tuttavia non è indispensabile un plugin per abilitare questa funzionalità.
Per abilitare la compressione GZIP, infatti, è sufficiente aggiungere il seguente codice al file .htaccess
del tuo sito:
# Abilita GZIP Compression
AddOutputFilterByType DEFLATE text/html text/plain text/xml
AddOutputFilterByType DEFLATE text/css text/javascript application/javascript application/json
Combinando la minimizzazione del codice HTML con la compressione GZIP, è possibile ottenere pagine più leggere e tempi di caricamento notevolmente ridotti, migliorando così l’esperienza utente e le prestazioni generali del sito.
I migliori plugin per la gestione della cache e l’ottimizzazione di WordPress
WordPress dispone di tantissimi plugin per la gestione dei vari tipi di cache e per migliorare le performance mediante l’ottimizzazione del codice sorgente. Solitamente i plugin per la cache integrano anche funzioni di ottimizzazione del codice, pertanto li trattiamo unitamente.
Un discorso a parte riguarda la cache degli oggetti. Per questa tipologia di cache, infatti, solitamente si utilizzano plugin appositi, non essendo questo tipo di cache normalmente integrata nei plugin di ottimizzazione che vi presenterò di seguito (unica eccezione è W3 Total Cache che, tra le varie funzionalità, integra anche questo tipo di cache).
Questi i plugin più popolari per la gestione della cache degli oggetti persistenti:
- Redis Object Cache: Plugin che integra Redis per memorizzare i dati della cache degli oggetti in memoria. Attenzione: per utilizzarlo è necessario che il proprio hosting provider abbia implementato Redis sui propri sistemi.
- SQLite Object Cache: Plugin che utilizza l’estensione SQLite3 di PHP per la gestione degli oggetti persistenti; è una valida alternativa per i piani hosting che non supportano Redis o Memcached.
- Docket Cache: Ottimizza l’archiviazione degli oggetti persistenti utilizzando la cache opcache di PHP. Una soluzione quasi universalmente supportata essendo opache presente sulla maggior parte dei web-server.
Per quanto riguarda la cache delle pagine e l’ottimizzazione del codice sorgente, come dicevamo, il ventaglio delle opzioni è decisamente più ampio:
WP Rocket
Uno dei plugin di cache più popolari, WP Rocket è facile da configurare e offre funzionalità avanzate come la cache delle pagine, la compressione GZIP e l’ottimizzazione di CSS e JavaScript.
Progettato per WordPress e sempre aggiornato per stare al passo con i più recenti standard sulle prestazioni web, WP Rocket migliora nettamente le prestazioni complessive del sito web raggiungendo punteggi migliori su PageSpeed Insights anche senza effettuare configurazioni avanzate. La gran parte delle ottimizzazioni, infatti, viene effettuata automaticamente.
W3 Total Cache
Un plugin molto completo che offre cache delle pagine, degli oggetti, del database e supporto per CDN. Ideale per utenti avanzati che desiderano un maggiore controllo sulla cache. Disponibile in versione Free con alcune funzionalità limitate. La versione PRO comprende funzionalità avanzate come la rimozione del codice CSS e JS inutilizzato, il caricamento ritardato degli script non essenziali, la conversione delle immagini in WebP, il lazy loading delle mappe di Google e molto altro.
FastPixel.io
FastPixel è un plugin cloud-based per WordPress che ottimizza le prestazioni del tuo sito, accelerandolo in modo semplice e veloce. Include funzionalità avanzate come ottimizzazione delle immagini, minificazione di HTML/CSS/JS, creazione di Critical CSS, caching e supporto per CDN. Offre anche compressione delle immagini WebP, lazy loading e miglioramenti per Core Web Vitals, garantendo tempi di caricamento rapidi e un’esperienza utente ottimale. Facile da configurare, è adatto sia per principianti che per professionisti.
WP Super Cache
Sviluppato dal team di WordPress, questo plugin offre una soluzione di caching semplice ed efficace, generando versioni statiche delle pagine per gli utenti non loggati. Offre tantissime funzioni ma non è semplicissimo da configurare se non si hanno le giuste competenze.
WP Fastest cache
WP Fastest Cache è un plugin per WordPress che migliora la velocità e le prestazioni del sito, ottimizzando il tempo di caricamento delle pagine attraverso l’utilizzo di sistemi di caching e di ottimizzazione del codice sorgente. Gli amministratori possono facilmente gestire la cache e i file minificati CSS e JS tramite l’interfaccia del plugin.
È possibile escludere la cache per pagine o post specifici, impostare un timeout per la cache e configurare o meno l’attivazione della cache su dispositivi mobili o per utenti loggati. Il plugin supporta SSL e l’integrazione con CDN come Cloudflare, migliorando ulteriormente le prestazioni del sito. Tra le altre funzionalità vi sono la compressione Gzip, il caching del browser e la minificazione di HTML e CSS per ridurre il peso delle pagine e accelerare i tempi di caricamento.
E’ disponibile sia in versione free che pro con un numero maggiore di funzionalità.
Autoptimize
Autoptimize è un plugin per WordPress che ottimizza il codice del sito combinando, minificando e comprimendo file CSS, JavaScript e HTML, migliorando la velocità di caricamento e il punteggio SEO. Nella versione free non integra la gestione della cache.
Offre anche la possibilità di caricare gli script in modalità asincrona o differita, evitando che blocchino il rendering della pagina. La funzione “Critical CSS” permette di caricare solo gli stili essenziali per il rendering iniziale, aumentando ulteriormente la velocità.
Nella versione gratuita, il CSS critico deve essere configurato manualmente, mentre la versione PRO genera automaticamente gli stili necessari. Compatibile con altri plugin di cache, Autoptimize è un’ottima soluzione per chi desidera ottimizzare il proprio sito per renderlo più veloce e performante.
Ottimizzazione delle immagini per WordPress
Le immagini rappresentano spesso una parte significativa del peso totale di una pagina web. Ottimizzare le immagini è fondamentale per ridurre i tempi di caricamento di un sito WordPress, migliorando così le prestazioni complessive e l’esperienza utente.
Utilizzare immagini di dimensioni appropriate
Uno degli errori più comuni è caricare immagini con risoluzioni molto più alte del necessario. Assicurati di ridimensionare le immagini prima di caricarle su WordPress, in base alle dimensioni effettive in cui verranno visualizzate. Evitare immagini sovradimensionate riduce notevolmente il peso dei file e consente di non saturare lo spazio web acquistato con file di dimensioni eccessive.
N.B. Un ottimo plugin gratuito che impedisce che vengano caricate immagini “gigantesche” è Imsanity. Non è un vero e proprio plugin per l’ottimizzazione delle immagini ma compie, in modo efficace, operazioni basiche affinché non vengano caricate sul server immagini dal peso veramente eccessivo.
Convertire le immagini in formati moderni
Il formato WebP è un formato di immagine moderno sviluppato da Google, che offre una compressione più efficiente rispetto a JPEG e PNG, mantenendo un’alta qualità visiva. Questo formato consente di ridurre significativamente il peso delle immagini senza perdita di qualità percettibile. Convertire le immagini in WebP può migliorare notevolmente le prestazioni del sito.
Esistono diversi plugin per WordPress, come ShortPixel, EWWW Image Optimizer e Imagify, che permettono di convertire automaticamente le immagini in WebP al momento del caricamento. Questi plugin offrono anche la possibilità di conservare i file originali come fallback, garantendo la compatibilità con i browser che non supportano ancora WebP.
Compressione delle immagini
La compressione delle immagini è un processo fondamentale per ridurre le dimensioni dei file senza compromettere la qualità visiva. Esistono due tipi principali di compressione:
- Compresssione lossless: Riduce le dimensioni delle immagini senza alcuna perdita di qualità, mantenendo intatti tutti i dati dell’immagine.
- Compresssione lossy: Riduce maggiormente le dimensioni delle immagini, sacrificando una minima parte della qualità visiva, che spesso non è percepibile dall’utente.
Lazy Loading delle immagini
Il Lazy Loading è una tecnica che consente di caricare le immagini solo quando diventano visibili nella finestra di visualizzazione dell’utente. Invece di caricare tutte le immagini immediatamente, vengono caricate progressivamente mentre l’utente scorre la pagina, riducendo il tempo di caricamento iniziale.
WordPress ha integrato nativamente il lazy loading a partire dalla versione 5.5, ma plugin come WP Rocket o A3 Lazy Load offrono opzioni avanzate per configurare e ottimizzare questa funzionalità, migliorando ulteriormente la velocità del sito.
I migliori plugin per l’ottimizzazione delle immagini su WordPress
Sono numerosi i plugin che consentono di comprimere automaticamente le immagini, convertirle in formati più recenti (come WebP) e di ottimizzarne l’utilizzo nel sito mediante diverse tecniche.
Questi strumenti aiutano a ridurre drasticamente il peso complessivo delle immagini senza perdita di qualità visibile, migliorando i tempi di caricamento della pagina e, di conseguenza, l’esperienza dell’utente e il ranking SEO.
ShortPixel
ShortPixel Image Optimizer è un potente strumento di ottimizzazione delle immagini per siti web che consente di migliorare le prestazioni del tuo sito riducendo il peso delle immagini senza comprometterne la qualità. Grazie a tecniche avanzate di compressione, ShortPixel permette di ottimizzare JPEG, PNG, GIF e PDF, offrendo una migliore esperienza utente e tempi di caricamento più rapidi, il che contribuisce positivamente anche al posizionamento SEO.
Compatibile con WordPress, ShortPixel è facile da installare e offre opzioni di compressione lossless o lossy, permettendoti di scegliere il livello di ottimizzazione più adatto alle tue esigenze. Inoltre, è in grado di convertire automaticamente le immagini in formato WebP e AVIF, più leggeri e performanti per l’utilizzo sul web. Il plugin è perfetto per chi desidera un sito veloce e ottimizzato, mantenendo una qualità visiva eccellente.
Imagify
Imagify è un plugin per WordPress progettato per ottimizzare le immagini del tuo sito web, migliorando la velocità di caricamento e l’esperienza utente. Facile da usare, permette di comprimere le immagini in modo efficiente senza compromettere la qualità, offrendo tre livelli di ottimizzazione: Normale, Aggressivo e Ultra, per adattarsi alle diverse esigenze.
Compatibile con WooCommerce, NextGen Gallery e altri plugin, Imagify converte anche le immagini in formato WebP e Avif garantendo prestazioni ottimali. Offre la possibilità di ottimizzare immagini già caricate nella tua libreria e di ridurre automaticamente quelle caricate in futuro, contribuendo a migliorare la SEO e a mantenere il tuo sito veloce e performante.
EWWW Image Optimizer
EWWW Image Optimizer è un plugin per WordPress che permette di ottimizzare le immagini del tuo sito web in modo automatico e senza perdita di qualità. Grazie a diverse tecniche di compressione, riduce il peso delle immagini, migliorando la velocità di caricamento del sito e l’esperienza dell’utente. È compatibile con tutti i formati di immagini comuni e supporta la conversione in WebP per un’ulteriore ottimizzazione.
Il plugin offre funzionalità come l’ottimizzazione delle immagini già presenti nella libreria media e la compressione delle immagini caricate in tempo reale. Inoltre, EWWW Image Optimizer è dotato di opzioni avanzate per la gestione di immagini su CDN, rendendolo una scelta efficace per chi vuole migliorare la SEO e le prestazioni del proprio sito WordPress.
Consigli per migliorare le prestazioni di WordPress
Oltre alle ottimizzazioni più comuni, ci sono alcuni semplici accorgimenti che possono migliorare le prestazioni del tuo sito WordPress.
Non caricare file Audio e Video direttamente in WordPress
Caricare file audio e video direttamente su WordPress può sembrare una soluzione semplice, ma non è consigliato se si hannoa cuore le prestazioni del proprio sito web. I file audio e video occupano molto spazio e richiedono molta larghezza di banda per essere trasmessi. Se il tuo sito riceve un gran numero di visitatori, infatti, la trasmissione di questi file può sovraccaricare il server, saturare la banda disponibile e rallentare l’intero sito.
Per evitare problemi di prestazioni e ottimizzare l’esperienza utente, è meglio ospitare i tuoi file multimediali su piattaforme dedicate e poi incorporarli in WordPress.
- Video: Utilizza piattaforme come YouTube o Vimeo per caricare i video. Queste piattaforme non solo offrono uno streaming ottimizzato, ma forniscono anche strumenti di personalizzazione, opzioni di privacy e la possibilità di incorporare facilmente i video nelle tue pagine WordPress tramite un semplice link o codice embed.
- Audio: Per l’audio, piattaforme come SoundCloud o Spotify offrono soluzioni affidabili per ospitare e condividere tracce audio, podcast e altro, senza gravare sul server del tuo sito.
Incorporare file audio e video da piattaforme esterne riduce il carico sul server, migliora la velocità del sito e garantisce una migliore esperienza di fruizione dei contenuti multimediali, essendo queste ultime ottimizzate per lo streaming (a differenza di WordPress che non lo è).
Disabilitare WP-Cron
Il gestore di attività pianificate integrato in WordPress, WP-Cron, esegue regolarmente attività pianificate, ma su siti con molto traffico può generare problemi di performance. In pratica, ogni volta che viene caricata una pagina del sito, WordPress verifica se è necessario eseguire qualche attività pianificata.
Su siti a basso traffico, questa procedura non crea particolari problemi ma su siti con parecchio traffico si rivela inefficiente. Per risolvere il problema è possibile disabilitare WP-Cron e sostituirlo con cron job a livello di server per un’esecuzione più efficiente.
Per disabilitare WP-Cron e sostituirlo con un cron job a livello di server, segui questi passaggi:
Il primo passo è disabilitare WP-Cron. Questo si può fare modificando il file wp-config.php
del tuo sito WordPress. Aggiungi la seguente riga di codice:
define('DISABLE_WP_CRON', true);
Questa riga disattiva il sistema di cron interno di WordPress, impedendo che venga eseguito ad ogni richiesta HTTP.
Una volta disabilitato WP-Cron, è necessario creare un cron job sul server che esegua le attività pianificate di WordPress a intervalli regolari.
Questo un esempio di stringa per impostare l’attività pianificata ogni 5 minuti:
*/15 * * * * wget -q -O - https://www.tuosito.com/wp-cron.php?doing_wp_cron > /dev/null 2>&1
I vantaggi dell’uso di un cron job a livello di server sono molteplici: le attività pianificate vengono eseguite in modo più regolare e affidabile e si evita di sovraccaricare il sito eseguendo WP-Cron ad ogni caricamento di pagina con un notevole guadagno di performance, specialmente su siti con molto traffico.
Disabilitare le Emoji e l’API REST
WordPress carica automaticamente i file delle emoji e attiva l’API REST per impostazione predefinita, anche se non necessari per tutti i siti. Disabilitare queste funzionalità può ridurre il numero di richieste HTTP e migliorare i tempi di caricamento.
Come scegliere un hosting performante per WordPress
La scelta di un hosting performante è fondamentale per garantire velocità e stabilità al tuo sito WordPress. Non tutti i provider sono uguali né tantomeno offrono le stesse prestazioni, perciò è importante scegliere con attenzione.
Un provider con servizi di bassa qualità può influire negativamente sul rendimento del sito web riducendone le performance e persino la sicurezza (ma questa è un’altra questione).
Caratteristiche chiave di un hosting performante:
- Supporto per PHP 8+: scgeli provider che utilizzano versioni recenti di PHP per garantire prestazioni più elevate ed una maggior sicurezza.
- Supporto per SSL e HTTP/2: Assicurati che il provider supporti SSL (ormai tutti i provider lo fanno offrendo certificati gratuiti di tipo Let’s Encrypt) e HTTP/2, entrambi essenziali per un sito veloce e sicuro.
- Meglio optare per hosting ottimizzati per WordPress: provider come SiteGround, Kinsta e WP Engine offrono hosting specificamente ottimizzati per WordPress, con caching integrato e server scalabili per blog, siti web ed e-commerce che possono crescere nel tempo senza preoccuparsi dei “colli di bottiglia” legati alla prestazioni dei server o della rete.
- Meglio una VPS: Se il tuo progetto sviluppa parecchio traffico, optare per una VPS rispetto ad un classico shared hosting può fare la differenza in termini di performances. Se non potete permettervi una VPS valutate soluzioni hosting con risorse garantire in termini di CPU e RAM.
- Soluzioni con CDN integrata: Un hosting che offre integrazione con una CDN, come Cloudflare o KeyCDN, riduce la latenza e migliora la distribuzione dei contenuti globalmente.
Investire in un hosting di qualità è uno dei passi più importanti per garantire le migliori prestazioni al tuo sito WordPress. Per maggiori informazioni vi invitiamo a leggere il nostro articolo dedicato ai migliori hosting per WordPress.
Conclusione
Lavorare sulle performance del tuo sito WordPress è molto importante: siti lenti e con blocchi più o meno frequenti non sono apprezzati né dagli utenti né dai motori di ricerca.
Trasformare un comune sito WordPress in un sito web veloce e performante non è sempre facilissimo, ma se seguirai con attenzione i suggerimenti che hai trovato in questo articolo sono sicuro che i risultati potrebbero sorprenderti.