Come aumentare la velocità del tuo server?

Come aumentare la velocità del tuo server?

Se siete capitati su questa pagina è probabile che abbiate provato a testare il vostro sito web sullo strumento Google Insights che misura le prestazioni delle vostre pagine, e che vi sia uscito uno dei messaggi “peggiori” che potevano capitarvi:

Migliora tempo di risposta del server

Come spiegato nella guida ufficiale di Google, il tempo di risposta del server dovrebbe mantenersi sempre al di sotto di 200 ms: questo significa che una pagina web media andrebbe mostrata ed inviata all’utente, al netto della latenza (inevitabile) dei tempi di caricamento della rete, entro queste tempistiche. Il vincolo può sembrare molto restrittivo (ed in effetti lo è), soprattutto considerando che i tempi medi di caricamento delle pagine di un sito vanno, molto spesso, nell’ordine di svariati secondi. Secondo un test che ho effettuato su un campione di siti web di mia conoscenza, le peggiori tempistiche di caricamento andavano anche sui 10-12 secondi, ovviamente improponibile per qualsiasi sito perchè nel frattempo che aspetta avremo perso il visitatore, forse per sempre.

Da cosa dipende un “sito lento” / velocità del server scarsa?

La lentezza dei siti dipende, in molti casi pratici, dalle impostazioni interne del sito, dal tipo di plugin utilizzati, dai “colli di bottiglia” che rallentano e rendono inutilizzabile lo stesso o dalla mancanza di indici nel database: ogni caso fa storia a sè, questo è fuori di dubbio. Quando si parla di lentezza andrebbe specificato sempre “rispetto a cosa”: ad esempio è altamente probabile che una connessione wireless domestica faccia apparire più performante un sito rispetto, ad esempio, ad una 3G di uno smartphone. Idealmente un sito web dovrebbe sfruttare sempre il minimo indispensabile della banda dell’utente (che spesso paga a consumo, peraltro, e sarà poco disposto a darci retta se gliela facciamo consumare senza dargli ciò che vuole!), e per farlo ci sono diverse valutazioni e criticità da considerare:

  1. il numero di chiamate HTTP(S) necessarie per comporre la pagina HTML, tra inclusioni CSS, JS ed eventuali embed di altro genere;
  2. il tipo ed il numero di query SQL necessarie per caricare la pagina;
  3. l’eventuale livello di parallelizzazione del caricamento, ovvero la corretta implementazione sulla pagina di HTTP/2;
  4. la presenza di bottlenecks (colli di bottiglia) che tendono a rallentare il sito: cache assente o mal gestita, cicli for troppo lunghi e così via.

In molti casi le scarse prestazioni di un sito sono dovute all’uso di theme scadenti, all’abuso di plugin installati o a carenze del servizio di hosting che non supporta, ad esempio, adeguatamente i servizi di cui abbiamo bisogno per il nostro sito web.

Strumenti per valutare le prestazioni / tempi di caricamento del sito

Valutare la velocità di un sito passa necessariamente per l’utilizzo di tool di misurazione, che possono essere il vostro browser oppure, ad esempio, strumenti come quello di PingDom. Di solito, per completezza, uso valutare le prestazioni del mio sito web attraverso tre strumenti distinti, ovvero:

  1. Google Insights, che è indubbiamente uno degli strumenti più validi (e più rigidi nei requisiti, se vogliamo);
  2. PingDom;, che trovo personalmente tra i migliori e tra i più utili/chiari/esplicativi;
  3. GTMetrix, che viene spesso riferito come indice di “qualità” dei tempi caricamento dagli esperti e dagli addetti ai lavori.

considerando pero’ che 1) è sempre utile effettuare una comparazione delle prestazioni, mai fidarsi di un singolo tool e 2) non tutte le notifiche si applicano indistintamente: ad esempio se il sito è responsive le considerazioni sulle dimensioni delle immagini vanno necessariamente prese con le pinze, e l’ideale sarebbe (spesso è difficile farlo) quello di inviare un’immagine di dimensione adeguata alla dimensione dello schermo.

