Accelerare la velocità di un sito web lento: 6 punti fondamentali

Galleria: 
Accelerare la velocità di un sito web lento risultati
Italiano

Il tuo sito è lento? Stai perdendo soldi, accelerare la velocità di un sito web, ha un effetto diretto su SEO e posizionamento nella ricerca, amuenta le conversioni, il CRO e in generale la soddisfazione dei visitatori
Aumentare il Pagespeed di un sito web, soprattutto er l'ecommerce, è un insieme di progettazione dei componenti, alcuni plugin aiutano, ma la resa è molto inferiore rispetto ad un intervento dedicato e a livello di sistema e architettura

I 6 punti fondamentali per accelerare le performance di un sito lento

1. Backend

Il backend è il server che fa hosting del sito, solitamente la cosa più sottovalutata, anche se la più importante.
Gli hosting condivisi o semi condivisi, hanno pesanti limiti per le query MySQL, per l'esecuzione del codice e tempi di risposta anche superiori ai 2 secondi
Solitamente i nostri server web hanno una latenza inferiore al decimo di secondo, fino ad arrivare a 0,01s per infrastrutture ad altissime performace e ottimizzazione
Un infrastruttura con un backend che risponde nell'ordine dei secondi, lento nelle query SQL o sottodimensionato non potrà mai aspirare a buoni risultati.
Nei casi peggiori, come gli ecommerce e i siti web con molti contenuti dinamici, l'esperienza utente diventa veramente sgradevole.
Tutta la la catena soffre dei problemi a monte, visto che tutti i dati sono contenuti e trattati al suo interno

Apache

Il webserver Apache è il più utilizzato e quello con maggiori feature, date da un infinità di moduli, supporta inoltre la solita sintassi htaccess che tutti conoscono
Negli utlimi anni ha sofferto un po' della moda di NginX, più veloce, in realtà la questione è molto più complessa dei singoli benchmark
Apache ha configurazioni che permettono di arrivare, a performace simili ad Nginx, inoltre comprende moduli per l'accelerazione dei contenuti, non presenti in NginX, non necessita di migrare l'htaccess, con la configurazione di default, però, è poco ottimizzato per motivi di compatibilità
Non prendo nessuna posizione, in quella che è la guerra dei webserver, li amo tutti

NginX

E' un ottimo webserver, velocissimo e affidabile, lo abbiamo utilizzato in molte architetture cloud, fra cui anche l'infrastruttura high performance videostreaming, testata con più di 500K utenti simultanei
NginX vanta un efficace meccanismo di caching, è ottimo come reverse proxy, per la distribuzione di contenuti statici e per l'uso a thread fortemente parallelo

MySQL e MariaDB

Nei siti dinamici, la velocità nell'accesso al database, che sia MySQL, MariaDB, Postgres o altri database, è importantissima e influisce pesantemente sulla resa del sito
Tramite tools di analisi, si possono migliorare i tempi, di accesso e di esecuzione delle query, ottimizzare l'uso della cache, il consumo di RAM, le tabelle fino ad arrivare a basso livello al filesystem dell'istanza
Questo garantisce di accelerare le query e il database rendendo il sito rapido nell'interattività con l'utente

2. Modpagespeed

Questo modulo è una vera bomba, è utilizzabile su Apache e NginX, modpagespeed ottimizza a livello server, tutti i componenti presenti, in tutti i siti web su cui è abilitato
Non è necessario nessun cambio al codice, è possibile configurarlo per dominio a livello virtual host e tramite htaccess

Il modulo riduce la latenza dei siti web, modificando in tempo reale il codice della pagina e ottimizzandone i componenti

Cosa fa modpagespeed

Con mod_pagespeed è possibile fare veramente moltissimo per l'ottimizzazione.
Le principali feature:

  • Minify di CSS e JavaScript
  • Minify dell'HTML
  • Combina JS e CSS per ridurre le richieste
  • Ottimizzazione della cache dei file
  • Ridimensiona, ottimizza e converte le immagini
  • Molto, molto altro, come puoi vedere sul sito ufficiale

3. Content Delivery Network, CDN

Un sito veloce non è nulla senza una distribuzione efficiente e rapida, per questo si utilizzano i content delivery network (CDN)
Le CDN, creano una cache geografica e distribuiscono i contenuti statici, come immagini e files all'utente in base alla sua posizione geografica
Alcune come ad esempio Cloudflare hanno anche altre funzioni, fra le più interessanti:

  • Protezione contro gli attacchi DDOS
  • Web Application firewall, WAF
  • Cache geografica dei contenuti statici
  • Routing e trasporto ottimizzato
  • Riduzione delle richieste al backend
  • Certificato SSL gratuito

4. Prossimità geografica

Le CDN fanno un ottimo lavoro, distribuendo i contenuti tramite network dedicati, i dati variabili, vengono comunque richiesti all'"origin", il server di backend,
Per situazioni di alta distribuzione o in paesi come la Cina, in cui molte CDN non operano, è possibile distribuire i backend, instradando gli utenti in un percorso determinato, solitamente basato sulla prossimità geografica o sull'interconnessione più veloce, rispetto alla sua posizione geografica della richiesta

Per chi ha siti internazionali, che vendono in Cina, è possibile distribuire i contenuti, sincronizzati in tempo reale, da un backend all'interno della nazione, eliminando i lunghi tempi necessari per attraversare il firewall di stato, il Great Firewall e garantendo tempi di caricamento e interattività pari a quelli di un sito cinese

5. Alta affidabilita HA e Scaling

Se il vostro sito gestisce volumi di traffico o di aquisti che non vi permettono di essere irraggiungibili, i picchi di utenti sono elevati e improvvisi, una "macchina più grossa" non è la soluzione che vi può aiutare, almeno non nel lungo periodo
Grazie all'alta affidabilità anche detta HA, nel caso di un failure di una istanza è presente una replica attiva che gestisce gli utenti, prevenendo il disservizio
Tramite la distribuzione del carico, su più webserver e l'autoscaling è possibile creare infrastrutture elastiche, che aumentano l'allocazione di macchine durante i momenti di carico e rilasciano le risorse in base alla diminuzione
L'autoscaling permette, automaticamente, di risparmiare risorse e quindi soldi, quando gli utenti diminuiscono come ad esempio la notte, di eliminare e ricreare istanze in stato di blocco ripristinando la concorrenza dei webserver

6. Cosa può fare lo sviluppo

Lo sviluppo è molto importante e può fare tanto, se si vuole arrivare a delle alte performance, è necessario valutare l'impatto dei componenti utilizzati nel sito web prima di integrarli, come ad esempio per i plugin.
Nei siti custom, che non usano un CMS o un ecommerce come base, ma sono sviluppati su richiesta del cliente, è necessario ottimizzare il codice, seguendo le linee guida di Google per il Pagespeed
Durante lo sviluppo del progetto, testare frequentemente che il nuovo codice non rallenti o appesantisca le pagine
Questo vi farà risparmiare anche risorse per l'hosting e costi di infrastruttura