WordPress Hosting

wordpress object cache

Caché de objetos (persistente) para todos

¿Has visto en la herramienta de salud del sitio de tu WordPress que no tienes activa la caché de objetos persistente y que esto podría hacer que el rendimiento de tu web fuese más eficiente? Pues es verdad, deberías activarla.

¿Por qué no tengo caché de objetos?

salud del sitio cache objetos inactiva wordpress

En realidad sí tienes caché de objetos, WordPress hace mucho que la incorpora, pero no es persistente, solo está activa en cada petición, por lo que en realidad no contribuye de manera importante a aliviar la carga de recursos de tu web.

Para tener activa una caché de objetos persistente es necesario que tu servidor, tu empresa de hosting, disponga de algún sistema de caché de objetos persistente, como Memcached.

Por ejemplo, si tienes tu web alojada en SiteGround, puedes (y debes) activarla en la sección de velocidad de su panel.

activar memcached siteground site tools

A continuación, desde el plugin SG Optimizer, en la sección de caché, debes también activar el servicio. Solo cumpliendo estos 2 pasos estará disponible.

activar memcached sg optimizer

Si mi hosting no tiene Memcached, ¿puedo instalar una caché de objetos persistente?

Afortunadamente sí que puedes, y de eso quiero hablarte hoy, pues existe una clase PHP llamada PCL Memcached que puedes instalarse y activarse en cualquier servidor, y una de dos:

  • Poner en marcha el servidor Memcached, si existe.
  • Activar Memcached basada en archivos.

Gracias a ello vas a poder activar una caché de objetos persistente para tu web, independientemente de los servicios de caché que ofrezca tu empresa de hosting.

Object Cache 4 All

Para todos, exactamente, porque con este plugin gratuito creado por mi gran amigo y mejor informático Fernando Puente, puedes tener caché de objetos persistente en tu WordPress tanto si tu hosting la ofrece como si no.

Lo mejor de todo es que no hacen falta conocimientos avanzados de caché, ni de servidores ni de nada para disponer de caché de objetos persistente gracias al plugin, solo tienes que instalar el plugin y activarlo.

Caché de objetos persistente para todos si tu hosting tiene Memcached

El plugin, como te decía, activa la caché de objetos persistente, tanto si está disponible el servicio Memcached en tu hosting como si no. En caso de existir simplemente utiliza el servicio, y te muestra un mensaje en la página de plugins indicando la IP del mismo.

cache de objetos para todos usando memcached

Además, el plugin crea un plugin dependiente o drop-in, object-cache.php en la carpeta /wp-content/ de tu instalación, con el código necesario para activar la caché de objetos persistente.

Caché de objetos persistente para todos si tu hosting NO tiene Memcached

¿Qué tu hosting no dispone del servicio Memcached o no está activo? No hay problema, en este caso el plugin, al no detectar el servicio activado lo que hace es generar archivos de caché persistente en disco.

Para ello, además del archivo object-cache.php  con el código necesario para ejecutarla, en la carpeta /wp-content/cache/object/ irá almacenando las copias en disco de las consultas realizadas en tu web, para servirlas de manera persistente a los siguientes visitantes.

cache objetos persistente en disco

Advertencia: Debes vigilar el espacio en disco disponible porque en una web con muchos contenidos y tráfico, y especialmente en tiendas online, la cantidad de archivos de caché de objetos persistente almacenados puede llegar a ocupar varios gigas y llegar a suponer un problema si no tuvieses suficiente espacio en disco contratado. Este consejo es igual de válido para cualquier caché almacenada en disco, como la caché de página completa.

¿Funciona la caché de objetos persistente?

salud del sitio cache objetos activa wordpress

Por supuesto, yo lo he instalado en montones de webs de clientes a los que realizo mantenimiento de sus webs y que no tienen Memcached en su hosting y el rendimiento de sus sitios mejora considerablemente.

También, la herramienta de salud del sitio de WordPress, detecta que está activa la caché de objetos persistente, da igual si es con Memcached o con almacenamiento en disco.

Incluso en webs alojadas en SiteGround u otros hosting que disponen de Memcached, en según qué situaciones y tipologías de web he comprobado que funciona mejor el servicio si lo activas con este plugin que con el plugin propio del hosting.

Así que ya sabes, guarda Object Cache 4 All en tu lista de plugins favoritos. Y si ya lo has utilizado cuéntanos, abajo en los comentarios, cómo te ha ido.

Resume el artículo con tu IA favorita o compártelo en redes

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en las estrellas para valorarlo!

Promedio de puntuación 4.8 / 5. Total de votos: 25

¡Todavía no hay votos! Sé el primero en valorar este contenido.

Ya que has encontrado útil este contenido...

¡Sígueme en las redes sociales!

¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!



Sobre el autor

28 comentarios en “Caché de objetos (persistente) para todos”

  1. Lo malo es cuando plugins premiums como MemberPress recomiendan poner a OFF la Memcache (especificamente en SiteGround) porque sino encuentran problemas,…
    Otros como ConvertPro fallan si tienes la caché basada en archivos a ON, con lo que también te obligan a desactivarla,…
    Al final una combinación de plugins premium acaban obligando a apenas tener el mínimo de caché,…
    Esto ne debería ser así…

    1. También puedes no hacerles caso. Yo mantengo la membresía de un cliente (grande) con MemberPress y la caché de objetos activa de SiteGround sin problema alguno, cero problemas. Luego, en SiteGround, tengo clientes a los que les da problemas memcached si se activa desde SG Optimizer, pero que con este plugin van de maravilla.

      No te fíes de los mensajes de los plugins «premium» esos, no están basadas en tu casuística concreta sino que se curan en salud, y no hay dos instalaciones iguales. Es como los plugins que te dicen que no funcionarán con el WP Cron desactivado, pero funcionan sin problema con un cron real, pero ahí tienes el mensajito dando por culo todos los días.

  2. Hola Fernando! ¿Qué podemos hacer cuando los ficheros y directorios almacenados en disco crece hasta petar el servidor? ¿Hay que ir borrando ficheros por FTP frecuentemente? ¿No hay forma de configurar un límite? Gracias crack

    1. Por FTP o por el gestor de archivos del hosting, borras todo lo que haya en la carpeta /wp-content/cache/object/ y vuelta a empezar.

      Pero vamos, que solo he tenido que hacerlo en tiendas online muy grandes, con muchísimo tráfico y pedidos

      1. Hola Fernando, ¿Este plugins funcionaría para una web de periódico digital? ¿Afectaría en mucho el almacenamiento en disco?

  3. Hola Fernado, mil gracias por tus magistrales consejos. Una duda, hace unos meses probé un plugin similar, era también activarlo y a funcionar. Pude observar entonces en un hosting sin Memcached que empezaba a ir todo lento, tenía paralelamente funcionando (muy bien entonces y ahora, por cierto) WP-Rocket. Al ver tu entrada con este plugin me he animado a probarlo, y tras aquella experiencia observo que no realentiza tanto el sistema como la vez anterior (parece que las consultas a la bbdd sean eternas) pero también se vuelve como más pesado y lento. Supongo que deberá tratarse de alguna incompatibilidad entre la caché persistente y Rocket. ¿Has tenido alguna experiencia similar?. Muchísimas gracias de nuevo por compartir tus conocimientos 😉

    1. Pues no, la verdad, hasta ahora lo he utilizado en hostings con Redis, Memcached y sin nada y sin problemas, lo único es vigilar el espacio en disco donde no haya Memcached en el servidor, y claro, la caché de disco siempre es más lenta que una caché de objetos persistente de verdad.

      1. He confirmado que mi hosting (compartido) no tiene Memcached, pero aún así he instalado Object Cache 4 everyone, lo que pasa es que según dice la descripción del plugin «Es necesario un servidor ejecutando Memcached o la clase PHP Memcached para un mejor rendimiento». Significa que hay consultar el manual de PHP y añadir código?

        1. Que va, el mismo plugin ya lleva la clase PHP necesaria. Si lo activas hará caché de objetos pero almacenando en disco, como explico en el artículo

  4. ¿Es compatible con Wp Rocket? Se puede utilizar Object Cache 4 All este plugin cuando tienes ya Wp Rocket

  5. Hola… ¿Este plugin es compatible con «Super Page Cache for Cloudflare»?. Entiendo que sí, pues son caché de objetos y de página… pero me ha sucedido algo extraño: en pocas semanas me han petado el hosting, superando el límite de archivos (262.144). Tras vaciar la carpeta «object», veo que el sitio solo tiene 26.000 y pico… El sitio no tiene tienda, ni tanto tráfico como quisiera… Vigilaré durante los próximos días y semanas, a ver qué pasa…

    SaLuz

    1. Si hay muchas operaciones se hace un archivo de caché de objetos (si no tienes Memcached) por cada una y sí, sube mucho la cantidad de inodos consumidos.

      El super page cache no tiene nada que ver, exacto, es caché de página puro y duro.

  6. ¿Cual podría ser la razón de que en un Sitio sin tienda, 35 páginas, 162 entradas, y 461 visitantes únicos por día, este plugin cree más de 260.000 archivos en pocos días?

    1. Al principio crea muchos archivos de caché, uno por consulta, pero luego ya para, más en tu caso que tienes (relativamente) pocas urls que cachear.

      De todos modos yo revisaría si estás recibiendo peticiones raras, con parámetros aleatorios al final de tus urls. En Search Console o Analytics puedes verlo, pues por cada petición se crea un archivo de caché. O sea, si tienes una url miweb.com/algo/ te crea caché para esa url, pero si recibes peticiones a miweb.com/algo/?parametro1 miweb.com/algo/?parametro2, etc., también creará caché de esas peticiones de url. A veces son bots, rastreadores, un poco de todo.

      1. Algo así tiene que ser… No tengo Analytics, pero sí Search Console… aunque he repasado todo el menú, e incluso he visto un tutorial… y no encuentro peticiones… Tampoco en las estadísticas del hosting, ni en las de Cloudflare…

      2. Search Console no me dice qué peticiones están haciendo los bots, pero he mirado logs del servidor, y no he visto urls de páginas y entradas con parámetros… Y según me han dicho en soporte del hosting, no aparecen picos ni signos de ataque…

        Me llama la atención que el plugin genera directorios anidados, y cada uno de los archivos se encuentra en el 4º nivel… He descargado algunos… Uno de ellos solo contiene: «i:0;», otro: «a:0:{}, otro: «a:3:{s:5:»posts»;a:0:{}s:11:»found_posts»;i:0;s:13:»max_num_pages»;i:0;}».

        ¿Funciona así, o quizá por algún motivo el plugin no funciona en mi sitio?

        En un foro en el que he planteado este tema, me dicen que simplemente podría utilizar otros plugin de cache: «En w3 total cache puedes configurar memcached como el plugin de Caché de objetos para todos y ya lo tendrías todo en uno. Da igual el plugin que uses, si tienes disponible memcached y lo activas, te hará el mismo bien sea con ese plugin, con w3 total cache o con el que utilices.»

        Le he explicado que el hosting (IONOS) no tiene memcached, y me responde lo siguiente: «Si no tienes memcached en el servidor, actua como cualquier otro plugin de cache. Escribe en disco, lo cual no tiene nada que ver con usar memcached, así que da igual el plugin que utilices.»

        Yo no entiendo de estas cosas, pero me extraña que Fernando Puente haya creado un plugin que hace exactamente lo mismo que los ya existentes… y que Fernando Tellado lo presente como una gran novedad… ¿Cuál es le diferencia entre este plugin y otros como w3 total cache?

        1. Por resumir, lo que hace este plugin, COMO lo hace este plugin, no lo hace ningún otro plugin, y menos gratuito pero sobre todo, atiende a una necesidad concreta, gestión de Memcached, sin tener que usar un megaplugin como w3, dicho sea de paso de pago para aprovecharlo al completo, pudiendo combinarlo con tu plugin de optimizaciones favorito, el que sea.

          De hecho, en según qué configuraciones, funciona mejor este plugin para la gestión (real) de Memcached que el propio sistema del hosting.

          Otra cosa en la que destaca es que, al contrario que otros, WordPress detecta la activación de Memcached siempre, con este plugin.

          En cualquier caso, no hay absolutos en la configuración y optimización de webs, se debe probar cada combinación de optimizaciones y sistemas de caché en cada web, en cada diseño, y aplicar la combinación adecuada para ESA web, en ese momento concreto de su desarrollo. Nunca me leerás u oirás decir cuál es la combinación perfecta para todo tipo de webs de plugins y sistemas de caché. Hay varias combinaciones que funcionan mejor que otras, pero yo mismo nunca doy nada por sentado en este sentido a la hora de optimizar webs, pruebo y pruebo, hasta dar con lo que mejor funciona para la web concreta y sus funcionalidades.

          Y este plugin de Fernando Puente me ha funcionado perfecto, donde otros han fallado, para esta funcionalidad concreta de actuar como Memcached, tanto cuando está el servicio activo, como cuando usa el almacenamiento en disco.

          1. Gracias… Para concluir:

            Me llama la atención que el plugin genera directorios anidados, y cada uno de los archivos se encuentra en el 4º nivel… He descargado algunos… Uno de ellos solo contiene: «i:0;», otro: «a:0:{}, otro: «a:3:{s:5:»posts»;a:0:{}s:11:»found_posts»;i:0;s:13:»max_num_pages»;i:0;}».

            ¿Funciona así, o quizá por algún motivo el plugin no funciona en mi sitio?

  7. Hola Fernando, gracias por tu artículo, en estos momentos creo que nos ayuda. Estamos intentando montar un sitio en Wordpress sobre una arquitectura en Google Cloud que funciona con una base y una imagen de máquinas virtuales que van y vienen según el requerimiento del servidor. Wp-Rocket, Autoptimize, etc. no funcionan en esta arquitectura porque la caché que generan no es persistente. ¿Me darías algún consejo sobre qué alternativas podría revisar para tener una caché web persistente? Te agradezco mucho.

Los comentarios están cerrados.

Scroll al inicio