Cos’è il tempo di risposta del server?

Bisogna ribadire una definizione importante, a questo punto, che è il tempo di risposta del server, ovvero:

il tempo richiesto per caricare il codice HTML necessario perché il server inizi a mostrare la pagina, sottraendo la latenza di rete tra Google e il server.

Secondo Google, tale tempo deve mantenersi inferiore ai 200ms perchè si possa parlare di efficenza, ovvero di prestazioni ottimali che corrispondano ad un hosting che può lavorare nelle condizioni migliori o quasi-ideali. Ad esempio, proviamo a vedere quanto impiega PingDom a caricare solo il dominio Youtube.com, cioè lo mette in condizioni di pre-carica prima ancora, in sostanza, di aver messo in ballo HTML e CSS.

Schermata 2015-06-19 alle 11.33.12

In questo caso l’efficenza è abbastanza alta poichè emerge che, in meno di 0.2 s, youtube.com riesce ad effettuare un redirect alla versione www e a passare in HTTPS. Al netto, il tempo di risposta del server è di molto inferiore alla soglia suggerita da Google, per cui il test è decisamente soddisfacente.

Il tempo di risposta di un server è (quasi sempre!) difficile da ottimizzare

La dimensione della pagina (37.2 kB), di fatto, entra in gioco soltanto all’inizio della terza fase: verrebbe quindi da chiedersi cosa accada di preciso, cioè cosa rallenti il caricamento, se il sito fosse lento in questa fase di “precarica”. Se la lentezza è dovuta a fattori interni della pagina, infatti, sappiamo abbastanza bene come procedere: utilizzando cache, caricando il JS in momenti diversi, sfruttando meccanismi per minificare i file esterni e ridurre le chiamate HTTP.

Ma qui parliamo di un server che “fatica” a pre-consegnare la pagina all’utente, dilatando i tempi di caricamento dello stesso ed arrivando, in alcuni casi di mia conoscenza, fino a diversi secondi di attesa (fino a 10 o 12, in alcuni casi critici). Ragionando un po’ per speculazione, verrebbe da pensare che c’è un problema di fondo legato a come il server gestisce la chiamata: se una pagina viene richiesta, infatti, il server potrebbe necessitare di operazioni aggiuntive legate, ad esempio, al database o al fetch di dati in memoria RAM e simili. Operazioni che, di fatto, non sono visibili per gli utenti ma ci sono: per cui, ad esempio, un eccesso di plugin installati in WordPress oppure un certo numero di mod di Apache configurate o installate male può essere causa del problema.

Migliorare il tempo di risposta di un server

Al fine di cercare di ridurre il tempo di caricamento del server per come è stato indicato, è possibile fare una serie di considerazioni tecniche di alto livello e, successivamente, provare ad intervenire sulle “manopole” corrette; attenzione che queste operazioni sono per esperti, e che un intervento sbagliato (anche se apparentemente ragionevole) potrebbe addirittura peggiorare la situazione.

Per migliorare i tempi di risposta di un server si dovrebbero:

  • abolire le componenti del sito web che occupino molte risorse e che non siano necessarie; se non è possibile eliminare queste componenti, bisognerà valutare di cambiare le impostazioni (se disponibili) oppure valutare di riprogrammarle, ottimizzarle, valutarne di alternative equivalenti oppure alla peggio – se proprio devono essere implementate – ricrearle da zero;
  • individuare le query SQL critiche, ed intervenire sull’aggiunta di eventuali indici (come descritto in un articolo apposito) ottimizzando i tempi di risposta necessari a visualizzare la pagina; ovviamente non sarà sempre possibile modificare o riscrivere le query, per quanto non manchino gli strumenti per affinarle (ovvero ridurre il numero di righe coinvolte allo stretto necessario), ottimizzarle o velocizzarne l’accesso in lettura / scrittura; difficile, certo, ma lavorando bene in questo ambito, da quello che ho visto, rende possibile abbattere drasticamente i tempi di caricamento delle pagine web;
  • effettuare ulteriori considerazioni su possibili warning subdoli o errori generati dal sito, che potrebbero rallentarne il caricamento (ad esempio chiamate HTTP accessorie che restituiscano un 404 hanno questo effetto collaterale)

