Ottimizzazione Joomla senza utilizzo di estensioni. La mia esperienza

joomla page speedCi tengo a precisare che non sono un esperto di joomla, ma un utente del forum cresciuto qui come voi e con voi, vi seguo, mi informo, e cerco sempre di imparare nuove cose che possano migliorare la mia esperienza col web, mosso come molti di voi dall'irresistibile voglia di apprendere e di migliorarsi.

Scrivo quest'articolo, tra l'altro anche il primo, perchè sono convinto che molti come me avranno sbattuto la testa per molto tempo e ancora lo staranno facendo per cercare di capire come e quale sia il metodo più efficace, efficiente e "sicuro" ( per quanto possibile senza l'uso di plugin o estensioni varie che vanno ad aggiungere codice ad altro codice, e per renderlo fattibile su tutti i siti ) per ottimizzare al meglio un sito costruito con joomla 1.5 e versioni successive, nonchè, motivazione non meno importante della prima, per cercare di spronare da un lato gli sviluppatori a creare estensioni che utilizzino codici puliti ed ottimizzati, dall'altro per esortare quanti si occupano e si interessano di quest'argomento a commentare ed approfondire il discorso.


Quello che scriverò è frutto solamente di esperienza, ovvero di prove e test, fatti su siti di mia proprietà per testare ed estrapolare una serie di metodi sperimentati e testati praticabili dalla maggior parte degli utenti che non dispongono di conoscenze approfondite nel campo della  codicistica, ne della programmazione ( come me ).
Per cercare di rendere l'articolo meno noioso possibile cercherò di dividerlo su punti diversi, seguendo la questione passaggio per passaggio cercando di non soffermarmi, se non con brevi accenni, su quei punti che non riguardano nello specifico la questione.

 


1) ISTALLAZIONE PAGE SPEED SU FIREFOX
Se volete per qualche astruso motivo iniziare ad occuparvi dell'ottimizzazione del vostro sito inizierei con l'istallazione di page speed su firefox!
Page speed è uno strumento, nello specifico un plugin di firefox per analizzare la rapidità di caricamento di una pagina, quindi anche la sua pesantezza.
La pesantezza di una pagina può dipendere da una serie di fattori, cercherò di citare quelli più comuni, e nello stesso tempo quelli che sono riuscito ad ottimizzare con le mie conoscenze, il supporto del forum joomla.it e dalla lettura di alcune guide che dopo tante ricerche  ho reperito nel web, sperando che l'argomento venga commentato ed approfondito in modo particolare da utenti più esperti!
Istallando page speed da questa pagina http://code.google.com/speed/page-speed/download.html potremo effettuare un piccolo test ( per prendere confidenza con lo strumento ) sulla Home del nostro sito internet, la pagina solitamente più importante di un sito e per questo motivo principalmente interessata ad una eventuale processo di ottimizzazione. Andando con firefox sul nostro indirizzo e poi cliccando sul menu in alto di firefox Strumenti > Firebug > Apri Firebug, vi si aprirà una schermata in fondo alla pagina, dove troverete diversi tasti, tra i quali per l'appunto Page speed.
Cliccandoci sopra e poi ancora su > analize performance, noteremo che dopo una breve analisi della pagina aperta, questo strumento ci darà il risultato in centesimi della velocità del nostro sito, nonchè evidenzierà una serie di errori suddivisi in 3 colori, cerchio rosso con punto esclamativo, sono gli errori (in termini di ottimizzazione) principali o se vogliamo più frequenti, responsabili della pesantezza della pagina analizzata, seguiti da errori contrassegnati da triangoli arancioni che identificano errori di altro tipo presenti con frequenze minori ed in fine le spunte verdi segnale che indica un errore accettabile per la minor frequenza, appunto passabile.

 

2) SCELTA DEL TEMPLATE
La scelta del template è un passaggio fondamentale, per avere un sito già in partenza leggero, in modo particolare quello che è importante osservare è: la quantità di javascript presenti, di css, ma anche la grafica che dev' essere quanto più possibile leggera. Un altro fattore non meno importante è il numero di posizioni per i moduli, cercate in partenza, salvo il caso in cui non siate capaci di eliminare le chiamate nel template di scegliere un template che si avvicini il più possibile alle voostre esigenze (es: non scegliete un template con 30 posizioni se a voi ne servono solo 7/8 quei richiami alle posizioni pesano ).

 

3)LUNGHEZZA DELLA HOMEPAGE
Cercate di mantenere la homepage il meno lunga ed articolata possibile, cercando di minimizzare estensioni inutili, e appesantimenti nelle richieste come statistiche esterne o contenuti che facciano riferimento ad altri siti per il caricamento es anche il meteo.

 

4) SCELTA DEI COMPONENTI, MODULI, PLUGIN ECC..
Nella scelta delle estensioni, bisogna fare molta attenzione, non essendo scritte direttamente dal team di joomla, molte di queste sono scritte con i piedi, quindi in questo caso bisognerà fare attenzione ad alcuni passaggi:
- pulizia del codice (per chi se ne intende)
Gli elementi di cui dovremo fare caso in queste situazioni sono principalmente i css ed i javascript ( più sono più il sito sarà pesante ).
- presenza massiccia di js
- presenza massiccia di css ( molte volte ho notato che alcune di queste estensioni, riportano un css principale che ne va a richiamare molti altri, in alcuni casi con il comando @import, vecchio ed in disuso, che provoca pesantezza per il fatto che dopo che si analizza quel css. lo stesso rimanda all'analisi di altri.
- Evitare estensioni, template, con diversi stili o comunque nel caso li si volesse utilizzare, cercare una volta scelto lo stile da utilizzare di eliminare gli altri che non servono ma che vengono ugualmente processati!

Una volta che abbiamo analizzato i prerequisiti fondamentali passiamo all'effettiva ottimizzazione dei contenuti, immagini, ecc che in una prima analisi non sono stati presi in considerazione.

 

5) QUALI "ERRORI" O FREQUENZA DEGLI STESSI PUO' ESSERE OTTIMIZZATA
In questo passaggio cercherò di citare quelli che personalmente sono riuscito a minimizzare ed ottimizzare, sperando sempre che qualcuno ci aiuti ad ottimizzarne degli altri. Partirò da quelli più semplici da risolvere.
- Optimize images : In questo caso page speed ci darà un notevole aiuto, poichè facendo la nostra analisi della home page come descritto nel punto 1°andando poi a guardare nell'apposita voce Optimize images, noterete che questo fantastico plugin ci segnalerà a cascata una serie di immagini che possono essere ridotte, nonchè ci darà la possibilità di scaricare la versione dell'immagine ottimizzata cliccando su "save as" per poi ricaricare l'immagine ottimizzata tramite ftp nella posizione indicata dallo stesso page speed. 
- Minifi CSS : Il procedimento è molto simile a quello precedente, si salva la versione ottimizzata e la si ricarica tramite ftp ( La versione ottimizzata che si scarica non è altro che una versione identica all'originale ma riscritta in modo ordinato, cercando di minimizzare gli spazi bianchi )
- Minifi Javascript : Il procedimento è lo stesso identico al precedente e le dinamiche di compressione ed ottimizzazione le stesse di quelle citate per Minify css.
- Specify image dimensions : Molte volte ci dimentichiamo di inserire le dimensioni di un'immagine, ecco questo per page speed è un errore, quindi almeno dove possibile, es: negli articoli inserire nel pannello dell'immagine, le dimensioni non solo quando si scala un'immagine.
- Avoid bad requests :Questo errore appare quando esistono delle richieste es:  @import per i css sopra citati ( quindi quando si cancellano css, bisogna eliminare anche il richiamo agli stessi ) ed altre che riportano ad una pagina 404 "Not found" o 410 "Gone".
- Avoid CSS @import : errore generato quando viene usata con troppa frequenza questa stringa @import url("second.css") per importare, richiamare css esterni in un file principale css, se è possibile sostituire la predetta stringa con la seguente:


- Combine external CSS : Purtroppo per questo errore non posso darvi una risoluzione per così dire completa, ma fa riferimento alle prime regole di base che vi ho dato, se sceglierete buoni template, e analizzerete con cura le estensioni istallate questo errore potreste non visualizzarlo poichè avreste comunque una quantità irrisoria di css che non verrebbero presi in considerazione da page speed come frequenza massiccia, quindi visualizzati con la spunta verde.
- Combine external JavaScript : Lo stesso vale per questo tipo di errore, mentre per il precedente compattando manualmente qualche css che riportava il richiamo @import sono riuscito a minimizzare la frequenza dell'errore, per i java non ci sono riuscito ( poichè non volevo rinunciare all'utilizzo di alcune estensioni, essendomi trovato a dover ottimizzare i miei siti che stavano già sul web ), quindi anche per questo errore vi consiglio di pensare e scegliere con parsimonia le estensioni come descritto nel punto 3°.

 

6) ATTIVAZIONE DEL Gzip
Anche se questa attivazione non ha nulla a che vedere con page speed, migliorerà l'esperienza degli utenti nella navigazione all'interno del vostro sito internet,  poichè comprimendo le pagine velocizzerà il loro caricamento di circa il 70%.
Si attiva andando nel pannello Configurazione globale > server, e spuntare su "SI" alla voce "Compressione pagine GZIP".
Per quanto riguarda questa voce sarebbe interessante anche capire come comprimere tutti i css ed js ma anche le imm ed swf ecc.. che non vengono compressi da questo strumento, e per ora ho capito solo come comprimerli avendo a disposizione un intero server, e disponendo di un .htaccess

Per ora queste sono alcune indicazioni che vi porteranno sicuramente a migliorare il vostro punteggio page speed, quindi a rendere più veloce il vostro sito internet.
Ne sto vedendo delle altre, come ad esempio "Combine images using CSS sprites" che serve appunto per combinare tutte le immagini in una sola, divisa in tante immagini, che renderebbe più veloce l'analisi.
Spero di aver dato un buon contributo (sperando che qualcuno posso implementarne il contenuto, aggiungendo la propria esperienza!!)

 

7) OTTIMIZZAZIONE TABELLE DEL DATABASE
Le tabelle del database devono di tanto in tanto essere ottimizzate, cancellando i contenuti rimasti inutilizzati o di estensioni che non provvedano in automatico alla loro eliminazione ( es componenti, moduli e plugin che non eliminano le tabelle per consentirne l'aggiornamento, se non vi servono più poichè non avete più bisogno dell'estensione eliminatele ).

Un ringraziamento particolare a:
- Ilvanni, per i consigli preziosi, alcuni dei quali sono stati inseriti all'interno di questo articolo.
- Altri ringraziamenti anche ad altri autori esterni al sito joomla.it

Ricordo che questo articolo a differenza di altri, riporta solamente i punti ottimizzabili "senza l'uso di plugin esterni".

CommentaCommenta questo articolo sul forum