Uno dei “trucchi” suggeriti dai programmi che ottimizzano i siti web, tipo Google Page Speed o i Webmaster Tools, è quello di far caricare le immagini e gli altri elementi statici da un sottodominio separato. I browser, infatti, sono impostati per aprire solo un certo numero di connessioni parallele verso il server, in modo da non sovraccaricarlo. Spesso questo limite è basso, con la conseguenza che gli elementi vengono di fatto caricati in sequenza, uno dopo l’altro, senza sfruttare il possibile “parallelismo” del server. Allora gli ottimizzatori suggeriscono di definire un sottodominio tipo immagini.duechiacchiere.it, al quale tutti gli elementi grafici faranno riferimento. Analogo si può fare per javascript e fogli di stile, volendo. Tophost, il provider che mi ospita, consente di fare questa cosa, e dunque ne ho approfittato al volo.
Di fatto, nel mio caso specifico, l’operazione si suddivide in tre passi. Vediamoli qui di seguito in dettaglio come creare un sottodominio per le immagini su Tophost.
Definire le regole
Nella cartella principale del tuo spazio web crea un file .htaccess (se usi i permalink personalizzati, probabilmente ce n’è già uno generato da WordPress, non sovrascriverlo mi raccomando). Supponiamo che le tue immagini siano nella cartella /wp-content/themes/ilmiotema/images. Allora inserirai questo codice:
# Sottodominio immagini.ilmiosito.it
RewriteCond %{HTTP_HOST} immagini.ilmiosito.it [NC]
RewriteCond %{REQUEST_URI} !^/wp-content/themes/ilmiotema/images
RewriteRule (.*) /wp-content/themes/ilmiotema/images/$1 [L]
La voce nel DNS
Aggiungi una nuova voce nel DNS del provider, per dire che immagini.ilmiosito.it non è altro che un “alias” del sito principale (ma questo i browser non lo sanno). Con Tophost basta andare nel Pannello di controllo, cliccare sul pulsante per la Gestione del DNS, accettare l’avviso di sicurezza (del tipo “se fai casino qui e non ti va il sito, sono cavoli tuoi”, giustamente), e procedere alla schermata successiva. Qui clicca su Aggiungi nuovo record, e compila i campi in modo che
- Type = CNAME
- value = w-02.th.seeweb.it. (il punto finale fa parte della stringa, mentre il “nodo” su cui risiede il tuo sito potrebbe non essere w-02, ma un altro… usa lo stesso valore che trovi nella riga che definisce il dominio principale www)
Aggiorna il tuo tema
A questo punto non rimane che cambiare tutti i riferimenti (nei fogli di stile come nel sorgente della pagina) alle immagini, da www.ilmiosito.it/wp-content/themes/ilmiotema/images/foto.jpg in immagini.ilmiosito.it/foto.jpg, che tra l’altro è pure più breve e facile da ricordare. Vale la pena ricordare che, comunque, questa tecnica potrebbe aumentare il carico di lavoro del server su cui gira il tuo sito: nel caso di grossi portali è ovviamente consigliato avere un vero e proprio ambiente separato da cui servire le immagini, per ottenere reali benefici in tal senso.
Nel mio caso, proprio per evitare questi inconvenienti, ho usato un approccio ibrido, in cui alcune immagini fanno riferimento all’indirizzo vecchio ed altre a quello nuovo. Attivando inoltre alcuni meccanismi di caching a vari livelli (di cui parlerò nelle prossime puntate), l’impatto sul server dovrebbe risultare limitato.
E’ utilissimo quanto hai detto ma per un blog come il mio o il tuo secondo me il vantaggio è così piccolo che passa quasi inosservato. Azioni simili vanno bene su grossi portali in cui devi anche gestire e distribuire il carico per non intasare un unico server… per le 4 immagini da presentare ad un utente per caricare il mio blog sarebbe ridicolo (il vero limite è l’ampiezza di banda più che altro) e probabilmente aggiungerebbe un overhead inutile (oltre a diventare un’ulteriore cosa da gestire nel tempo considerato che non si tratta di un’impostazione di default).
Ciao,
Emanuele
PS: credo d’esser nato per fare l’avvocato del diavolo, in ogni caso questa, tra le altre (tante) critiche che ti riservo credimi che è la meno ferma…
Emanuele, 27 gennaio 2010 alle 23:28 » rispondi
@Emanuele: beh, non sono proprio “4″ immagini quelle sul tuo blog, ma 43
Sarebbe interessante fare dei test con software tipo ab (apache benchmark) per capire la reale differenza tra le due impostazioni. Comunque nel mio caso, Google Webmaster Tools mi dice che in media l’utente risparmia qualche secondo con il sottodominio separato che uso, il che tutto sommato non è male
camu, 28 gennaio 2010 alle 02:19 » rispondi
@camu: A furia di racimolare secondi tra un po’ le pagine viaggeranno come schegge, quasi in tempo reale.
PS: ma bisognerà cominciare a pensare ad una tessera fedeltà con raccolta punti… Che sò, 1000 commenti e si vince una pagina sul tuo blog… Vabbè ok sto delirando, colpa della notte insonne… :/
CyberAngel, 28 gennaio 2010 alle 12:47 » rispondi
@CyberAngel: si, quella della raccolta punti sarebbe interessante, ci stavo pensando
Ma poi si rischia che la gente lascia commenti solo per aumentare i punti, e non perché interessata veramente alla discussione…
camu, 28 gennaio 2010 alle 16:09 » rispondi