Pubblicato il 29/08/2017
La velocità del proprio sito web ed i test di controllo della stessa.
Questo è un argomento che ci sta molto a cuore: la velocità nei siti web. Ne abbiamo parlato nel nostro blog mesi fa.
Visto che sicuramente in molti avrete notato la campagna che Google sta facendo per testare la velocità dei siti web, in particolare sui dispositivi mobile, abbiamo pensato di riprendere il tema e approfondire l'argomento.
E, altrettanto sicuramente, in molti avrete provato lo strumento di test, ricevendo, anche in questo siamo sicuri, un risultato “apparentemente” deludente.
Vuol dire che ci son problemi sul Vostro sito?
Calma! No, non vuol dire questo. Vuol dire soltanto che quel test ha dato un risultato basso.
Vediamo il perché.
Iniziamo dal capire assieme l’argomento della questione: la “velocità”. In questo caso, Google, e il “sentire comune” intendono il tempo di risposta, cioè quanto tempo passa dalla scelta di visitare un sito web al momento in cui tale sito appare sul dispositivo. Ovviamente, come capirete, tale definizione è sì immediata ma non corretta. La velocità, in fisica, è in quanto tempo si percorre una certa distanza. Considerare solo il tempo è fuorviante. Chi dice mai: la mia auto è veloce: ci metto 5 minuti ad arrivare a destinazione?
Tale affermazione assume un senso compiuto quando la destinazione è chiara, immediata: la mia auto è veloce: ci metto 5 minuti ad arrivare casa dal lavoro.
Cosa cambia?
Cambia che nel primo caso consideriamo il solo tempo, nel secondo il tempo necessario a percorrere una certa distanza.
Sembra un problema di lana caprina, ma definire la velocità di un sito in base al solo tempo necessario per caricare una pagina è, quantomeno, fuorviante. Andrebbe definita una distanza, o in alternativa, ragionando in termini di flusso, di un certo numero di dati, caricati in un certo tempo.
Per semplificare il discorso, diamo per assodato che quella che viene chiamata “velocità di caricamento” sia, in effetti, il tempo di caricamento.
Come si calcola tale lasso di tempo?
In linea di massima, il tempo necessario al caricamento di un sito è composto da 4 operazioni, che vedremo nel dettaglio; quando vogliamo visitare un sito web, digitiamo il nome del sito in un browser (o clicchiamo un link da un altro sito); da quel momento succedono, nell’ordine tali fasi:
- Il browser contatta il server web dove risiede il sito, chiedendogli una particolare pagina; [fase che potremmo chiamare: richiesta]
- Il server web “elabora” e “costruisce” tale pagina; [fase che potremmo chiamare di elaborazione]
- Una volta terminate le operazioni invia le informazioni “indietro” quanto elaborato; [fase di risposta]
- Il vostro browser analizza la risposta e crea materialmente la pagina. [fase di visione]
Vediamole in dettaglio.
1. Richiesta
Ciò che succede nella fase 1 è abbastanza semplice ed intuitivo:
- scriviamo l’indirizzo del sito (oppure clicchiamo un link su un altro sito, ad esempio Google);
- il browser traduce la richiesta in un linguaggio comprensibile al computer, naviga nel web fino a trovare il computer esatto dove risiede (server web)
- il server Web viene interrogato con una richiesta simile a: “ehi tu, server, mostrami la pagina www.ueppy.com"
2. Elaborazione
- Il server, alla richiesta del punto 1, non può dire di no (o meglio, in alcuni casi può, ma supponiamo non sia questo il caso…);
- si mette quindi a cercare sui propri dischi quella pagina specifica;
- quando la trova, controlla innanzitutto se quella pagina esiste fisicamente come file di testo o se deve “costruirla”, magari attingendo ad un archivio dati, facendo conti e calcoli, modificando e interpolando dati e testi e successivamente la crea;
- successivamente questo computer controlla se ci sono elementi nella pagina da mostrare (ad esempio: immagini, video, altri file utilizzati per scopi specifici [grafici, di elaborazione] e così via);
- fatto ciò invia (più o meno contemporaneamente) tali file verso il browser che ha richiesto tale pagina;
3. Risposta
Tale fase è caratterizzata dal passaggio dei dati attraverso quello che in gergo comune è chiamato “Internet”. Realmente questi dati passano da un server all’altro fino ad arrivare nel nostro computer. Più siamo distanti fisicamente, più i dati viaggiano lontano. Potremmo dire (anche se non è per forza così: è per rendere meglio l’idea), che se il server Web ed il nostro computer sono entrambi in Italia, lo “spazio” che percorrono i dati è minore se il nostro computer è in Italia ed il server Web in USA.
4. Visione
Dopo tutti tali passaggi i dati della pagina web arriveranno sul nostro computer. In alcuni casi (sempre più diffusamente, a dir la verità) tali dati sono strutturati per essere interpretati dal nostro browser (ad esempio: se si indica che una certa immagine debba essere larga quanto tutto il nostro schermo, il browser deve ridimensionarla in modo corretto).
Probabilmente avrete capito come tale processo non è (e non può essere) immediato ma richiede un tempo più o meno lungo per avvenire.
Nel caso ci metta “troppo”, dove per troppo intendo “più di quanto ci si aspetti” i motivi possono essere vari e variegati.
In dettaglio, sempre considerando i casi appena mostrati potrebbero essere:
PROBLEMI NELLE FASI DI RICHIESTA E DI RISPOSTA.
Durante la richiesta i possibili problemi che potrebbero causare rallentamenti sono:
- La nostra connessione internet lenta, o, in alternativa, satura da altri programmi che la utilizzano in quel momento;
- La nostra connessione non è satura ma è lenta di default [ad esempio utilizziamo il cellulare in luoghi dove manca una connessione veloce 3G o 4G]
- Il collegamento tra i vari nodi della rete internet dove i dati passano possono avere lo stesso problema;
- Per raggiungere il sito web avvengono troppi passaggi (magari perché il server è in luoghi fisici molto lontani da noi);
PROBLEMI DURANTE L'ELABORAZIONE
- Il server web ha le risorse occupate per traffico e non risponde subito (ad esempio: ci sono 2000 persone che contemporaneamente stanno chiedendo la stessa pagina);
- Il server web ha le risorse occupate perché impegnato in calcoli complessi (questo caso è molto diverso dal precedente; qui il problema potrebbe essere del software usato per sviluppare il sito o, peggio ancora, perché ci sono errori gravi di sviluppo);
- I dati richiesti sono “pesanti” (ad esempio, la pagina ha 100 immagini molto grandi da caricare; il collegamento potrà anche essere veloce ma il tempo necessario per caricarle tutte, invariabilmente cresce);
PROBLEMI DURANTE LA VISIONE
- Il nostro computer ha le risorse impegnate (disco, memoria o processore) in altri processi (ad esempio stiamo editando un video pesante);
- Il nostro browser è vecchio e lento.
(Ci sono anche altri motivi teorici ma meno frequenti e che ignoriamo in questa trattazione).
È evidente, credo e spero, che se il sito è stato scritto bene, se le connessioni fanno il loro lavoro, se i computer (sia il nostro che il server) sono “scarichi” da calcoli, se sono vicini, se tutto va bene, insomma, il tempo di caricamento dipende principalmente dalla quantità di dati che servono a comporre la pagina.
Usare, quindi, un sistema automatico per chiarire se una pagina è lenta o veloce è alquanto fuorviante e, secondo il nostro punto di vista, errato.
Se volessimo avere un sito davvero veloce, basterebbe mettere solo testo, senza grafica, ed avremmo un sito che è una bomba!
Però nella vita reale, questo non è possibile. Se vogliamo mostrare il nostro hotel, la nostra azienda, difficilmente potremmo farlo senza mostrare immagini e/o video. La parola funziona in molti casi, ma non quanto una o più immagini.
Pertanto va previsto, da subito, un compromesso: ho bisogno di velocità o di mostrare le informazioni? E quante? Può bastare una sola immagine o ne servono di più? E di che dimensioni e qualità?
Vogliamo avere 5 foto, belle, ottimizzate, che si vedano bene a tutto schermo e che non mostrano difetti da compressione? Ok, si fa, ma ci si scorda della velocità, o meglio, di superare quei test di velocità che di sicuro avrete provato.
Volete un sito veloce, invece? Mettete meno immagini, mettetele di bassa qualità e, nel 99% dei casi, il vostro sito supererà i test.
Sappiamo già che ci possono essere eccezioni del tipo: eh, ma le immagini si possono ottimizzare. Sì, vero, ma perdendo contestualmente in qualità. Un’immagine non compressa, di 2000x1500 pixel, a colori, pesa 3.375Mb. Se la comprimo a 80Kb, perdo il 97,36% delle informazioni iniziali. I dettagli me li scordo, ma mi scordo anche il resto… :D
Aggiungiamo un altro dettaglio: i test di velocità sono fatti *emulando* browser presenti in un certo punto. Spesso non fanno uso di cache, spesso sono posizionati in USA, spesso utilizzano specifiche *standard* buone per quasi tutti ma tarati principalmente per utenti medi americani.
I nostri server sono in Italia, divisi in due grossi datacenter tra Milano e Roma. Il perché è presto detto: il 90% dei visitatori dei nostri clienti risiede in Italia o nel raggio di 500 km da essa. Sono molto rari visitatori da altri continenti: abbiamo quindi posizionato i server dove sono la maggior parte degli utenti.
Un test di velocità andrebbe fatto da una posizione che coincida con la media degli utenti; se il sistema di test risiede in America e contatta un nostro server ci metterà *naturalmente* molto più di quanto ci mette un utente reale posizionato fisicamente molto più vicino ai server.
E, concludiamo, non abbiamo conoscenza dei dati di carico dei computer sul quale risiedono i sistemi di test: se son oberati o meno non possiamo saperlo.
Conclusione
Non sottovalutiamo di certo tali test: avere siti veloci è una nostra priorità assoluta. Ma non li prendiamo come oro colato: i parametri che dovrebbero calcolare sono tanti e variabili caso per caso e frutto di mediazione su ciò che vogliamo mostrare e su quanto veloce dobbiamo farlo.
Vi assicuriamo la nostra attenzione estrema a tale parametro e vi assicuriamo che la velocità del vostro sito è la massima possibile in base alle vostre esigenze. A prescindere o meno dai test.