Una página lenta es lenta en uno de tres sitios: el servidor antes de mandar un solo byte, la red que hay en medio, o el navegador una vez que ha llegado. Cada uno tiene un arreglo distinto y ninguno ayuda a los otros dos. Equivocarse al adivinar cuesta un fin de semana y no cambia nada.

1. Cuánto tarda el primer 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 por encima de unos 600 ms con un tiempo de conexión pequeño es el servidor pensando. Por debajo de 200 ms, el servidor no es tu problema, por lenta que te parezca la página.

2. ¿Es la aplicación o la base de datos?

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

Consulta El registro de consultas lentas. Una sola consulta de 900 ms explica muchísimos más sitios de los que habría explicado cualquier cantidad de caché.

3. Cuánto pesa la página de verdad

Abre el panel de red, ordena por tamaño y lee las cinco primeras filas. En la mayoría de los sitios son todas imágenes: consulta Imágenes que pesan más que toda la página. Leer bien una cascada se trata en su propio artículo.

4. Qué recibe un visitante real

La conexión de tu oficina no es la medida. Prueba desde donde están tus clientes, con la conexión limitada, en un móvil de gama media.

Cambia una cosa y vuelve a medir. Tres cambios a la vez y nunca sabrás cuál ayudó, ni cuál de ellos empeoró la cosa mientras otro lo tapaba.
Apunta los números antes de empezar. Que parezca más rápido no es una prueba, y después de una tarde de trabajo a todo el mundo le parece que el sitio va más rápido.