Héroes Invisibles de WordPress: Cómo Redis y Memcached Salvan tu Servidor del Colapso

0. El síntoma que nadie quiere diagnosticar

Todo parece ir bien… hasta que, de repente, deja de hacerlo.

Tu sitio carga rápido en modo incógnito. Las herramientas de testing te dan buenas puntuaciones. Pero en el día a día la realidad es otra:

  • El panel de administración tarda varios segundos en responder
  • WooCommerce se vuelve lento cuando hay varios usuarios activos
  • La CPU del servidor se dispara sin motivo aparente
  • El Time To First Byte (TTFB) empieza a empeorar progresivamente

Si esto te suena familiar, es muy probable que el problema no esté donde estás buscando.

1. La ilusión de la velocidad

Durante años, la optimización de WordPress se ha enfocado casi exclusivamente en el frontend: imágenes comprimidas, minificación de archivos, CDN, lazy loading… Todo eso ayuda, y mucho. Pero solo resuelve una parte del problema.

La mayoría de los sitios “rápidos” lo son solo para usuarios no autenticados.

En cuanto alguien inicia sesión, añade un producto al carrito o interactúa de forma dinámica, la caché de página completa deja de servir. A partir de ese momento, cada petición depende nuevamente de PHP y, sobre todo, de MySQL.

Y ahí es donde aparece el verdadero cuello de botella.

No es raro ver una homepage que carga en menos de un segundo, mientras el panel de administración tarda cinco o más. Esa diferencia no es casual: es la base de datos trabajando de más.

2. ¿Qué es realmente el Object Caching?

WordPress no es especialmente eficiente por defecto. Una instalación limpia ya realiza entre 15 y 30 consultas a la base de datos por cada petición. Cuando añades varios plugins (sobre todo los mal optimizados), esa cifra puede subir fácilmente a cientos.

Muchas de esas consultas son repetitivas:

  • Opciones cargadas desde la tabla wp_options (incluyendo el famoso problema del autoload descontrolado)
  • Metadatos de usuarios
  • Configuraciones de plugins
  • Resultados de consultas que no cambian con frecuencia

El object caching ataca exactamente ese problema de raíz.

En vez de recalcular todo en cada petición, guarda los resultados en memoria RAM (que es muchísimo más rápida que el disco) para reutilizarlos cuando sea necesario.

Diferencia clave

  • Caché de página: guarda el HTML completo (solo útil para contenido estático y visitantes anónimos).
  • Caché de objetos: guarda los datos internos de WordPress (funciona incluso cuando el usuario está logueado).

En otras palabras: uno evita ejecutar PHP innecesariamente; el otro evita que PHP castigue constantemente a la base de datos.

El problema silencioso: wp_options y el autoload descontrolado

Una de las causas más comunes de degradación en WordPress es el crecimiento descontrolado de los registros con autoload = 'yes' en la tabla wp_options. Cada vez que WordPress arranca, carga todos esos registros en memoria de golpe, aunque no los necesite.

Con el tiempo, y con plugins que no limpian bien sus datos, esta tabla puede acumular varios megabytes que se cargan en cada petición. La recomendación habitual en la industria es clara: si tus datos autoloaded superan 1 MB, ya estás penalizando el rendimiento; si superan 5 MB, tienes un problema serio que debes atender cuanto antes.

El object caching ayuda a aliviar el síntoma, pero lo ideal es combinarlo con auditorías periódicas y limpieza de esos registros usando herramientas como WP-CLI o el plugin Query Monitor.

3. Redis vs Memcached: el duelo real

Ambos sistemas resuelven el mismo problema, pero lo hacen con enfoques muy diferentes.

Memcached es un almacén clave-valor plano sencillo. Redis, en cambio, permite que los valores sean estructuras de datos complejas (hashes, listas, sets ordenados) y operar directamente sobre ellas en memoria, sin necesidad de deserializar todo el objeto cada vez.

Para WordPress esto marca una diferencia importante: cuando un plugin necesita actualizar solo un campo de una configuración cacheada, Redis lo hace de forma atómica y eficiente. Memcached obliga a leer todo el objeto, modificarlo y volver a guardarlo completo.

Memcached: simplicidad pura

Es rápido, estable y extremadamente ligero.

Ventajas:

  • Muy poco consumo de recursos
  • Fácil de implementar
  • Ideal para infraestructuras simples o legacy

Limitaciones:

  • Límite de 1 MB por objeto por defecto (configurable, pero poco común en hosting compartido)
  • Sin persistencia (todo se pierde al reiniciar el servidor)
  • No soporta estructuras de datos avanzadas

Redis: el estándar moderno

Redis va mucho más allá de un simple caché.

Ventajas:

  • Soporte para estructuras de datos complejas
  • Persistencia opcional (puedes elegir cómo y cuándo guardar los datos)
  • Mejor integración con WordPress actual
  • Mayor flexibilidad en entornos avanzados
  • Es la opción predeterminada en la mayoría de hostings gestionados de calidad (WP Engine, Kinsta, Pantheon, etc.)

Sin embargo, Redis mal configurado puede convertirse en un problema. Los errores más comunes son:

  • maxmemory-policy incorrecta: si Redis se queda sin memoria y no tiene una política de desalojo, puede rechazar escrituras o comportarse de forma impredecible. Para WordPress, la recomendación más segura suele ser allkeys-lru.
  • Conexiones TCP vs sockets Unix: usar TCP añade latencia innecesaria cuando PHP y Redis están en el mismo servidor. Los sockets Unix reducen esa latencia de forma notable.
  • Conexiones no persistentes: cada petición abriendo y cerrando conexión genera overhead. Los buenos plugins usan conexiones persistentes para evitarlo.

