Clicky

La caché de Joomla

acelerar Joomla!

Una instalación de Joomla por defecto viene con la caché desactivada

Joomla y casi todos los demás CMS'S están basados en PHP/MySQL, lo que significa que con el fin de generar el HTML necesario para mostrar al usuario, se tiene que hacer primero una gran cantidad de procesamiento, primero leyendo los datos del artículo de la base de datos, lo mismo para los módulos y, a continuación, componer esto en una página HTML. Esta es la razón por lo que sitios HTML completamente estáticos suelen ser más rápidos. El almacenamiento en caché intenta superar esto reutilizando el código HTML generado desde Joomla.

Esto por lo general acelera el tiempo de carga de una página web, pero la desventaja también podría ser que un usuario viese una vista almacenada, mientras que en el ínterin la página actual ha cambiado. Sea o no esto un problema depende de cada sitio. Cuando estás ocupado desarrollando un sitio, haciendo una gran cantidad de cambios, por lo general es mejor dejar desactivado el almacenamiento en caché (por cierto, el almacenamiento en caché no está habilitado para usuarios que iniciaron sesión). Además, podría haber una funcionalidad que no trabaja bien con el almacenamiento en caché, como un código de imagen, formularios y extensiones de tiendas online (Virtuemart, Hikashop etc.).

Por esta razón, una instalación de Joomla por defecto viene con la caché desactivada. El núcleo de Joomla ofrece una serie de posibilidades para utilizar el almacenamiento en caché en múltiples ubicaciones: Componente, Módulo o Página. Las vistas almacenadas para esto se guardan en el sistema de archivos de Joomla, en la carpeta de caché, como se puede ver cuando está activado el almacenamiento en caché:

archivos en la caché de Joomla

Se puede ver com_* para las vistas de componentes, mod_* para las vistas del módulo y page para vistas de página completa. Al examinar los archivos en estas carpetas, se puede reconocer el contenido HTML generado previamente. Cuando en realidad se desea utilizar el almacenamiento en caché, puedes activarlo en múltiples niveles:

opciones de la caché de Joomla

Configuración Global - Pestaña Sistema - Configuración de la caché

En primer lugar vamos a configurar un entorno global. Esta configuración controla el componente de almacenamiento en caché. Joomla ofrece 3 posibilidades para utilizar el almacenamiento en caché:

0 - Off
1 - Almacenamiento en caché conservacional
2 - Almacenamiento en caché progresivo

El almacenamiento en caché progresivo puede causar problemas inesperados en casos raros, por lo que se recomienda utilizar la opción conservacional. Esto activa el almacenamiento en caché para componentes y los módulos. También permite anular la configuración de caché total para cada módulo, que el progresivo no permite, ya que almacena una vista en caché de los módulos combinados.

En principio la manipuladora de cache sólo se puede ajustar a "Archivo". Pero Joomla en realidad ofrece más opciones (como mem-cache para el almacenamiento en caché de base de datos, desplazarse hacia abajo para más información), pero deben ser los usuarios avanzados quien gestionen esto, con plugins y puesta a punto adicional del servidor web.

Lo que es digno de mirar es el tiempo de la caché. El valor predeterminado es de 15 minutos, pero para los sitios que no se actualizan con frecuencia, se podría establecer mucho más alto.

Plataforma específica de cacheo

En Joomla 3.5 se ha añadido una nueva opción que es la Plataforma específica de cacheo. Al tener deshabilitado el almacenamiento en caché no te darás cuenta, pero si lo activas, aparece una nueva opción:

configuración de la caché de Joomla

Utiliza esta opción cuando ofrezcas contenido específico de dispositivos. Tal vez debes asegurarte de que algunos módulos sólo se cargan en los dispositivos no móviles. A continuación, esta opción evita los problemas de almacenamiento en caché entre dispositivos, como los usuarios móviles que consiguen una versión en caché de una vista de escritorio. Ten en cuenta que la mayoría de los usuarios no necesitan esta opción, también si estás utilizando CSS para ocultar cosas con clases como hidden-phone.

Almacenamiento de módulos en caché

Sobre una base por módulo, se puede anular la configuración global de la caché (si has configurado la memoria caché global en conservacional). Sólo se puede cambiar cuando está desactivado en la configuración global, no al revés. El mecanismo de anulación no funciona bien cuando el plugin Sistema-Caché está activado.

