WordPress è lento? Puoi migliorarlo: ecco le istruzioni

velocita-wordpress
Tempo stimato di lettura: 4 minuti, 51 secondi
Pubblicato il 17 aprile 2015

In questo articolo propongo un po’ di suggerimenti utili per velocizzare WordPress, specialmente nel caso che l’abbiate modificato mediante temi child e plugin. Questa piattaforma di blog, capace di ospitare oltre 60 milioni di siti (dato del 2012), viene utilizzata per via della sua immediatezza e facilità: l’interesse ad ottimizzarne le prestazioni è quindi decisamente sentito.

Ho pensato di riproporre in modo compatto alcune possibili ottimizzazioni (discusse sul nostro sito ormai un po’ di tempo fa), sulla base della mia esperienza su vari siti del genere – attualmente la quasi totalità delle mie consulenze.

Come misurare le performance

Prima di capire come ottimizzare WordPress in termini di prestazioni, è bene riportare i principali strumenti per misurarle:

  1. Google Developers: PageSpeed Insights – approfondito ed utile ma, a mio avviso, parzialmente inaffidabile per alcune analisi, che possono rivelarsi fuorvianti;
  2. il vostro browser, eventualmente usando la connessione dello smartphone e quella di casa (sia wireless che mediante cavo LAN diretto);
  3. PingDom – uno dei miei preferiti, anche qui bisogna essere molto critici sui risultati ottenuti;

L’idea è prendere nota dei tempi di caricamento di almeno 3-4 pagine diverse, su ognuna delle opzioni, e metterli a confronto per capire se c’è qualcosa di migliorabile. Solo così potremo dire realisticamente di conoscere mediamente la velocità del sito e migliorarla un po’, se possibile.

Database

Partiamo subito, quindi, dal primo passo che è possibile effettuare per velocizzare il sito, ovvero ottimizzare il database: ci sono due strumenti principali per farlo, ovvero un plugin di WordPress e PHPMyAdmin. Nel primo caso dovrete installare WP-Optimize, nel secondo basta seguire le istruzioni che abbiamo già pubblicato sul nostro sito: usando questo plugin toglierete di mezzo in un colpo anche i commenti di spam, le vecchie copie di articoli e i residui poco utili (senza toccare dati importanti del blog, ovviamente).

Non aspettatevi miracoli da questo genere di ottimizzazioni, comunque, specie se le effettuate con tool automatici: il modo migliore per ottimizzare gli accessi al database rimane quello di agire direttamente sul codice, soprattutto se state utilizzando personalizzazioni. Gli skill per farlo sono piuttosto avanzati, e richiedono la conoscenza approfondita del codex. Ad esempio, le chiamate alla funzione wp_list_pages andrebbero limitate al massimo, dato che sono tra le più onerose in termini di database.

Server

Se siete in ambiente dedicato / VPS, potete sfruttare una miriade di opzioni di ottimizzazione avanzate come APC, oppure potreste decidere di dismettere Apache per “divertirvi” a testare le prestazioni di nginx (per i siti grossi in WP è quasi uno standard, oggi). Gli hosting condivisi non permettono di impostare granchè, invece: il meglio che potete fare in questi casi è impostare una scadenza per la cache dei file (si fa velocemente via htaccess), ed attivare il modulo di compressione gzip (mod_gzip). Questi due parametri sono, nella mia esperienza, tra i più influenti sulla velocità di caricamento, anche se richiedono un po’ di tempo per essere capiti ed attivati a dovere.

A livello di immagini, provate a listare via FTP tutte quelle che occupano più di una dimensione prefissata (ad esempio più di un 1 mega), e cercate di ridurre peso diminuendo la risoluzione – a patto di non sacrificare la grafica del sito, ovviamente.

Plugin

Una convinzione comune afferma che “più plugin ci sono, più lento sarà WordPress“: questa è un’idea intuitiva che, alla prova dei fatti, si rivela semplicemente falsa. Infatti bisogna sempre considerare le funzionalità che vengono introdotte da ognuno di essi: non tutti i plugin sono uguali e rallentano WordPress! Senza contare che 10 plugin che aggancino hook ed action a casaccio fanno più “peso” di 30 che, ad esempio, estendano i post o facilitino la vita degli editor. Evitate di usare plugin risaputamente pesanti, come alcuni per ridurre le immagini in gruppo, oppure quelli per checkare le pagine 404 (che potete, al limite, attivare solo di notte).

