Una pagina lenta è lenta in uno di tre punti: il server prima di spedire un byte, la rete nel mezzo, o il browser dopo che è arrivata. Ognuno ha un rimedio diverso e nessuno aiuta gli altri due. Indovinare male costa un fine settimana e non cambia nulla.

1. Quanto passa prima del primo byte

curl -sS -o /dev/null -w 'dns %{time_namelookup}  connect %{time_connect}  tls %{time_appconnect}  ttfb %{time_starttransfer}  total %{time_total}\
' https://yourdomain.com/

Un TTFB oltre i 600 ms circa con un tempo di connessione piccolo è il server che pensa. Sotto i 200 ms il server non è il tuo problema, per quanto lenta possa sembrarti la pagina.

2. È l'applicazione o il database

# is anything slow enough to be logged
sudo tail -f /var/log/mysql/mysql-slow.log

Vedi Il log delle query lente. Una sola query da 900 ms spiega molti più siti di quanti ne avrebbe mai spiegati qualsiasi quantità di cache.

3. Quanto pesa davvero la pagina

Apri il pannello di rete, ordina per dimensione e leggi le prime cinque righe. Nella maggior parte dei siti sono tutte immagini — vedi Immagini più pesanti dell'intera pagina. Leggere per bene un diagramma a cascata è trattato in un articolo a parte.

4. Che cosa riceve un visitatore vero

La connessione del tuo ufficio non è la misura. Prova da dove stanno i tuoi clienti, con la rete rallentata, su un telefono di fascia media.

Cambia una cosa sola, poi misura di nuovo. Con tre modifiche insieme non saprai mai quale abbia aiutato — né quale abbia peggiorato le cose mentre un'altra lo nascondeva.
Scriviti i numeri prima di cominciare. Sembrare più veloce non è una prova, e dopo un pomeriggio di lavoro a tutti sembra che il sito sia più veloce.