Veredicto

Hoy en día, Redis es la opción preferida en la mayoría de entornos profesionales. No porque Memcached sea malo, sino porque Redis se adapta mejor a la complejidad actual de WordPress y cuenta con mejor soporte en el ecosistema de hosting gestionado. Yo mismo hice esa transición hace casi dos años y la diferencia fue muy notable, especialmente en el rendimiento del panel de administración y bajo carga de usuarios.

4. ¿Por qué siguen infravalorados?

El problema es tanto cultural como técnico.

I. La obsesión con PageSpeed y Lighthouse

Estas herramientas se centran principalmente en el frontend. Puedes tener una puntuación excelente mientras tu backend está sufriendo en silencio.

Lighthouse sí mide el TTFB, pero no le da el peso suficiente. Además, no evalúa bien:

  • El comportamiento bajo carga concurrente
  • El número real de consultas por petición
  • La eficiencia de la base de datos

II. El verdadero enemigo: MySQL saturado

Sin object caching, WordPress repite las mismas consultas una y otra vez.

Esto provoca:

  • Alto uso de CPU
  • I/O locks en MySQL (las peticiones se bloquean entre sí esperando acceso a los mismos datos)
  • Esperas innecesarias en disco que hacen que el servidor se sienta lento aunque la CPU no esté al 100%

No es que tu servidor sea débil. Es que estás obligando a MySQL a hacer trabajo repetitivo cientos de veces por segundo.

III. Cache hits vs misses

Una instalación bien optimizada tiene una alta tasa de cache hits (datos servidos desde memoria) y muy pocos misses (consultas reales a la base de datos).

Ese ratio es lo que determina si tu sitio escala o colapsa. Según varios benchmarks, activar object caching con Redis puede reducir las lecturas repetitivas a MySQL en más del 70% para los objetos cachead

IV. El impacto en el WP-Admin

Aquí es donde más se nota la diferencia. Editar entradas, gestionar menús o procesar pedidos deja de ser frustrante. Todo responde casi al instante.

No solo mejoras el rendimiento: mejoras la productividad de quien administra el sitio.

5. Escenarios donde deja de ser opcional

Hay casos en los que el object caching pasa de «recomendado» a «imprescindible»:

WooCommerce

Carritos dinámicos, sesiones de usuarios y consultas constantes a wp_postmeta. Sin caché, cada visitante multiplica la carga del servidor.

Sitios de membresía o LMS

Cada usuario ve contenido personalizado. La caché de página no ayuda. El object cache se convierte en la única capa que evita saturar MySQL.

Alto tráfico

Más visitas no tienen por qué significar más CPU… siempre que el sistema esté bien cacheado. Un buen object cache permite que el mismo servidor maneje varios veces más carga sin degradarse.

APIs y headless WordPress

Cuando usas WordPress como backend (REST API o headless), cada petición depende de datos dinámicos. Aquí el object cache marca una diferencia enorme.

6. Cómo empezar sin romper nada

No hace falta una migración complicada, pero sí un poco de cuidado.

I. Verifica que realmente tienes soporte

Muchos hostings “ofrecen” Redis o Memcached, pero a veces es solo una capa interna que no puedes usar directamente desde WordPress.

La forma más fiable de comprobarlo es instalando el plugin y ejecutando en WP-CLI:

wp redis status

Te mostrará el estado de la conexión, versión del servidor y estadísticas de hits en tiempo real.

II. Elige un buen plugin

  • Redis Object Cache: Gratuito, sólido y suficiente para la mayoría.
  • Object Cache Pro: Versión premium más avanzada, ideal para sitios exigentes (conexiones persistentes, mejor monitoreo, etc.).

III. Configuración básica recomendada

Añade esto en tu wp-config.php:

// Evita colisiones entre sitios en el mismo servidor
define('WP_CACHE_KEY_SALT', 'mi-sitio-unico_');

// Si compartes Redis con otros sitios, usa bases de datos diferentes
define('WP_REDIS_DATABASE', 1);

El WP_CACHE_KEY_SALT ayuda, pero para aislamiento real es mejor combinarlo con una base de datos distinta o un prefijo único.

IV. Valida que realmente está funcionando

No des nada por sentado. Comprueba:

  • Reducción en el número de consultas a la base de datos
  • Tasa de cache hits
  • Mejora en el TTFB bajo carga

El plugin Query Monitor es excelente para ver todo esto en detalle.

V. Entiende la diferencia entre caché persistente y no persistente

La caché no persistente (la que se pierde en cada petición) es casi inútil para object caching. La magia está en la caché persistente que Redis y Memcached ofrecen.

7. Ahora ya sabes dónde mirar (y qué hacer)

Puedes seguir persiguiendo puntuaciones perfectas en PageSpeed, comprimiendo imágenes y ajustando CSS hasta el infinito.

O puedes dejar de torturar innecesariamente a tu base de datos.

El object caching con Redis o Memcached no es un extra avanzado. Es una de las mejoras más efectivas y con mejor relación costo-beneficio que puedes aplicar a un sitio WordPress que ya tiene algo de tráfico, usuarios logueados o funcionalidad dinámica.

Si tu sitio depende de usuarios activos, contenido personalizado o simplemente quieres que sea estable bajo carga, esta es una de esas optimizaciones que marca una diferencia real y palpable.

Revisa tu stack hoy mismo. Cada consulta innecesaria a MySQL es un costo que tu servidor (y tu paciencia) terminan pagando caro.

¿Has probado ya Redis o Memcached en tu WordPress? ¿Notaste una diferencia clara en el panel de administración o bajo carga? Cuéntame. Me encantaría conocer tu experiencia.

Deja una respuesta

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.