Desde Septiembre del 2024 se dispone de Redis como caché de objetos, una solución muy superior a la tratada en este artículo, consulta la Guía de Redis en WordPress para más información.
WordPress implementa lo que denomina un sistema de caché de objetos, no es más que un mecanismo que utiliza para almacenar el resultado de acciones complejas (por ejemplo resultado de consultas SQL intensivas) de forma que pueda obtener el resultado sin ejecutar la acción en sí misma, al menos durante el tiempo que la información esté en caché.
Imagina que tienes una acción que implica varias consultas SQL con un tiempo de ejecución alto, por medio de este sistema de object cache, WordPress almacenaría el resultado y en sucesivas solicitudes, devolvería directamente ese resultado sin llevar a cabo de nuevo la ejecución de las consultas SQL.
Ten en cuenta que habrá plugins que no se vean beneficiados por la cache de objetos al no hacer uso de la misma, para que plugin o componente de WordPress utilice este sistema, debe apoyarse en las funciones que WordPress facilita para este fin.
Estos datos se almacenan en la tabla wp_options
, y aquí nos encontramos con varios problemas, por un lado, el crecimiento que estos datos provocan en la tabla, y por otro la ineficiencia, al no ser MySQL un sistema de caché natural.
La forma en la que WordPress implementa este sistema de caché de objetos es para maximizar la compatibilidad, no el rendimiento (aunque es cierto que en un alto porcentaje de proyectos, el mecanismo por defecto sería más que suficiente y se verán beneficiados), saben que no siempre se tiene disponible un método como Redis, APCu o Memcached, por lo que utilizan MySQL al ser un requisito técnico para instalar WordPress.
Por suerte, la implementación de object cache es reemplazable, pudiendo el usuario establecer la que desee por medio de plugins.
Como hemos dejado entrever antes, los mecanismos de caché más usados son Memcached, Redis y APCu. En nuestros servicios podrás utilizar APCu, se trata de un módulo de PHP que permite almacenar en memoria estos datos, con la consecuente mejora de rendimiento y velocidad de acceso.
El primer paso para utilizar este sistema es activar desde cPanel, sección Seleccionar versión de PHP, el módulo APCu.
Tras esto deberemos instalar una implementación de object cache que use APCu, y dentro de todas las opciones analizadas, destacaríamos dos.
Se trata de una implementación extremadamente simple, cuya función es exclusivamente establecer APCu como motor de caché de objetos.
Para instalarlo nos vamos a su repositorio en Github, consta de un único fichero llamado object-cache.php
que debemos descargar y subir al directorio wp-content
de nuestra instalación de WordPress, nada más, con esto quedará habilitado y funcionando.
Importante, no se trata de un plugin por lo que no lo verás en el panel de gestión de plugins, es simplemente un fichero cuya única finalidad es añadir APCu a object cache, es esta simplicidad la que nos gusta de este método, al no depender de funciones o complejidad innecesarias.
APCu Manager es un plugin de la empresa PerfOps One, cuenta con un desarrollo muy activo, e incluye además un sistema de control de estadísticas de uso, purgado de datos en memoria y otras opciones que serían de utilidad para un control granular de object cache, no habría más que instalar y activar el plugin desde el panel de gestión de plugins de WordPress (la configuración requerida es mínima) y tendríamos WordPress trabajando con el sistema de caché APCu.