Redis en cPanel para WordPress

Si ya tienes LiteSpeed Cache activo y tu WordPress sigue tardando en responder en páginas dinámicas — carrito de WooCommerce, resultados de búsqueda, páginas de cuenta — el siguiente nivel de optimización es Redis. Es la caché de objetos más rápida disponible en hosting compartido con cPanel, y la diferencia en tiempo de respuesta puede ser de varios cientos de milisegundos por petición.

En esta guía te explico qué es Redis, cuándo marca diferencia real y cómo activarlo en cPanel para WordPress paso a paso.

Qué es Redis y por qué importa para WordPress

Redis es una base de datos en memoria (RAM) que funciona como almacén de clave-valor. A diferencia de MySQL, que guarda datos en disco, Redis los guarda en RAM, lo que lo hace entre 10 y 100 veces más rápido para lecturas frecuentes.

En el contexto de WordPress, Redis actúa como caché de objetos: guarda en RAM los resultados de las consultas a la base de datos para no tener que ejecutarlas de nuevo en la siguiente petición.

El problema que resuelve Redis

WordPress hace decenas de consultas SQL en cada carga de página. Muchas de ellas son idénticas o casi idénticas entre peticiones:

  • Opciones del sitio (wp_options)
  • Menús de navegación
  • Widgets
  • Configuración de plugins activos
  • Taxonomías y términos
  • Datos de usuario en páginas con login

Sin caché de objetos, estas consultas se ejecutan en MySQL en cada petición, aunque el resultado no haya cambiado. Con Redis, el resultado de la primera consulta se guarda en RAM y las siguientes peticiones lo leen directamente desde ahí — sin tocar MySQL.

Cuándo Redis marca la diferencia

Redis es especialmente útil en:

  • WooCommerce: las páginas de producto, carrito y checkout no se pueden cachear en caché de página completa porque son dinámicas por usuario. Redis cachea los objetos internos de WordPress y reduce el número de consultas SQL en cada carga.
  • WordPress con muchos plugins: cada plugin activo añade opciones a wp_options. Con Redis, estas opciones se cargan una vez y se sirven desde RAM.
  • Webs con usuarios registrados: las páginas personalizadas por usuario no pueden servirse desde caché de página. Redis acelera la generación dinámica.
  • Búsquedas internas: las consultas de búsqueda en WordPress son costosas en MySQL. Con Redis, los resultados de búsquedas frecuentes se cachean.
  • Sitios con tráfico alto: reduce la carga en MySQL, que suele ser el cuello de botella en webs con muchas visitas simultáneas.

Cuándo Redis no ayuda tanto

  • Blogs estáticos con poco tráfico: si la caché de página completa (LiteSpeed Cache) sirve la mayoría de peticiones, Redis añade poco.
  • Webs con contenido que cambia constantemente: si los objetos caducanen fracciones de segundo porque el contenido cambia, la tasa de aciertos de caché es baja.

Verificar si Redis está disponible en tu hosting

No todos los planes de hosting incluyen Redis. En BlumHost, Redis está disponible en los planes de hosting compartido. Para verificarlo:

Opción A — Desde cPanel:
Accede a cPanel y busca en la sección Software o Avanzado la opción Redis o Administrador de Redis. Si aparece, está disponible en tu plan.

Opción B — Desde el Selector de PHP de cPanel:
En cPanel → Selector de PHPExtensiones, busca la extensión redis o phpredis. Si aparece en la lista (activa o disponible para activar), Redis está disponible.

Opción C — Mediante phpinfo:
Crea un archivo phpinfo.php temporalmente en tu dominio con <?php phpinfo(); ?>, ábrelo en el navegador y busca la sección redis. Si aparece, la extensión está cargada.

Si Redis no está disponible en tu plan actual, contacta con el soporte de tu hosting para que lo habiliten o evalúa si un plan superior lo incluye.

Paso 1: Activar la extensión PHP de Redis en cPanel

