Por Javier García, hace 4 años y 4 meses

Cachear las páginas de un sitio web

Una caché es un duplicado estático y temporal de una página web que se sirve al cliente en los accesos sucesivos a esa página. Habilitar el cacheado en tu sitio web (ya sea desde el navegador o desde el servidor) te permitirá reducir el tiempo de respuesta, aumentar la velocidad de carga y además liberar de estrés a tu servidor, lo que a su vez mejorará el rendimiento general de todas las páginas alojadas en él.

Habilitar la caché del navegador

Si tu sitio web está construido en base a archivos estáticos (.html o .htm), éstos son automáticamente cacheados por los navegadores. Esto es fácil de ver cuando navegando por las distintas páginas de tu sitio pulses los botones de «Atrás» o «Adelante». La carga debería ser automática, significando que el propio navegador ha ofrecido una versión de la página que había guardado previamente y que por tanto no ha vuelto a realizar la petición al servidor.

Sin embargo si las páginas de tu sitio son generadas dinámicamente con cada petición (mediante lenguajes de servidor como PHP, ASP, etc.), lo más habitual es que no sean cacheables por el navegador. Esto es debido a la diferencia en los encabezados HTTP que se envían desde el servidor en uno y otro caso. En PHP podemos hacer que las páginas de un sitio web sean cacheables con un par de simples líneas:

  1. <?php
  2. @header( "Cache-control: max-age=".(2*60*60).", must-revalidate" );
  3. @header( "Expires: ".gmdate("D, d M Y H:i:s", time()+2*60*60)." GMT" );
  4. ?>

Debes incluir esas líneas en tu código PHP antes de que se haya devuelto cualquier contenido, de lo contrario los encabezados no serán envíados y no lograremos el efecto deseado. El código anterior indica al navegador que debe guardar la página en caché durante 2 horas (2 por 60 por 60 segundos). Si se accede a la página después de esas 2 horas, se realizará de nuevo la petición al servidor. Por supuesto puedes cambiar el tiempo a cualquiera que creas más conveniente.

Usar un sistema de caché interno

Si bien la caché del navegador resulta de utilidad para los usuarios, un sistema interno que devuelva automáticamente páginas cacheadas desde el mismo servidor tendrá una incidencia mucho mayor en el rendimiento del sitio web y en la carga del propio servidor.

Los sistemas de caché son gestores que guardan las páginas generadas dinámicamente en archivos estáticos dentro del propio servidor. Cuando se realiza una petición por una determinada url, el gestor comprueba si existe una versión cacheada (y más o menos reciente) de esa url, devolviéndola directamente en su caso. De esta forma se evita el tener que ejecutar el código, reduciendo el tiempo de respuesta y aligerando la carga del servidor de forma considerable. Estos sistemas de cacheado son absolutamente imprescindibles para que una aplicación dinámica soporte un gran número de accesos simultáneos.

Si tu sitio web está basado en PHP tienes varias soluciones listas para usar como el PHP-Cache-Kit, que te permitirán integrar fácilmente un sistema de caché en tu sitio web.

Si además usas WordPress como gestor de contenido, tengo para ti una mala y una buena noticia. La mala es que estás usando un software con un rendimiento muy mejorable y que consume una gran cantidad de recursos (lo que popularmente se conoce como un «mamut»). La buena noticia es que hay sistemas de caché especialmente adaptados a WordPress y que están disponibles en forma de plugin para que su uso esté al alcance de cualquiera.

La solución más utilizada es el WP-Cache, desarrollado por Ricardo Galli. Quienes lo usan no tienen queja, pero su instalación es algo compleja y hay muchos que nunca han conseguido hacerlo funcionar. En los blogs de la red 1Blogr (incluyendo este mismo) usamos 1 Blog Cacher un plugin que he creado específicamente para este proyecto. Es un plugin sencillo, pero precisamente en su sencillez radica su mayor virtud.

Esta entrada forma parte de la serie «Aumentar la velocidad de una página web en 7 pasos».

No hay comentarios

Sé el primero en escribir un comentario a esta entrada.

Escribir un comentario

Si quieres añadir tu comentario a esta entrada, simplemente rellena el siguiente formulario:





* Campos requeridos

Puedes usar estas etiquetas XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>.

1 trackback

Para notificar de una mención en tu blog a esta entrada, habilita la notificación automática (Opciones > Discusión en WordPress) o especifica esta url de trackback: http://​1blogdeblogs.com/​2007/​09/​cachear-las-paginas-de-un-sitio-web.html/​trackback