Para cachearlo debidamente
   
Código Apache:
Ver original- <FilesMatch "\.(jpg|jpeg|png|html|php|js|css|xml)$"> 
- Header set Cache-Control "public, max-age=29030400" 
- ExpiresDefault "access plus 1 years" 
- Header append Cache-Control "no-transform" 
- Header append Vary "User-Agent, Accept" 
- </FilesMatch> 
el valor de max-age esta en segundos (1 año en el ejemplo)  
Para no cachear determinados archivos    
Código Apache:
Ver original- <FilesMatch "(tarif|info)\.php$"> 
-     Header unset Cache-Control 
-     Header unset Expires 
-     Header unset Last-Modified 
-     FileETag None 
-     Header unset Pragma 
- </FilesMatch> 
Pero no te dejes llevar en forma esctricta por el pageSpedd de google, cacheá lo que necestes y cuando lo necesites.
en mi ejemplo cacheo los php, pero después específicamente desactivo la cache para info.php y tarif.php 
Tomemos el caso de tarif.php, es un php que genera una tabla de tarifas que puede ser modificada en cualquier momento por mi cliente, en ese caso evitamos la cache para que los usuarios reciban una copia fresca y actualizada siempre, evitando ver datos viejos 
Saludos