Velocizzare WordPress: La Guida (semi) Definitiva per Rendere più Veloce il Tuo Blog
"Io sono velocità." (cit.)

Come forse già saprai, da qualche tempo Google ha cominciato a considerare la velocità di caricamento di una pagina web come uno dei nuovi fattori rilevanti al posizionamento di quest’ultima tra le SERP.
L’ottica del fornire all’utente un’esperienza di navigazione positiva passa dopotutto anche per una maggiore reattività dei risultati proposti; a nessuno piace trovare finalmente il link perfetto per le proprie esigenze e scoprire che l’intero dominio impiega mezzo minuto per passare da una pagina all’altra.
Così, da più parti si è potuto assistere a reazioni del tipo: “Argh! Il mio blog è troppo lento! Ancora troppo lento, dannazione!” a “Non ho la minima idea di cosa Matt Cutts stia dicendo. E poi chi divavolo è Matt Cutts?” passando per “Ecco, Google polverizzerà le mie posizioni in SERP solo perché non ci capisco un tubo di tutte queste cose tecniche.”
Ok.
Per prima cosa: rilassati.
Probabilmente Google non si dimenticherà di te solo per via di quel paio di secondi in più nel caricamento della home del tuo blog. Probabilmente ancora per diverso tempo saranno altri i fattori davvero rilevanti per valutare la qualità delle tue pagine.
Ciò nonostante, la strada è tracciata: la velocità di caricamento del tuo blog influisce (e influirà sempre di più) sulla sua posizione nei risultati di Big G.
È tempo di agire!
Fase #1: Analisi
Prima di sellare il tuo destriero e correre lancia in resta all’attacco di quei maledetti secondi extra, è bene fermarsi a riflettere qualche istante.
1. Quanto sei veloce?
Se è vero che Google solleva la questione, proprio Google presenta i giusti strumenti per valutare la propria condizione. Gli strumenti per i Webmaster di Google, già indispensabili per diversi altri compiti, ti permettono di osservare lo status del tuo blog semplicemente recandoti sotto “Funzioni sperimentali” e poi sotto “Prestazioni del sito”.
Potrai avere una panoramica della velocità reale del tuo blog osservando i tempi di caricamento delle pagine principali per gli ultimi 6 mesi (a partire da ottobre 2009). Per una manciata di pagine di esempio ti verranno anche presentate le principali criticità e il guadagno in termini di KB per ciascuna attività che potrai mettere in pratica.
2. Che performance hanno le tue pagine?
Per valutare invece la situazione singolarmente, pagina per pagina, non posso che consigliarti i 3 migliori strumenti che hai a disposizione:
- Yahoo! YSlow (Firefox)
- Google PageSpeed (Firefox)
- Google SpeedTracer (Chrome)
YSlow e Pagespeed sono basati su Firebug, componente aggiuntivo per Firefox utile anche per numerose altre attività di ispezione del codice. YSlow in particolare si basa sulle “Best Practices for Speeding Up Your Web Site” (sempre edite da Yahoo!) a mio parere il miglior modo di approfondire la questione se mastichi un minimo di inglese tecnico.
3. Stai usando la compressione gZip?
Terzo e ultimo test che puoi fare alle tua pagine -ma sarebbe più corretto dire al tuo hosting- è quella di verificare la presenza o meno dell’estensione mod_gzip. La compressione gZip permette che i dati vengano trasmessi dal tuo hosting al browser di turno in formato compresso, risparmiando banda e permettendo una più rapida composizione delle pagine.
Puoi controllare se le tue pagine sfruttino la compressione gZip direttamente online. In caso contrario dovrai informarti presso il tuo hosting per verificare la possibilità di attivare questo componente per il tuo dominio.
Se non sei ancora sicuro della compressione delle pagine (singole) che stai visualizzando puoi sfruttare l’ottima Web Developer Toolbar per analizzare gli header di risposta. Nella toolbar è sufficiente recarsi sotto “Informazioni” e poi su “Visualizza Header di Risposta”.
Fase #2: Azione
Ora che hai stabilito la situazione in cui versa il tuo blog puoi procedere a rimediare (o migliorare!) le prestazioni di quest’ultimo verso i tuoi cari lettori.
1. Aggiorna il tuo CMS
Sembra la considerazione più banale e scontata dell’universo tutto, eppure un CMS aggiornato è sicuramente più snello -e più sicuro- di tutte le sue release precedenti. Aggiorna WordPress non appena ne hai l’occasione e mantieni il codice che gestisce il tuo intero blog al massimo delle sue performance.
Aggiorna WordPress. Adesso.
2. Rimuovi quanto più PHP possibile
Quando si utilizzano temi di terze parti, spesso gratuiti o comunque adattati alla meno peggio, non è raro imbattersi in una quantità esorbitante di codice facilmente ottimizzabile.
Il succo è: cerca sempre di rendere statica la quantità maggiore di codice PHP presente nel tuo layout. Non solo stresserai meno la macchina che gestisce il tuo dominio, ma renderai più veloce la composizione delle pagine, finalmente libere dal dover generare (ancora e ancora) sempre lo stesso output.
Uno degli esempi più classici è il menù di navigazione.
Definisci i link fornendo l’URL completo (es. http://francescogavello.it/nome-pagina ) anziché:
<?php bloginfo('url'); ?>/nome-pagina
e allo stesso modo fai attenzione a fornire meno riferimenti possibili a codice PHP da interpretare anche su:
- link a feed RSS globali o dei commenti
- link a pagine autore
- link di navigazione nei menù principali
- titolo del blog e descrizione (motto)
3. Sposta i Javascript al fondo del codice
Il codice Javascript necessita tempo per essere interpretato e nel fare ciò la generazione della restante pagina nel browser viene ritardata sino al suo completamento. Spostando la maggiore quantità possibile di codice JS nel footer del tuo blog (o genericamente più in basso possibile nel codice HTML) permetti ai tuoi lettori di cominciare ad usufruire della pagina molto prima che l’intero JS sia stato caricato.
Esistono soluzioni basate su plugin per spostare automaticamente tutto il codice javascript nel footer senza colpo ferire. L’unico problema è che suddetti plugin si basano sulla corretta dichiarazione della presenza di javascript stesso da parte degli sviluppatori terzi. Cosa che, come puoi immaginare, non sempre avviene.
Inoltre, rimboccati le maniche e indaga ogni singolo plugin per stabilire se e come sia possibile rimuovere l’inclusione di JS (e CSS) dalle pagine in cui questo non sia strettamente necessario! cForms permette ad esempio di indicare l’ID numerico delle pagine in cui il form sarà incluso, ripulendo tutte le altre da una vagonata di codice assolutamente inutile.
Una buona alternativa, svincolata dalle possibilità del singolo plugin, è quella di utilizzare Headspace (uno dei plugin SEO di cui parlo spesso) per sfruttare uno dei suoi moduli interni in grado di caricare file JS solo in alcune pagine del tuo blog.
4. Pochi ma buoni: seleziona i tuoi plugin
La scorsa settimana ti ho parlato dei 25 plugin che più di ogni altri hanno contribuito alla crescita del mio blog.
Forse non ti serviranno tutti e venticinque. Forse non ti serviranno nemmeno tutti e venticinque in contemporanea. Il fatto è che dovresti scegliere i plugin che utilizzi con saggezza.
Prima di installare l’ennesimo plugin chiediti:
- Posso ottenere lo stesso risultato (e sono in grado di farlo) con una funzione in PHP?
- Sto già utilizzando plugin che in parte permettono di ottenere lo stesso risultato?
- Qual è l’apporto di JS e CSS alle pagine del blog? Posso ridurlo dalle impostazioni?
e soprattutto:
- Ciò che voglio ottenere serve davvero ai miei lettori?
5. Usa gli sprite CSS
Creare sprite con i CSS è un’operazione tutto sommato semplice che ti consente di ridurre le richieste HTTP verso il tuo hosting. A fronte della snellezza guadagnata dalle tue pagine è necessario però che tu metta mano a qualche frammento del codice HTML/CSS che compone il tuo blog.
Esistono ottimi articoli (uno tra i più conosciuti, da A List Apart) che ti consentono di essere operativo nel giro di pochissime ore anche nei casi più complessi. Per i meno tecnici, esistono anche soluzioni (semi) automatiche: ne aveva parlato TomStardust diverso tempo fa.
6. Ottimizza le immagini rimanenti
Ora che hai sfruttato l’eleganza e la potenza degli sprite CSS, puoi dedicarti alle immagini che, per un motivo o per l’altro, non è stato possibile infilare nello sprite principale.
Puoi darle in pasto a tool automatici come Smush.it (di Yahoo), in grado di generarne una versione ottimizzata in un singolo click. Se sei un amante della flessibilità e delle cose-decisamente-più-avanzate potresti trovare decisamente interessanti alcune tecniche di ottimizzazione intelligente di immagini in formato PNG e di immagini in formato JPG.
Ricorda inoltre di evitare quanto più possibile il ridimensionamento via HTML. Evita di caricare un’immagine di diverse centinaia di pixel di larghezza solo per presentarla poi come thumbnail.
Di nuovo, ne guadagnerai in leggerezza della pagina e reattività del browser nel comporla.
7. WP Super Cache
WP Super Cache è uno di quei plugin che spesso ci si ripromette di installare in un prossimo futuro, quasi si rimanga spaventati dalla configurazione appena più complicata del normale e farcita di termini strani (expire time, cache status e così via…)
Neanche a dirlo, una volta superato lo scoglio iniziale è una delle armi più potenti di cui disponi per fornire velocemente le tue pagine ai tuoi lettori.
Personalmente lo utilizzo con le seguenti impostazioni di massima:
- Super Cache Status: ON (WP Cache and Super Cache enabled)
- “Don’t cache pages for logged in users”: attivato
- Expiry time: 3600 seconds (un’ora)
8. Ripulisci la sidebar!
Come ultima cosa, sposta leggermente lo sguardo verso la sidebar del tuo blog e chiediti: “Ho davvero bisogno di tutta questa roba?”
- Antipixel di aggregatori e community
- Social widget
- Tab multiple che recuperano elenchi su elenchi di articoli
- Player & Slideshow
sono tutti elementi che, insieme ad appesantire come macigni la velocità del tuo blog, contribuiscono anche a diluire la quantità di attenzione che ogni singolo lettore è disposto a dedicare alla tua sidebar (e su questo magari ci torneremo in futuro).
Chiediti veramente quali sono le azioni che vorresti che i tuoi lettori compiessero sulla tua sidebar e rimuovi ogni cosa non sia funzionale a suddetti compiti.
Per chi stiamo ottimizzando il tuo blog?
Personalmente, credo che la messa a punto di WordPress sia uno degli aspetti più interessanti del bloggare. Se si possiedono anche solo minime conoscenze di base è possibile (con un po’ di buona volontà) ottenere ottimi risultati.
A conti fatti, questa si può dire una guida di quelle definitive?
Assolutamente no.
Credo di aver mentito, nel titolo!
So che molti di voi hanno scritto del velocizzare WordPress in questi ultimi mesi.
Alcuni link li ho tenuti da parte (e li trovi poco più sotto), altri mi sono proprio sfuggiti. E sono davvero interessato a scoprire come altri blogger abbiano affrontato la questione. So di chi ha rimosso del tutto le anteprime dalla propria home, chi (più ferrato sul lato sistemistico della faccenda) ha messo mano a complesse configurazioni di Apache, e via discorrendo.
Ottimizzare il tuo blog non deve essere vista come un’attività da mettere in pratica solo per dare il contentino a Google. È invece un segno di rispetto verso i tuoi lettori, di attenzione verso chi ti legge e sceglie di dedicarti ogni giorno numerosi (preziosi) minuti del suo tempo.
Vale la pena pensarci, non credi?
Qualcos’altro da leggere
- Sai perchè dovresti ottimizzare la velocità di caricamento del tuo blog?
- Ridurre i tempi di caricamento del proprio blog con Apache e GZip
- Come velocizzare il tuo blog su WordPress
- Ottimizzare Wordpress per renderlo più veloce
- How to Speed up Wordpress
- Site Speed, Google’s Next Ranking Factor
foto: Luciano Meirelles
scritto da
Francesco Gavello
il 05 febbraio 2010
| 36 commenti
in: Blogging Tips | Featured | Tool e Risorse
Continua a leggere
Share The Love!
Aiuta FrancescoGavello.it a crescere e ad avere sempre più articoli di qualità!







Io con WP Cache and Super Cache ho migliorato parecchio, comunque una faticata all’inizio non salvava niente e andava in errore… chi la dura la vince.
Io aggiungerei anche WP Autoptimize, che aiuta a sistemare i JS e CSS.
C’è da chiedersi se andare a rimuovere a mano tutto il codice possibile php valga la pena rispetto al tempo che potremmo impiegare, ho una domanda: quanto il php incide effettivamente sui tempi di caricamento?
Mettere mano a tutti i file richiede un paio di ore minimo, non vorrei che poi il risultato sia del tutto trascurabile in quanto il miglioramento è in termini di microsecondi
Be dipende ovviamente dal tipo di codice.
Certo che se sono presenti componenti javascript (come ce ne sono tanti in joomla che conosco di più) che per ottenere determinati effetti settano timeout, la cosa influisce.
Allo stesso modo se si tratta di componenti che caricano immagini.
Il php sulle tempistiche dovrebbe infierire meno del javascript, essendo server side, certo che su un alto numero di link (che già è una cosa negativa per il SEO) se ogni volta deve richiamare un file di configurazione e cercare un qualche parametro, se pure si tratta di un operazione da pochi millisecondi, è pur sempre tempo buttato via.
Mi riferivo a wordpress e all’uso del php che viene comunemente fatto all’interno dei template più o meno professionali che si trovano in giro. Secondo me il ruolo del php è abbastanza ininfluente sui tempi di caricamento.
manca la considerazione sulla velocità di chi naviga il sito, parte del punteggio è data anche da questo parametro.. è assurdo che lo sia, ma se hai molti visitatori con una connessione lenta influisce aimhè
Ho diversi siti su Aruba. Per la compressione GZIP ho utilizzato il secondo metodo descritto qui http://it.federicomoretti.name/articoli/ridurre-i-tempi-di-caricamento-del-proprio-blog-con-apache-e-gzip/
Sembra funzionare.
Bella guida! La compressione Gzip aiuta un sacco. Peccato che, tanto per citarne uno su tutti, Aruba non la permetta o non possa abilitarla (ho chiesto al loro servizio di assistenza).
Eppure il mio sito che è su Aruba risulta usare Gzip…sebbene non abbia modificato nulla io.
Tutti ottimi consigli, ma per molti di questi purtroppo è necessaria una conoscenza tecnica (sopratutto di Php) notevole…:((
Guida fantastica!!!
Grazie mille!!!
In realtà la velocità di chi naviga il sito non influenza la velocità di esecuzione degli script php perché questa è un operazione che viene effettuata lato server e quindi completamente indifferente all’utente finale ed anche ai motori di ricerca che vedono solo il risultato HTML finale.
Il discorso in termini di performance si ottiene ovviamente su siti molto carichi che vedono di buon occhio una riduzione delle istruzioni PHP da eseguire…e a questo proposito è sempre possibile utilizzare ad esempio xcache che fa cache di php.
Ovviamente questo discorso inizia ad essere importante solo su grossi numeri e solo se siete su un server che non ha molte risorse hardware.
La complessità computazionale delle pagine infatti rimane la stessa sia che si eseguano 1 volta queste istruzioni (/nome-pagina) sia che le si eseguano 10000 volte.
Quando si parla di complessità computazionale il tempo di esecuzione viene espresso in termini di numero di operazioni necessarie affinché l’algoritmo termini in modo da renderlo valido in tutti i tipi di calcolatori.
Cosa significa questo ? Che la complessità computazionale di tutte le linee di codice che hanno complessità costante non vanno ad aumentare in nessun modo la complessità computazionale complessiva della pagina.
Lo stesso vale per i cicli:
Esempio 1:
ciclo 1 – O(n)
ciclo 2 – O(n)
istruzione 1 – O(1)
istruzione 2 – O(1)
—-
Complessità totale O(n)
Esempio 2:
ciclo 1 – O(n)
ciclo 2 – O(n)
ciclo 3 – O(n)
ciclo 4 – O(n)
—-
Complessità totale O(n)
Esempio 3:
ciclo 1 – O(n^2)
—-
Complessità totale O(n^2)
PER CONCLUDERE
Esempio 1 e 2 hanno la stessa efficienza e complessità computazionale
Esempio 3 ha una complessità computazionale maggiore e quindi meno efficiente.
Anche io in un mio post sulla velocizzazione di WP ho incluso questo consiglio anche se ovviamente va applicato di caso in caso e senza aspettarsi chissà cosa.
domanda?
i dati raccolti dale varie toolbar es appunto google tolbar
erano una volta (almeno qualche anno fa) influenzati dalla velocità dell caricamento pagina ovvero (anche se assurdo) dalla velocità della linea nella attribuzione di punteggio (forse poca roba ma cmq presente)
adesso non è più cosi?
Questa sì che è una bella domanda!
Sinceramente non ne ero affatto a conoscenza: chi sa, parli
Da quello che ho capito io anche la funzione che si trova in webmaster tools relativa ai tempi di caricamento è basata effettivamente sul tempo di caricamento dei visitatori.
Ne è una prova il fatto che vengono mostrati anche i tempi di caricamento delle pagine password protected e dunque aree riservate.
Grazie mille Andrea, devo dire che hai esposto la situazione in maniera molto chiara!
Interessante anche il post che riporti in firma, soprattutto quando parli di escludere selettivamente JS e CSS agendo solo su functions.php
credo che ci fosse in un articolo di bernablog o (in uno dei blog però in inglese che dovrei avere fra i favoriti e non più fra i feed aihè) se lo trovo posto il link
Grazie a te Francesco.
Si il piccolo accorgimento per escludere JS e CSS in eccesso è un ottimo trucchetto che con facilità permette di guadagnare molto
Ottima lettura anche per un NON-Programmer come me.
Domanda: template semplici, sobri e minimalisti che rispettino tutte le regole di semplicità e di minor carico?
Ne hai da consigliare?
Ciao
È un pezzo che sfoglio il marketplace di Envato, in particolare la sezione dedicata ai temi per WP blog&magazine: http://themeforest.net/category/wordpress/blog-magazine/personal
Se dai uno sguardo alle live preview vedrai nove volte su dieci del codice estremamente pulito e ben scritto (oltre a dei design decisamente interessanti ad un prezzo irrisorio)
TKS, mi ci fiondo
Confermo che i temi linkati sono degli ottimi temi. Consiglio super.
Questo post non riesco a visualizzarlo né con Chrome 4 né con IE8, Opera 10 e Safari 4 (su Windoze XP). Lo vedo e riesco a commentare solo con Mozilla.
Ho provato con Browsershots e conferma:
http://browsershots.org/screenshots/856466448917f08cea6b2a50d45987f2/
Scusa Fabs, errore mio. Per la cronaca si trattava di un commento annidato nell’HTML che spezzava il layout. Ho ricontrollato proprio adesso con browsershot e sembra tornato tutto a posto.
Grazie mille della segnalazione!
Beh, ci mancherebbe di doversi scusare! Certo che dopo tanti anni di diffusione dell’HTML, dovere ancora controllare con diversi browser per evitare errori, pare incredibile… Ovviamente l’unico browser che “superava” l’errore è quello che usi tu, se no te ne saresti accorto!
Temevo peggio, qualcosa tipo un pezzetto di HTML perso nel template o un errore generato da TinyMCE o qualcosa del genere.
Io ero come in tanti altri su un server Aruba, super lento. Le mie pagine http://www.lepedanevibranti.it erano in puro HTML appena mi son spostato su un dedicato ho guadagnato in velocità, qualche settimana dopo ho notato una scalata della serp.
Ho poi installato wordpress ed è interiormente migliorato il mio posizionamento. Ho infine dirottato su drupal ed ho avuto un decremento. Che dire ciò che dici è fondamentale velocità software e hardware sembrano piacere a The Big G. Il problema però nasce ad esempio quando hai uno shop che per quanto puoi fare, è sempre lento.
Altra cosa, a gennaio ho avuto un problema con il server e ben 3 volte per mezza giornata sono stato irraggiungibile, a seguito di quei giorni Google mi ha abbassato nella serp. Ora la mia esperienza dice che la velocità è più importante di quanto si pensare, almeno parlando di siti ancora nell’ombra, diverso è x grandi siti. Amazon ed ePrice ad esempio sono estremamente lenti, dovuto ai mille script, Java e jquery nel caricamento, eppure sono posizionati benissimo, forse qui nn penalizza.
Ciao a tutti
Ciao Fulvio…ricorda sempre che la velocità è solo un fattore tra i tanti e sicuramente nei casi Amazon (che non è affatto lento) ed ePrice non è determinante visto che hanno tonnellate di link e tutta un’altra serie di fattori importanti per Google.
Un altro discorso è invece se il tuo sito risulta down…allora si che google ti declassa, ma è anche pronto a farti risalire se poi torna tutto alla normalità.
[...] Velocizzare WordPress: La guida (semi) definitiva per rendere più veloce il tuo blog Utili consigli per velocizzare il proprio blog. [...]
[...] gli utilizzatori di WordPress consiglio la lettura dell'articolo "Velocizzare Wordpress: La guida (semi) Definitiva per rendere più veloce il tuo blog" scritto dall'amico Francesco [...]
Qualcuno ha mai usato total cache al posto di super cache?
lato server ci sarebbero ancora parecchie cose da fare…
giusto per citare qualcosa posso suggerire apc e/o memcache, expires header ed etag
per chi volesse approfondire consiglio la lettura di questo libro “creare siti web ad alte prestazioni”
su server in cui sono presenti apc e/o memcache il plugin total cache potrebbe essere più performante in quanto riesce ad usare nativamente questi sistemi di cache.
aggiungo ancora che lato wordpress a volte sarebbe meglio aggiungere qualche indice in più alle tabelle e poi ricordarsi di ottimizzarle di tanto in tanto (vedi wp-optimize).
un ultima cosa: “WordPress Related Posts” non mi risulti abbia sistemi di cache rendendo lo un succhiarisorse notevole.
Suggerisco “Yet Another Related Posts Plugin” che prepara una tabella di appoggio in cui sono già associati i “related post”
Ciao Maurizio hai ragione sulle cose da fare lato server, ma credo che tra APC e memcache sia migliore Xcache che carica molto meno la CPU rispetto ai due citati.
Anche su Total Cache ci sono alcuni pareri discordanti sul web che lo considerano molto più resource-consuming.
Come si abilita la compressione Gzip?
Chi ha una bozza di codice testato?
Ciao Stefania,
puoi seguire questo articolo:
http://zemalf.com/1076/blog-htaccess-rules/
al punto #6: “Compress content” per attivare la compressione (mod_gzip o mod_deflate) da .htaccess
Thanks for linking to my post Francesco! Don’t understand much Italian (without Google translator), but seeing someone recommend my post is always great
Hi Antti!
Great resources on your post
[...] Uno degli aspetti che google sta tenendo in considerazione per il posizionamento è la velocità di caricamento delle pagine. [...]
Per lo sprite css delle immagini consiglio:
http://spriteme.org/
da provare!
Ciao!