Para que WordPress pueda comunicarse con Redis, necesitas la extensión PHP redis (también llamada phpredis) activa en tu cuenta.

  1. Accede a cPanel → SoftwareSelector de PHP
  2. Haz clic en la pestaña Extensiones
  3. Busca redis en la lista
  4. Marca la casilla para activarla
  5. Haz clic en Guardar

El cambio es inmediato. No hace falta reiniciar nada.

Si ves tanto redis como igbinary en la lista, activa también igbinary — es un serializador más eficiente que el que usa Redis por defecto y mejora ligeramente el rendimiento.

Para verificar que la extensión está activa, en la terminal PHP (o en el phpinfo() temporal):

php

<?php
echo extension_loaded('redis') ? 'Redis activo' : 'Redis NO activo';
?>

Paso 2: Obtener las credenciales de Redis

En hosting compartido con cPanel, Redis suele estar configurado como un socket Unix o en un puerto local específico para tu cuenta. Las credenciales (socket o host:puerto y contraseña si la hay) las encontrarás en:

  • cPanel → Redis → información de conexión
  • O en el email de bienvenida de tu proveedor
  • O consultando con el soporte técnico

Las más habituales en cPanel son:

Host: 127.0.0.1
Puerto: 6379
Password: (vacío en muchos hostings compartidos, o una contraseña específica de tu cuenta)

O mediante socket Unix:

Socket: /var/run/redis/redis.sock

Apunta estos datos — los necesitarás para configurar el plugin.

Paso 3: Instalar el plugin Redis Object Cache en WordPress

El plugin más usado y recomendado para conectar WordPress con Redis es Redis Object Cache de Till Krüss. Es gratuito, tiene más de 100.000 instalaciones activas y es compatible con todas las versiones recientes de WordPress.

  1. En el panel de administración de WordPress, ve a Plugins → Añadir nuevo
  2. Busca Redis Object Cache
  3. Instala y activa el plugin de Till Krüss

Paso 4: Configurar la conexión Redis en wp-config.php

Antes de activar la caché, necesitas indicarle a WordPress dónde está Redis. Edita el wp-config.php (desde el gestor de archivos de cPanel, por FTP o por SSH) y añade estas líneas justo antes de /* That's all, stop editing! */:

Configuración con host y puerto (la más habitual):

php

define('WP_REDIS_HOST', '127.0.0.1');
define('WP_REDIS_PORT', 6379);
define('WP_REDIS_TIMEOUT', 1);
define('WP_REDIS_READ_TIMEOUT', 1);
define('WP_REDIS_DATABASE', 0);

Configuración con contraseña:

php

define('WP_REDIS_HOST', '127.0.0.1');
define('WP_REDIS_PORT', 6379);
define('WP_REDIS_PASSWORD', 'tu_contraseña_redis');
define('WP_REDIS_TIMEOUT', 1);
define('WP_REDIS_READ_TIMEOUT', 1);
define('WP_REDIS_DATABASE', 0);

Configuración mediante socket Unix:

php

define('WP_REDIS_SCHEME', 'unix');
define('WP_REDIS_PATH', '/var/run/redis/redis.sock');
define('WP_REDIS_TIMEOUT', 1);
define('WP_REDIS_READ_TIMEOUT', 1);
define('WP_REDIS_DATABASE', 0);

El socket Unix es ligeramente más rápido que la conexión TCP porque evita la pila de red. Úsalo si tu proveedor lo soporta.

Prefix para evitar conflictos con otras instalaciones:

Si tienes varias instalaciones de WordPress en el mismo servidor compartiendo la misma instancia de Redis, añade un prefijo único para cada una:

php

define('WP_REDIS_PREFIX', 'mitienda_');

Paso 5: Activar la caché de objetos

Con el plugin instalado y el wp-config.php configurado:

  1. Ve a Ajustes → Redis en el panel de WordPress
  2. Verás el estado de la conexión — debería mostrar «Conectado» con los datos del servidor Redis
  3. Si la conexión es correcta, haz clic en Activar caché de objetos
  4. El plugin crea automáticamente el archivo wp-content/object-cache.php