Migliorare il tempo di risposta di un server in WordPress

Per WordPress, che non è esattamente un CMS tarato per avere prestazioni eccellenti (specie in ambiente condiviso e senza l’apporto di server come NGINX, che apparentemente migliorano di parecchio i tempi di caricamento), valgono le considerazioni viste per i siti generali, in particolare:

attenzione agli eventuali mu-plugins che spesso, per come sono scritti, appesantiscono il caricamento; nella migliore delle ipotesi saranno eliminabili, nella peggiore andranno rivalutati e riscritti;

attenzione a superare la soglia di 20 plugin per sito, oltre la quale inizierà a rallentare inevitabilmente;

attenzione alle componenti dinamiche come widget e shortcode, che più probabilmente di altri componenti possono rallentare il nostro sito;

attenzione al tipo di DNS usato per risolvere il sito, e a come è stato configurato (name server o DNS);

Possibili soluzioni pratiche possono essere, ad esempio, disattivare tutti i plugin e provare più volte un test di velocità come quello di PingDom: se la riduzione del tempo di caricamento è consistente, è plausibile che i plugin influenzino pesantemente la pre-carica delle pagina del sito. A quel punto tanto vale rivedere la struttura logica del sito e capire se sia possibile, mediante ristrutturazione dello stesso, ridurre il tempo di caricamento in questi termini. Di norma, comunque, se il sito WordPress è davvero molto lento è sul database che toccherà intervenire, riducendo i tempi di caricamento se non per tutte le pagine almeno per la home page.

La differenza tra i vari hosting web, in effetti, potrebbe passare – in termini di prestazioni – dalla misurazione del tempo di risposta netto del server. A parità di sito installato, sarà migliore l’hosting che riesce a presentare un tempo di pre-carica come quello di cui parliamo più ridotto possibile.

Di certo questo genere di valutazione non è adatta a dei principianti, ed è importante tenere conto di diversi aspetti per:

  1. capire quali fattori influenzano la velocità dell’hosting;
  2. capire quali fattori sono invece irrilevanti.

Per quanto possa sembrare una distinzione da accademia, infatti, il problema di questo tipo di valutazioni è legato spesso alla loro analisi superficiale, in molti casi, ed al non riuscire (in buona o cattiva fede che sia) a distinguere tra i fattori 1 o 2.

Ci sono due modi essenzialmente per velocizzare un server:

  • Imparare bene (o meglio) il funzionamento degli hosting e saper sperimentare le varie opzioni (leggi oltre)
  • Pagare per ottenere un servizio più avanzato (guarda le offerte di hosting) ed avere più risorse di quantità e qualità maggiore (come gli hosting con SSD, ad esempio).

Del resto, ne ho già discusso nell’articolo Cambiare hosting perchè il sito è lento: la cosa più importante, se il vostro hosting è lento, è individuare correttamente la causa del problema.


Ti piace questo articolo?

3 voti

Su Trovalost.it puntiamo sulla qualità dei contenuti da quando siamo nati: la tua sincera valutazione può aiutarci a migliorare ogni giorno.

Come aumentare la velocità del tuo server?

Se siete capitati su questa pagina è probabile che abbiate …
Votato 6.67 / 10, campione di 3 utenti

Ti potrebbero interessare (Guide per webmaster):

Cerca altro nel sito

Clicca sul box, e scegli la sezione per vederne i contenuti.