Il tool di Google linkato all’inizio, inoltre, evidenzia le chiamate HTTP all’interno della pagina, le quali a volte possono rivelare quali plugin tendano a rallentare. In certi casi, con un po’ di attenzione e di esperienza, si possono candidare alla rimozione o sostituzione individuando i vari “colli di bottiglia“.

I plugin di cache, di fatto, sono quelli su cui è quasi sempre necessario effettuare tuning di vario genere: se li impostate male tendono a rallentare, invece di velocizzare, il caricamento.

Theme

Sull’ottimizzazione dei theme, fino a qualche tempo fa, ci si limitava a citare Smush.it: in pratica un cloud di Yahoo che caricava le immagini del sito su un host esterno, scaricando l’hosting WordPress dal peso della parte visuale del nostro sito. Ora che il servizio è stato dismesso, molti webmaster si sono trovati disorientati: come e cosa fare?

Anzitutto è possibile usare le CDN come eccellente alternativa, che si integrano ad esempio con l’usatissimo W3 Cache. Sulle CDN (Content Delivery Network) è stata diffusa parecchia mitologia, soprattutto perchè si ritiene (erroneamente) che velocizzino i siti sempre e comunque: la natura stessa di internet, ed il flusso imprevedibile dei suoi pacchetti, smentisce con forza tale convinzione. Provate sempre a fare il triplice test che ho suggerito all’inizio, con e senza CDN, e valutare l’opzione che sembra più snella.

Altro modo per ottimizzare il caricamento è cercare di limitare le include e le chiamate a get_template_part nel theme, lato PHP: non sempre sarà possibile farlo, ed è uno skill anche qui molto specialistico. Tuttavia credo sia l’unico, reale modo per velocizzare i tempi di caricamento senza prendersi in giro, per così dire. Ripulite il theme HTML dalle righe inutili, minificate i CSS e JS (anche qui: meglio se a mano, non con dei plugin), ovvero provate a compattare questi file mediante algoritmi di compressione, riducendo altresì il numero di file richiamati.

Confusi? Purtroppo ottimizzare un sito in questi termini non è affatto banale: spero di essere stato chiaro e di avervi dato le indicazioni giuste per capirci qualcosa in più. Per qualsiasi domanda o chiarimento, il modulo dei commenti è a vostra disposizione.

  • caro Salvatore purtroppo anche l’utilizzo di alcuni Javascript inseriti a manella o da plugin, come Lightbox, sfondo scorrevole, disattivatore di tasto destro e altro, possono davvero compromettere la velocità di caricamento di un buon sito in WordPress, per non parlare di elementi in Flash ancora (purtroppo) molto utilizzati, sebbene è risaputo che sono ormai soppiantati da quelli realizzati in Html5; inoltre concordo sulla necessità di ottimizzare il db regolarmente, in quanto anche le vecchie revisioni di articoli/pagine/prodotti o template installati e rimossi pesano su di esso, andando ad intaccare i tempi di caricamento. ho notato poi, oltre all’Insights di Google, che purtroppo anche tool come Woorank o il W3C validator possono trarci in inganno su alcune analisi, la cosa migliore sarebbe spenderci un po’ di tempo in più e valutare in modo più approfondito. complimenti per l’articolo, un tema un po’ ostico lo hai spiegato al miglior modo!

  • Ciao Salvatore, il tuo articolo è molto interessante, noto pero che alexa rank valuta il tuo sito web Very slow (3.564 seconds), valutandolo invece con google il tuo sito è nella media, mi piacerebbe sapere come mai i risultati dei due tool sono cosi distanti.

    • Ciao Alfons, domanda interessante ma credo che dovremmo girarla a chi ha fatto i due tool 🙂 Del resto ho sempre pensato che se questi strumenti fossero open source sarebbero più attendibili per tutti, così non sarebbe difficile rispondere a domande, più che lecite, come quella che poni.

Shares