Cabeceras de expiración de contenido estático

Cuando  hacemos un test en Google PageSpeed Insights y nos da como una mejora que debes introducir «Especificar cache del navegador«, nos da la siguiente explicación:

https://developers.google.com/speed/docs/insights/LeverageBrowserCaching

Captura

 

 

En realidad lo que nos quiere decir es que para mejorar la experiencia de usuario a la hora de cargar la web, el contenido estático como imágenes, hojas de estilo y javascript le podemos indicar una fecha de expiración para que no se cargue cada vez que el usuario accede a la página. Esto se puede hacer muy fácilmente, hay dos opciones, desde PHP o desde .htacces. La primera opción te va permitir decir que páginas quieres que se aplique, en la segunda y más recomendable se aplicará a todo el conjunto de páginas.

Aunque se puede expresar la directiva de tiempo con palabras tipo days, week, moth a mi me gusta más la forma numérica y expresarlo en segundos, de esta forma se calcula así:

– ExpiresDefault A3600 una hora
– ExpiresDefault A604800 para una semana

Y se calcula de la siguiente forma: 30 dias = 60*60*24*30 = 2592000

Expiración utilizando .htacces

<ifmodule mod_expires.c>
 ExpiresActive On
 ExpiresDefault A3600
 <FilesMatch ".(gif|jpg|jpeg|png|swf)$">
 ExpiresDefault A604800
 Header append Cache-Control "public"
 </FilesMatch>
 <FilesMatch ".(xml|txt|html)$">
 ExpiresDefault A604800
 Header append Cache-Control "public"
 </FilesMatch>
 <FilesMatch ".(js|css)$">
 ExpiresDefault A604800
 Header append Cache-Control "public"
 </FilesMatch>
</ifmodule>

Expiración utilizando PHP

Se realizará modificando los headers

header("Expires: ".gmdate ("D, d M Y H:i:s", time() + 60*60*24*30)." GMT");

En las siguientes referencias os dejo otras explicaciones útiles:

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *