En primer lugar tenemos que comprobar si tenemos activado el módulo de apache “mod_expires” o “Expires” para eso con phpinfo() podremos verlo.

phpinfo_mod_expires

Sino lo tenemos podemos pedir que nos lo activen en nuestro hosting o si sois administradores podéis hacerlo por SSH con estos comandos:

a2enmod expires
service apache2 restart

Una vez tenemos el módulo activado editamos el fichero .htaccess del sitoi web que queremos optimizar y pegamos estas líneas:

ExpiresActive On
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType text/css "access plus 1 week"
ExpiresByType text/javascript "access plus 1 week"
ExpiresByType application/javascript "access plus 1 week"
ExpiresByType application/x-javascript "access plus 1 week"
ExpiresByType image/x-icon "access plus 1 year"
ExpiresByType image/svg+xml "access plus 1 year"
ExpiresByType image/vnd.microsoft.icon "access plus 1 year"
ExpiresByType application/font-woff "access plus 1 year"
ExpiresByType application/x-font-woff "access plus 1 year"
ExpiresByType application/vnd.ms-fontobject "access plus 1 year"
ExpiresByType font/opentype "access plus 1 year"
ExpiresByType font/ttf "access plus 1 year"
ExpiresByType font/otf "access plus 1 year"
ExpiresByType application/x-font-ttf "access plus 1 year"
ExpiresByType application/x-font-otf "access plus 1 year"

Se puede variar el tiempo de expiración pero cuanto más alto seá más efectiva será nuestra cache, pero si queremos por ejemplo que las imágenes que subimos sean refrescadas más amenudo podremos varira las líneas:

ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType image/png "access plus 1 month"

Por este otro código (pasamos de indicar 1 mes de cache a 1 semana)

ExpiresByType image/gif "access plus 1 week"
ExpiresByType image/jpeg "access plus 1 week"
ExpiresByType image/png "access plus 1 week"

Saludos.