Skip to main content

Cómo configurar la caducidad de la caché con Apache

En esta entrada veremos cómo configurar el tiempo de caducidad de un objeto en la caché del navegador del usuario desde la configuración del servidor Apache.

Los navegadores, para reducir la cantidad de datos que descargan del servidor tienen un almacén que llamamos cache donde guardan estos datos. El propósito de guardarlos por el navegador es poder usarlos próximamente. Los datos en caché son típicamente ficheros de imagen aunque pueden ser otros tipos de ficheros, como los mismos html. Los elementos en la caché tiene un tiempo de caducidad que el propio navegador asigna a su consideración.

Así el navegador cuando interpreta una página web y necesita descargar una imagen primero consulta si dispone de ella en la caché. Si está en la caché y no ha caducado todavía la toma de ahí en vez de descargarla de nuevo.

Por el lado del servidor también es importante, ya que de este modo el servidor enviará menos datos reduciendo el ancho de banda empleado y sirviendo la página más rápidamente, y quedando libre para otras tareas. El servidor Apache tiene un mecanismo para informar al navegador  que los elementos que envía se guarden en la caché del navegador por un tiempo determinado.

Apache dispone de un módulo llamado expires que se encarga de poner fecha de caducidad a los elementos que el navegador pondrá en caché. Expires se configura mediante los archivos .htaccess y afecta a los archivos del directorio donde se elija y sus subdirectorios.

Para configurar expires debemos añadir al .htaccess una nueva sección para su configuración. Si no existiera el archivo .htaccess lo creamos nuevo.

La clave ExpiresActive hace efectiva la configuración del módulo expires. ExpiresDefault configura por defecto todos los tipos de archivo. En el ejemplo vemos que la caducidad es de más de 6 meses. Otra clave que puede usarse ExpiresByType text/css permite configurar para un tipo de archivo específico(en este caso las hojas de estilo css).

Otra forma de especificar el tiempo es indicándolo en segundos ExpiresDefault A86400, donde la A indica Acceso y el número posterior el tiempo, en este caso un día.

Apache

 

3 comentarios en “Cómo configurar la caducidad de la caché con Apache”

  1. Muchísimas Gracias Joseba ! !

    He añadido el siguiente código en mi .htaccess:

    ExpiresActive On
    ExpiresDefault A604800

    ExpiresDefault “access plus 7 day”

    Funciona 100% y me ha subido al instante la “Page Speed Score” de 80 a 87/100 )

    Si todos siguiésemos consejos como el que comentas en este Post, creo que Internet funcionaría 3 veces más rápido porque por las Redes no viajarían una y otra vez los mismos datos una y otra vez. Creo que una semana de expiración de imágenes y scripts en caché para cualquier página Web estándard debería ser la configuración mínima obligatoria de serie en todos los navegadores.

    Un Saludo y de nuevo Gracias por tu Trabajo ! !

  2. Muchísimas Gracias Joseba ! !

    He añadido el siguiente código en mi .htaccess:

    ifmodule mod_expires.c
    ExpiresActive On
    ExpiresDefault A604800
    filesmatch “.(jpg|JPG|gif|GIF|png|PNG|css|CSS|ico|ICO|js|JS)$” >
    ExpiresDefault “access plus 7 day”
    /filesmatch
    /ifmodule

    Funciona 100% y me ha subido al instante la “Page Speed Score” de 80 a 87/100 ;)

    Si todos siguiésemos consejos como el que comentas en este Post, creo que Internet funcionaría 3 veces más rápido porque por las Redes no viajarían una y otra vez los mismos datos una y otra vez. Creo que una semana de expiración de imágenes y scripts en caché para cualquier página Web estándard debería ser la configuración mínima obligatoria de serie en todos los navegadores.

    Un Saludo y de nuevo Gracias por tu Trabajo ! !

Deja un comentario

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.