Ottimizzare le prestazioni di un sito web in Drupal

Ottimizzare le prestazioni di un sito web in Drupal

Le prestazioni di un sito web sono un aspetto da non sottovalutare soprattutto nel caso di siti non amatoriali ed in quelli con un alto traffico. Anche eventuali limiti di banda e risorse di calcolo imposti dall'hosting provider possono richiedere delle ottimizzazioni.

Quando si sviluppa un sito web usando un CMS, ad esempio Drupal, dobbiamo considerare tre aspetti:

  1. Accesso al database
  2. Elaborazione dei dati
  3. Invio dei dati al client

1. Ottimizzare l'accesso al database server

Nel caso di un sito web realizzato con Drupal il database server sarà solitamente MySQL. Le ottimizzazioni necessarie a migliorare i tempi di accesso e di esecuzione delle query possono essere molteplici. Alcuni consigli su come procedere li potete trovare nell'articolo "ottimizzare un CMS opensource".

Per ottimizzare il database servono degli accorgimenti mirati a rendere più efficiente l'uso delle tabelle del database. Anche configurare adeguatamente le impostazioni del server può servire per ottenere dei risultati migliori.

2. Ottimizzare l'elaborazione dei dati

Questo secondo punto a volte può essere un po' più complesso da analizzare per trovare eventuali colli di bottiglia nel codice sorgente, in ogni caso esistono degli strumenti che permettono di identificare le procedure eccessivamente pesanti lasciando comunque allo sviluppatore il compito di trovare una soluzione alternativa e più veloce.

3. Ottimizzare i dati inviati dal web server

A differenza dei primi due punti, che riguardano i tempi di risposta del sito, esiste un altro aspetto che influisce nella velocità di un sito, ovvero la quantità di dati che viene inviata dal sito stesso al client.

Il browser riceve varie tipologie di informazioni, ovvero:

  • Markup HTML
  • Fogli di stile CSS
  • Codice JS (che poi dovrà essere interpretato localmente)
  • Immagini

(per il momento tralasciamo flash, XML ed altre amenità).

Tutti questi componenti servono al browser per effettuare il rendering della pagina. Ottimizzare la quantità di dati trasmessa può ridurre significativamente il tempo di caricamento di una pagina.

Per ridurre le dimensioni (senza perdita di informazioni) è possibile utilizzare tecniche di compressione del codice CSS/JS che rimuovono il codice superfluo come spazi e commenti ed abbreviano nomi di funzioni e di variabili. Si può inoltre affiancare questo tipo di compressione preliminare con l'invio di dati compressi tramite gzip che si effettua attraverso il web server. Un altro consiglio è quello di diminuire la quantità di file accorpando CSS e JavaScript .

Anche per quanto riguarda le immagini si possono mettere in pratica delle soluzioni analoghe: una adeguata compressione JPG e l'uso di immagini sprite sono operazioni molto vantaggiose.

Ma quanto conviene ottimizzare?

Ridurre le risorse necessarie alla preparazione delle pagine e le dimensioni dei dati inviati al client è fondamentale per fornire un'esperienza d'uso migliore ai visitatori del sito ed inoltre va a beneficio del SEO. Google apprezza i siti web veloci perché li ritiene di maggiore qualità, ciò significa che avranno più possibilità di essere ben indicizzati e posizionati nei primi posti delle ricerche.

Ottimizzare le prestazioni di un sito può abbattere i tempi di risposta anche di diversi secondi e grazie alle tecniche di compressione si può dimezzare il "peso" delle pagine per limitare ancora di più l'attesa del visitatore. Ad esempio ho recentemente portato i tempi di caricamento di un sito da circa 6 secondi ad un secondo e mezzo, riducendo il peso delle pagine di oltre 200Kb. Ora la navigazione è sensibilmente più veloce!