WordPress: Cache me if you can!

Il problema che assilla un po’ tutti gli utilizzatori di WordPress e’ la velocita’; hosting a parte ci sono moltissimi fattori che ne determinano la velocita’.

Ad esempio le query che vengono effettuate verso altri servizi quali Twitter o Facebook o, per chi li usa come me, Web Blend e Design Bump.
Nel footer di ./lsd sono visualizzate le statistiche, il tempo di load per tutte le query di quella pagina:

Footer

Potrebbe sembrare che “solo” 2 secondi e rotti sia un buon tempo di caricamento per 71 queries ma effettivamente non lo e’ per niente! Piu’ di una volta ho ricevuto commenti riguardanti la lentezza del sito.. e sinceramente non so che cosa fare!

Il mio hosting (Playnet) e’ fantastico – e non lo dico solo perche’ sono toscani – piu’ volte mi hanno suggerito migliori strategie per diminuire il tempo di caricamento e ho riscontrato diversi miglioramenti sia eliminando alcune widgets che alcune chiamate verso l’esterno.


Spesso trovo qualche hack in WP Recipes e non nego che un paio di trick mi hanno imputtanato il tutto.. soprattutto con il giochino di ritardare la pubblicazione dei feed di 5 minuti (codice da inserire nella pagina functions.php). Morale: riprendi la pagina originale e rimettici mano per togliere il superfluo.

Un altro simpatico hack che ho provato e’ stato quello di bloccare le richieste in entrata sul blog.. abbiate pieta’ di me!

Anche il plugin WP2Twitter mi e’ stato ostico, non solo perche’ usato in concomitanza con Twitter Tools genera un sacco di “spam” nel retweet dei post (grazie Tommaso!), ma perche’ le sue chiamate alle API di Twitter mi hanno stufata!

Sweetcron ha totalmente cambiato la visualizzazione della pagina del lifestream, facendo sembrare facile il percorso di Minosse nel Labirinto!

Che altro?
Il tema, Arthemia, e’ un microcosmo a parte: l’ho modificato parecchio nel suo core e nella struttura portante per renderlo piu’ flessibile, secondo le mie richieste. Sta di fatto che non spesso riesco a far funzionare le cose: i plugin misteriosamente non funzionano, o funzionano al contrario!

E’ il caso di due plugin: WP Cache e Wp Super Cache. Che cosa fanno questi due plugin?
In sostanza creano dei files .html statici di tutte le pagine del sito, in modo da buttarle fuori al momento di una visita, cosi’ da non dover ricaricare il sito per intero.
I nuovi contenuti si aggiornano e la pagina viene ri-cachata e ci sono un sacco di opzioni per configurarlo al meglio.

Ho passato parecchio tempo a leggere la documentazione su come farli funzionare al meglio e ho fatto diverse prove. Il risultato e’ che il tempo di caricamento delle queries passa da 2 secondi e rotti ad oltre 10….
Cioe’.. 10! E meno male che doveva cachare il tutto!
Ok, forse ho sbagliato qualcosa quindi e’ meglio ricontrollare il tutto.. macche’, ho seguito tutto alla lettera, e’ tutto perfetto e funzionera’.. magari e’ solo il mio browser. Proviamo con Safari, con Opera, con Chrome e anche con IceDove. Oltre 9 secondi e rotti!

Vabbe’, non sara’ compatibile.. provo quindi con WP SuperCache, che mi imputtana subito Bad Behaviour e me ne limita le funzionalita’ (io che sono quella strict e verbose mi ritrovo un lazy e minimal response!). Svuoto la cache, deinstallo per benino l’altro plugin – e nel frattempo c’e’ anche un riavvio del server che gira piano perche’ da quando ho messo WP Cache ha fatto schizzare l’uso della CPU al 110% – configuro, leggo, rileggo e ri-rileggo e attivo finalmente il plugin.
Tempo di caricamento per 81 queries (81?) 13 secondi e rotti. Bene, e’ la prima volta.. facciamo altre prove, dovra’ ben cachare tutto no? Dopo millemila refresh, ricariche e moccoli vari (vedi definizione 3) con gli altri browser faccio la prova finale. Tempo di caricamento per 85 queries (85??) 17 secondi e rotti.
Oh, ma mi piglia pe’ i’ culo? – toscanismo

Deinstallo, chiedo, rileggo, riavvio, ricomincio, faccio una frittata all’aglio, vedo LOTR Extended Version 5 volte e ci riprovo: tempo di caricamento per 91 queries (91???) 22 secondi e spicci.
Eh no, basta, mi ha fatto venire i’palletico! – altro toscanismo

Deinstallo, rimuovo, riparo il database, ricostruisco le table, chiedo perdono in ginocchio sui ceci a quelli di Playnet per lo sfruttamento maximo della CPU e ricarico una pagina a caso di ./lsd.
Tempo di caricamento per 68 queries di 2 secondi e qualcosina.

Sapete cosa vi dico?
Me lo tengo cosi’, che se lo rimaneggio ancora un pochino mi sa che implode =)

Pero’.. se conoscete una soluzione al problema – che non sia l’immergere il pc a bagnomaria nella piscina di Lourdes – sparate: peggio di cosi’ non potra’ andare =D

http://michaelhutagalung.com/2008/05/arthemia-magazine-blog-wordpress-theme-released/

full-stack graphic designer | social media manager | community manager | blogger, autrice e saggista | appassionata di Giappone, poker e pianoforte | mai senza occhiali da sole | attaccabrighe per natura