Grazie Luca,
io ho fatto in questo modo (lo pubblico sperando possa essere utile anche ad altri) e funziona.
Carino il Page Speed tool, vero?

Buona giornata

$fn = 'images/my_image.png'; // path
$headers = getHeaders();
header('Last-Modified: '.gmdate('D, d M Y H:i:s', filemtime($fn)).' GMT', true, 200);
header('Content-Length: '.filesize($fn));
$expires = 60*60*24*30; // 1 month
header("Pragma: public");
header("Cache-Control: public, maxage=".$expires);
header('Expires: ' . gmdate('D, d M Y H:i:s', time()+$expires) . ' GMT');
header('Content-Type: image/png');
print file_get_contents($fn);

function getHeaders() {
$headers = array();
foreach ($_SERVER as $k => $v){
if (substr($k, 0, 5) == "HTTP_"){
$k = str_replace('_', ' ', substr($k, 5));
$k = str_replace(' ', '-', ucwords(strtolower($k)));
$headers[$k] = $v;
}
}
return $headers;
}