Le performance dei siti ad alto traffico

Tra gli aspetti più importanti di un sito web c’è sicuramente la performance del sito, ovvero la percezione da parte di un utente della velocità con cui il sito risponde ai propri comandi.

Si parla di percezione, perché grazie ad opportuni accorgimenti, quali ad esempio porre il contenuto più importante all’inizio della pagina, anche in caso di connessioni lente si può limitare il malcontento dei visitatori.

Esitono diversi testi che aiutano a ottimizzare il proprio sito; ho personalmente apprezzato qualche anno fa la lettura di “Speed up your site” di Andy Kind che fa una disanima delle tecniche per rendere più veloce il caricamento della pagina (riduzione del codice, compressione, tecniche per il salvataggio delle immagini, ecc.).

Da tempo cercavo però qualcosa che fosse stato scritto da chi (e per chi) realizza siti con tanto traffico, perché necessitano di accortezze tutte particolari.

Per puro caso mi sono imbattituto nella presentazione di un tecnico Yahoo! del 2005 che contiene ottimi suggerimenti e anche qualche conferma per quanto riguarda le strategie da adottare per i grossi siti.

Nella presentazione i contenuto dei siti sono divisi in 3 macrocategorie, in base alla frequenza di aggiornamento:

  • HTML: il contenuto a più alta variazione
  • CSS e Javascript, che cambiano, ma non molto spesso
  • Immagini, che variano raramente

In virtù di questo ragionamento, sono indicati alcuni suggerimenti interessanti:

  • è bene istruire il server e i proxy perché non aggiornino il contenuto delle immagini del sito. Questo vuol dire che i redattori che caricano i contenuti dovrebbero, in caso di modifica delle immagini, caricarne altre con nome diverso
  • un suggerimento è quello di tenere i contenuti non dinamici in uno o più server dedicati, e fare in modo che per l’accesso a questi contenuti non vengano creati cookie, così da rendere molto più efficiente la comunicazione tra browser e server
  • vale la pena, nel caso di contenuti privati di un utente registrato (come per esempio caselle di posta elettronica web based), utilizzare URL diversi per ogni utente, così da permetterne il caching da parte dei proxy, ma evitare che un utente possa erroneamente accedere al contenuto privato di un altro
  • nel caso di contenuti ad altra variabilità, come i banner, è bene arricchire l’URL con numeri casuali, così da renderne altamente improbabile il caching da parte del browser o dei proxy