Este archivo es el que WordPress usa para redirigir todas las operaciones de caché de objetos hacia Redis en lugar de la caché interna en memoria (que no persiste entre peticiones).

Verificar que Redis está funcionando

Desde el panel del plugin

En Ajustes → Redis verás:

  • Estado: Conectado / Desconectado
  • Hits: número de veces que Redis sirvió datos desde caché
  • Misses: número de veces que Redis no tenía el dato y hubo que consultarla base de datos
  • Hit ratio: porcentaje de aciertos. Un ratio superior al 80% indica que Redis está siendo muy efectivo

Un hit ratio bajo en las primeras horas es normal — Redis necesita «calentarse» (warm up) para que los objetos estén en caché. Después de algunas horas de tráfico, el ratio suele subir al 85-95%.

Desde la línea de comandos (SSH)

Si tienes acceso SSH al servidor:

bash

redis-cli ping
# Respuesta esperada: PONG

redis-cli info stats | grep hits
# keyspace_hits: número de aciertos
# keyspace_misses: número de fallos

redis-cli dbsize
# Número de claves almacenadas en Redis

Con Query Monitor

El plugin Query Monitor (gratuito) muestra en el admin de WordPress cuántas consultas SQL se ejecutan por página y si Redis está interceptando las de caché. Después de activar Redis, deberías ver una reducción significativa en el número de consultas.

Configuración avanzada de Redis para WordPress

Tiempo de expiración de la caché

Por defecto, los objetos en Redis no tienen tiempo de expiración (persisten hasta que Redis necesita memoria y los elimina según su política de evicción). Puedes establecer un TTL máximo:

php

define('WP_REDIS_MAXTTL', 3600); // 1 hora en segundos

Grupos excluidos de la caché

Algunos objetos de WordPress no deben cachearse en Redis porque cambian con cada petición:

php

define('WP_REDIS_IGNORED_GROUPS', [
    'counts',
    'plugins',
    'themes',
    'comment',
    'wc_session_id'  // WooCommerce: sesiones de usuario
]);

Compresión de datos

Si tienes igbinary activado (recomendado cuando está disponible):

php

define('WP_REDIS_SERIALIZER', Redis::SERIALIZER_IGBINARY);

Base de datos separada por instalación

Redis tiene 16 bases de datos por defecto (0-15). Si compartes Redis con otras instalaciones, usa bases de datos diferentes:

php

// Instalación 1
define('WP_REDIS_DATABASE', 0);

// Instalación 2
define('WP_REDIS_DATABASE', 1);

Redis + LiteSpeed Cache: la combinación óptima

Redis y LiteSpeed Cache no compiten — se complementan:

  • LiteSpeed Cache actúa en la capa de página completa: sirve HTML ya generado directamente desde caché sin ejecutar PHP.
  • Redis actúa en la capa de objetos PHP: cuando LiteSpeed Cache no puede servir la página desde caché (páginas dinámicas, usuarios logueados, carrito…), Redis acelera la generación de esa página reduciendo las consultas a MySQL.

La configuración ideal para un WordPress de alto rendimiento es:

  1. LiteSpeed Cache activo con caché de página completa habilitada
  2. Redis como object cache para páginas dinámicas
  3. PHP 8.1+ con OPcache activo
  4. SSD NVMe en el servidor

Esta combinación puede llevar el TTFB de páginas estáticas por debajo de 50ms y el de páginas dinámicas por debajo de 200ms, lo que se traduce directamente en mejores Core Web Vitals y mejor posicionamiento en Google.

El artículo sobre cómo acelerar WordPress cubre el stack completo de optimización, del que Redis es una pieza más.

Redis en VPS: configuración más avanzada

Si usas un VPS con acceso root, puedes configurar Redis con más control:

Instalar Redis en Ubuntu

bash

