La balena volante: la verità sull'ottimizzazione della performance dei siti web

La balena volante: la verità sull'ottimizzazione della performance dei siti web

Se leggiamo una qualsiasi pubblicazione di Steve Souders o del team di Yahoo! siamo per forza di cose portati a pensare che tutto il nostro codice sia da riscrivere completamente, che i siti dei nostri clienti siano poco performanti o che la nostra capacità organizzativa dei contenuti sia scarsa. Questo avviene perchè noi non consideriamo il contesto in cui scrivono questi esperti: il contesto è quello dei siti balena, ossia di quei siti di enormi dimensioni e dall'elevatissimo traffico. Sia chiaro che le pratiche che raccomandano sono di fatto efficaci, ma vanno contestualizzate e non prese come comandamenti morali.

Per esempio, ho usato l'estensione YSlow di Firefox per un certo periodo di tempo, ma poi l'ho abbandonata quando ho cominciato a notare delle discrepanze madornali nei risultati. Il sito di Yahoo, ad esempio, chè è dinamico e pieno di dipendenze, risultava essere dieci volte più veloce nel caricamento del mio (modestissimo) statico e scarno CSS Zibaldone. È logico che un sito che ha dietro di se un complesso sistema CDN abbia dei vantaggi rispetto ad un sito su un host condiviso, ma anche considerando questo aspetto i risultati non mi sono sembrati coerenti.

Nota

I risultati in questo caso sono probabilmente dovuti al sistema di compressione usato lato server (vedi sotto).

In altre parole: se il vostro è un sito balena, ossia con elevatissimo traffico e con moltissimi contenuti, allora tutti i risultati delle ricerche degli esperti citati poc'anzi trovano una perfetta applicazione. Ma se, come accade nella stragrande maggioranza dei casi, il vostro è un sito medio/piccolo, allora le pratiche raccomandate vanno valutate caso per caso.

Per esperienza, vi posso dire che queste sono le pratiche che possono applicarsi in questi casi:

Script alla fine della pagina

Invece di inserire i JavaScript nell'elemento head, si possono inserire prima della chiusura dell'elemento body:


<script type="text/javascript" src="Sito.js"></script>
</body>
</html>

Effettivamente in questi casi ho notato un miglioramento della performance, specie in Internet Explorer.

Compressione lato server

Anche in questo caso i benefici sono evidenti anche per siti di piccole o medie dimensioni. Per quanto riguarda Apache, si consulti questo articolo.

Conclusione

Il problema mai risolto dalle best practices è la gestione degli elementi multimediali e dei widget esterni. Per gli elementi multimediali, si può optare per l'hosting su servizi di condivisione (come YouTube e Vimeo), mentre per i widget esterni (in JavaScript), la soluzione che mi permetto di consigliare è quella di optare per soluzioni lato server, che offrono il vantaggio di non bloccare il caricamento della pagina e una migliore gestione degli errori.

Torna su