Plugin Sistema - Caché

El plugin Sistema - Caché cambia el almacenamiento en caché para toda la página a la que se accede. Esto puede acelerar un sitio considerablemente. Sin embargo, especialmente para páginas que necesitan interacción con el usuario (como un formulario de contacto), o contenido no estático, se conocen problemas, así que prueba cuidadosamente. Además, las vistas almacenadas pueden aumentar el tamaño de tu cuenta de alojamiento. El mejor uso es para sitios simples, pequeños y estáticos. Pero muchos sitios no son así: lee este post de Yireo sobre algunas de las desventajas.

La activación es fácil: en el administrador de complementos, busca el plugin "Sistema - Caché" y actívalo. Opcionalmente se puede activar la opción "Usar la caché del navegador", pero sólo es útil para los sitios donde los usuarios suelen regresar a una página a la que ya ha accedido en una sesión de navegación anterior y también puede causar problemas, así que lo mejor es dejarlo apagado.

activar cahé del navegador

Limpieza de la caché

Es posible que tengas que limpiar tu caché periódicamente. Un ejemplo podría ser cuando se estás editando un artículo en el back-end y que deseas ver los cambios en la interfaz. Si has establecido el tiempo de espera de caché de 15 minutos, esto significa que tendrías que esperar 15 minutos para ver los cambios. Para limpiar la caché antes de eso, se puede ir a Sistema → Borrar caché. A continuación, selecciona todas las entradas que se muestran, haz clic en el botón Eliminar y ahora se pueden ver los cambios.

Sin embargo, todo esto es muy tedioso si se tiene que hacer varias veces. Una solución muy inteligente creada por nonumber, con el plugin Limpiador de caché. Permite borrar la caché desde el interior de cada parte del back-end, incluso desde dentro de un artículo que se está editando. Aún más, se puede configurar para limpiar de forma automática cada vez que se realice una acción de Guardar, o después de un plazo determinado, como cada hora o así. Por último, la versión Pro es incluso capaz de borrar la memoria caché de 3ª partes, al igual que la caché de tu CDN o SiteGround!

Memcache para usuarios avanzados

Los usuarios avanzados pueden activar memcaching si su servidor web lo soporta. Se aceleran las consultas a las bases de datos, llamadas a la API y la renderización de páginas de almacenamiento de datos y objetos en la memoria RAM del servidor con el fin de reducir el número de veces que es consultada una base de datos. Primero tendrás que introducir la información de tu servidor: la dirección IP local (normalmente localhost o 127.0.0.1) y el puerto memcache (5 dígitos por lo general). Con esta información debes entonces modificar manualmente el archivo configuration.php, ya que no hay opciones por defecto para esto en el menú de Joomla. Actualiza la información de la siguiente manera:

Versión de PHP menor que 7:

public $caching = '2';
public $cache_handler = 'memcache';
public $memcache_server_host = 'localhost';
public $memcache_server_port = 'xxxxxx';

Versión de PHP 7 o superior (ten en cuenta la "d" extra) :

public $caching = '2';
public $cache_handler = 'memcached';
public $memcache_server_host = 'localhost';
public $memcached_server_port = 'xxxxxx';

Por supuesto asegúrate de verificar que el sitio todavía funciona bien, a veces hay problemas o conflictos con algunas extensiones. Sin embargo, si todo esto va bien, el sitio debe ser mucho más rápido.

Extensiones de Joomla para cacheo

Para fines específicos, se puede instalar una extensión de almacenamiento en caché desde el Directorio de Extensiones de Joomla. Esto puede ser especialmente útil si necesitan ser almacenadas en caché algunas partes de tu sitio, pero otras no, lo que requiere un nivel de artículo por menú de almacenamiento en caché. O tal vez sea necesario tener diferentes niveles de almacenamiento en caché por el navegador o dispositivos móviles.

Un excelente ejemplo de esta ampliación es Jot-cache. También recientemente, Victor Vogel creó PCE - Page Cache Extended para fines similares.

¿Tu sitio web es lento y necesitas ayuda? Mira mi servicio Acelerar el rendimiento de Joomla. He acelerado muchos sitios Joomla, a menudo reduciendo el tiempo de carga de la página web a la mitad!

Jesus_Caceres