apt update
apt install -y redis-server
systemctl enable redis-server
systemctl start redis-server

Configurar Redis para producción

Edita /etc/redis/redis.conf:

# Limitar memoria máxima (ajusta según tu RAM disponible)
maxmemory 256mb

# Política de evicción cuando se llena la memoria
maxmemory-policy allkeys-lru

# Deshabilitar persistencia en disco si solo lo usas como caché
save ""

# Contraseña (recomendado)
requirepass tu_contraseña_segura

# Bind solo a localhost (no exponer al exterior)
bind 127.0.0.1

bash

systemctl restart redis-server

Verificar la configuración

bash

redis-cli -a tu_contraseña_segura ping
redis-cli -a tu_contraseña_segura info memory

En un VPS con múltiples sitios WordPress, puedes configurar Redis con más memoria y gestionar la política de evicción para maximizar el hit ratio de todos los sitios simultáneamente.

Solución de problemas frecuentes

«No se puede conectar a Redis»

Verifica en orden:

  1. Que la extensión PHP redis está activa en el Selector de PHP de cPanel
  2. Que los datos de conexión en wp-config.php son correctos (host, puerto, contraseña)
  3. Que el servicio Redis está corriendo (desde SSH: redis-cli ping)
  4. Que no hay un firewall bloqueando el puerto 6379

«Redis conectado pero hit ratio es 0%»

El ratio tarda en subir con el tráfico. Si después de varias horas sigue en 0%, verifica que el archivo wp-content/object-cache.php existe y que no hay otro plugin de caché de objetos activo que lo esté sobreescribiendo.

Conflicto con otro plugin de caché

Si tienes instalado W3 Total Cache o WP Super Cache con su propia configuración de object cache, puede haber conflicto con Redis Object Cache. Desactiva la caché de objetos del otro plugin o desinstálalo completamente y usa solo Redis Object Cache para esta capa.

«El archivo object-cache.php ya existe»

Significa que hay otro plugin de caché gestionando la object cache. Elimina el archivo manualmente desde el gestor de archivos de cPanel → wp-content/object-cache.php y vuelve a activar Redis Object Cache.

Si usas LiteSpeed Cache, este plugin tiene su propia integración con Redis que puede usarse en lugar de Redis Object Cache — revisa la configuración en LiteSpeed Cache → Caché de objetos.

👉 Ver planes de Hosting con Redis en España


Preguntas frecuentes

¿Redis es gratuito en el hosting de BlumHost?
Depende del plan contratado. Consulta con el soporte si tu plan actual incluye Redis o si necesitas actualizar.

¿Redis funciona con cualquier versión de WordPress?
Redis Object Cache es compatible con WordPress 3.3 o superior. Para aprovechar todas las funciones del plugin, se recomienda WordPress 5.0 o superior.

¿Memcached o Redis para WordPress?
Redis es superior en casi todos los casos: soporta tipos de datos más ricos, tiene persistencia opcional, mejor rendimiento con datos grandes y soporte activo. Memcached solo tiene ventaja en casos muy específicos de alta concurrencia con objetos muy pequeños. Para WordPress, Redis es la elección correcta.

¿Puedo usar Redis con WordPress Multisite?
Sí, con configuración adicional. Necesitas definir un prefijo único por sitio o usar bases de datos Redis diferentes para evitar colisiones de claves entre sitios del multisite.

¿Redis consume mucha RAM?
Depende de cuántos objetos cachea. En un WordPress típico, Redis suele usar entre 32 MB y 128 MB de RAM. Con maxmemory puedes limitar el consumo y Redis gestionará automáticamente qué objetos eliminar cuando se alcance el límite.

¿Necesito Redis si ya tengo LiteSpeed Cache?
Para la mayoría de blogs y webs corporativas estáticas, LiteSpeed Cache solo es suficiente. Redis marca la diferencia principalmente en WooCommerce, webs con usuarios registrados y sitios con mucho tráfico donde las páginas dinámicas representan una parte significativa de las peticiones.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *