Hola, vamos por partes.
En primer lugar la puntuacion en GTMetrix o Page Speed de Google no estan estrictamente relacionadas con los tiempos de carga, ya que en ambas el tiempo de carga es uno de varios factores.
La mejor forma de evaluar los tiempos de carga para buscar problemas es con
WebPagetest - Website Performance and Optimization Test , o bien mas facil y rapido para identificar algun problema. Pingdomtools. En esta ultima podes ordenar facilmente los recursos por tiempos de carga y ver cual tarda mas en cargar.
Quizas el problema sea un recurso externo que estes cargando y no un problema de tu web en si
Es lo que siempre les decia a mis clientes cuando ofrecia el servicio de Optimizacion [Ya no lo hago mas desde hace tiempo]
http://forobeta.com/programadores/2...press-al-maximo-pagespeed-90-garantizado.html
Si no es ningun recurso externo , el problema debe estar en tu web o en el servidor.
Del lado del servidor , recomiendo que este con PHP 7.1 y si usas SSL usar el protocolo http2 . Ambas cosas debes hablarlas con tu proveedor de hosting.
Si estas en un VPS o dedicado , ya hay mas cosas para hacer como cambiar el servidor web por nginx o litespeed (prefiero nginx) por ejemplo (hay que analizar tu configuracion actual para ver que necesita).
En lo que la web respecta , hay que analizarla , no puedo dar ninguna recomendacion generica.
Aunque mencionaste que usas W3 Total Cache , el cual en mi opinion es uno de los mejores plugins de cache que hay (es mas, es requisito en nuestro servicio de hosting, no aceptamos otro). Pero si no tenes experiencia configurandolo da problemas.
Te comento un error comun, si estas en un hosting compartido no actives la cache de base de datos via disco, ya que muchos tienen un limite de I/O y dicha opcion lo satura causando lentitud en vez de mejora