1. Introducción
Core-Admin incluye un conjunto de herramientas integradas para analizar, diagnosticar y corregir problemas de rendimiento en instalaciones WordPress. Estas herramientas están disponibles tanto desde la interfaz web como desde la línea de comandos (crad-wordpress-mgr.pyc), y permiten:
- Analizar el estado de rendimiento de un WordPress (check-performance)
- Corregir automáticamente los problemas detectados (fix-performance)
- Activar una caché de objetos Redis para reducir drásticamente las consultas a base de datos
Este artículo explica cada una de estas funcionalidades, cómo utilizarlas y qué problemas permiten resolver.
2. Análisis de rendimiento (Check Performance)
El análisis de rendimiento ejecuta 9 comprobaciones sobre una instalación WordPress y genera un informe con problemas detectados, advertencias y recomendaciones.
Qué comprueba exactamente
| # | Comprobación | Qué analiza | Umbral de alerta |
|---|---|---|---|
| 1 | Versión de PHP | Versión instalada del motor PHP | Issue si < 7.4, Warning si < 8.0 |
| 2 | Opcache | Si el módulo opcache está cargado y correctamente configurado | Issue si no cargado o mal configurado |
| 3 | Memory limit | Límite de memoria PHP configurado en el hosting | Warning si < 256M |
| 4 | Opciones autoloaded | Tamaño total de las opciones con autoload en wp_options
|
Warning > 500KB, Issue > 1MB |
| 5 | Revisiones de posts | Número de revisiones acumuladas en wp_posts
|
Warning > 1000, Issue > 5000 |
| 6 | Postmeta huérfanos | Entradas en wp_postmeta sin post asociado |
Warning > 100, Issue > 1000 |
| 7 | Plugins activos | Número total y detección de plugins problemáticos | Warning > 20, Issue > 30 |
| 8 | Transients expirados | Transients caducados acumulados en wp_options
|
Warning > 100 |
| 9 | Redis Object Cache | Si Redis está configurado en wp-config.php y el plugin activo |
Warning si no configurado |
Además, al final del informe se incluyen recomendaciones específicas para Elementor (regenerar CSS, desactivar widgets no usados, activar carga optimizada de assets).
Plugins problemáticos detectados
El análisis detecta automáticamente ciertos plugins conocidos por su impacto negativo en rendimiento:
- Broken Link Checker: uso intensivo de base de datos
- YARPP (Yet Another Related Posts Plugin): consultas pesadas
- WP Statistics: recomienda usar analítica del lado servidor
Desde la interfaz web
- Accede a la aplicación WordPress Management
- Haz clic en el WordPress que quieras analizar para abrir su ficha
- En la columna derecha, en la sección Tools, pulsa el botón Check Performance
- El resultado se muestra en una ventana de texto con el informe completo
Desde la línea de comandos
crad-wordpress-mgr.pyc --check-performance=ejemplo.com
El parámetro acepta el nombre del hosting (dominio), la ruta a la carpeta del WordPress o la ruta al wp-config.php.
Ejemplo de salida:
======================================================================
WordPress Performance Analysis: ejemplo.com
======================================================================
[1/9] Checking PHP version...
[2/9] Checking Opcache status...
[3/9] Checking PHP memory limit...
[4/9] Checking autoloaded options size...
[5/9] Checking post revisions...
[6/9] Checking postmeta table size...
[7/9] Checking active plugins...
[8/9] Checking expired transients...
[9/9] Checking Redis Object Cache...
----------------------------------------------------------------------
SUMMARY
----------------------------------------------------------------------
Configuration:
PHP Version: 8.1.27
Opcache: Enabled and configured
PHP Memory Limit: 128M
Autoloaded Options: 0.35 MB
Post Revisions: 3842
Postmeta Rows: 45230
Active Plugins: 18
Expired Transients: 247
Redis Object Cache: Not configured
ISSUES (should fix):
[!] Found 3842 post revisions. This significantly slows down the editor
WARNINGS (consider fixing):
[~] PHP memory_limit is 128M. Elementor recommends at least 256M
[~] Found 247 expired transients. Consider cleanup
[~] Redis Object Cache is not configured. Using Redis as an object
cache significantly reduces database queries and improves
response time
RECOMMENDATIONS:
1. Delete old revisions
2. Increase memory_limit to 256M or higher in php.ini
3. Limit revisions in wp-config.php: define('WP_POST_REVISIONS', 5);
4. Clean expired transients
5. Contact your system administrator to deploy a Redis instance
(--activate-redis-server)
----------------------------------------------------------------------
ELEMENTOR-SPECIFIC TIPS
----------------------------------------------------------------------
- Regenerate CSS: Elementor > Tools > Regenerate CSS
- Disable unused widgets in Elementor > Settings > Features
- Use 'Improved Asset Loading' in Elementor > Experiments
- Consider using Elementor's built-in optimizations over
third-party addons
Opción de salida JSON
Para integrar el resultado con otras herramientas o scripts:
crad-wordpress-mgr.pyc --check-performance=ejemplo.com --json
Esto añade al final de la salida un bloque JSON con todos los datos estructurados (info, issues, warnings, recommendations).
2. Corrección automática de rendimiento (Fix Performance)
La función Fix Performance aplica 7 correcciones de forma secuencial. Cada paso es seguro y solo actúa si detecta un problema real.
Qué corrige y en qué orden
| # | Corrección | Qué hace |
|---|---|---|
| 1 | Upgrade PHP | Actualiza PHP a la última versión 8.x disponible en el servidor (8.4, 8.3, 8.2, 8.1, 8.0, por orden de preferencia) |
| 2 | Fix memory_limit | Establece memory_limit a 256M en la configuración del hosting |
| 3 | Fix Opcache | Habilita y configura el módulo opcache; reinicia PHP-FPM si es necesario |
| 4 | Clean revisions | Elimina todas las revisiones de posts (post_type = 'revision') de la base de datos |
| 5 | Clean transients | Elimina los transients expirados y sus datos asociados de wp_options
|
| 6 | Clean postmeta | Elimina entradas huérfanas de wp_postmeta (registros cuyo post_id ya no existe) |
| 7 | Check Redis | Comprueba si Redis Object Cache está configurado; si no lo está, lo indica como pendiente |
Nota: Redis no se activa automáticamente con Fix Performance. Requiere una acción separada (ver sección 3).
Desde la interfaz web
- Accede a la aplicación WordPress Management
- Abre la ficha del WordPress
- En la sección Tools, pulsa Fix Performance
- El resultado se muestra en una ventana de texto con el detalle de cada paso
Se recomienda ejecutar primero Check Performance para revisar el estado, y después Fix Performance para aplicar las correcciones. La propia interfaz incluye una nota indicando este flujo recomendado.
Desde la línea de comandos
crad-wordpress-mgr.pyc --fix-performance=ejemplo.com
Ejemplo de salida:
======================================================================
WordPress Performance Fix: ejemplo.com
======================================================================
[1/7] Checking PHP version...
[OK] PHP already at recommended version
[2/7] Checking memory_limit...
[FIXED] Memory limit set to 256M
[3/7] Checking opcache...
[OK] Opcache already enabled
[4/7] Checking post revisions...
[FIXED] Deleted 3842 revisions
[5/7] Checking expired transients...
[FIXED] Deleted 247 expired transients
[6/7] Checking orphaned postmeta...
[OK] No orphaned postmeta to clean
[7/7] Checking Redis Object Cache...
[PENDING] Redis Object Cache is not configured (contact your
system administrator)
----------------------------------------------------------------------
SUMMARY
----------------------------------------------------------------------
Applied 3 fixes:
- Memory limit set to 256M
- Deleted 3842 revisions
- Deleted 247 expired transients
PENDING (requires system administrator):
- Redis Object Cache: run --activate-redis-server to deploy a
Redis instance
TIP: Run --check-performance again to verify the improvements.
Correcciones individuales por línea de comandos
Cada una de las correcciones también puede ejecutarse de forma independiente:
# Actualizar solo PHP
crad-wordpress-mgr.pyc --upgrade-php=ejemplo.com
# Ajustar solo memory_limit
crad-wordpress-mgr.pyc --fix-memory-limit=ejemplo.com
# Habilitar solo opcache
crad-wordpress-mgr.pyc --fix-opcache=ejemplo.com
# Limpiar solo revisiones
crad-wordpress-mgr.pyc --clean-revisions=ejemplo.com
# Limpiar solo transients expirados
crad-wordpress-mgr.pyc --clean-transients=ejemplo.com
# Limpiar solo postmeta huérfano
crad-wordpress-mgr.pyc --clean-postmeta=ejemplo.com
Estas operaciones piden confirmación antes de actuar. Se puede usar --yes para saltarla (útil para scripts):
crad-wordpress-mgr.pyc --clean-revisions=ejemplo.com --yes
3. Integración con Redis Object Cache
Redis es un almacén de datos en memoria que WordPress puede utilizar como caché de objetos (object cache). Cuando Redis está activo, WordPress almacena en Redis los resultados de consultas a base de datos, reduciendo drásticamente el número de queries MySQL en cada carga de página.
Qué hace la activación de Redis
El proceso de activación realiza los siguientes pasos automáticamente:
-
Crea una instancia Redis dedicada para el WordPress, con nombre
redis.<nombre_hosting>(ej:redis.ejemplo.com) -
Configura
wp-config.phpcon los parámetros de conexión Redis:/* Redis Object Cache settings - managed by core-admin */ define('WP_REDIS_HOST', '127.0.0.1'); define('WP_REDIS_PORT', 6380); define('WP_REDIS_PASSWORD', 'contraseña_generada'); define('WP_REDIS_DATABASE', 0); define('WP_REDIS_TIMEOUT', 1); define('WP_REDIS_READ_TIMEOUT', 1); define('WP_REDIS_PREFIX', 'ejemplo_com:'); -
Instala y activa el plugin
redis-cachevía WP-CLI -
Habilita el Object Cache ejecutando
wp redis enableRequisito: la aplicación
redis_managementdebe estar instalada en el servidor. Si no lo está, la operación indicará que es necesario instalarla primero.
Desde la interfaz web
-
Accede a la ficha del WordPress
-
En la sección Integrations, pulsa Activate Redis Server
-
El resultado muestra el proceso completo: creación de instancia, configuración y activación del plugin
Para desactivar Redis, pulsa Deactivate Redis Server en la misma sección. Esto:
- Deshabilita el Object Cache (
wp redis disable) - Desactiva el plugin
redis-cache - Elimina las constantes
WP_REDIS_*dewp-config.php -
No elimina la instancia Redis (debe eliminarse por separado desde
redis_management)
Desde la línea de comandos
Activar Redis (creando instancia nueva)
crad-wordpress-mgr.pyc --activate-redis-server=ejemplo.com
La herramienta solicita confirmación mostrando un resumen antes de proceder:
WordPress: ejemplo.com (/var/www/ejemplo.com/htdocs)
Redis instance: redis.ejemplo.com
Redis plan: default
Create Redis instance 'redis.ejemplo.com' and configure WordPress? [y/N]: y
INFO: Creating Redis instance 'redis.ejemplo.com'...
INFO: Redis instance created successfully
INFO: Configuring wp-config.php...
INFO: Redis configuration inserted in wp-config.php
INFO: Installing redis-cache plugin...
INFO: redis-cache plugin installed and activated
INFO: Enabling Redis Object Cache...
INFO: Redis Object Cache enabled
============================================================
Redis Object Cache configured successfully
============================================================
WordPress: ejemplo.com
Folder: /var/www/ejemplo.com/htdocs
Redis instance: redis.ejemplo.com
Redis host: 127.0.0.1
Redis port: 6380
Redis prefix: ejemplo_com:
Activar Redis con un plan específico
crad-wordpress-mgr.pyc --activate-redis-server=ejemplo.com --redis-plan=premium
Si el plan indicado no existe, la herramienta muestra los planes disponibles.
Reutilizar una instancia Redis existente
Si ya se dispone de una instancia Redis y se quiere asociar a un WordPress diferente:
crad-wordpress-mgr.pyc --reuse-redis-server=redis.otro.com ejemplo.com
Esto configura el WordPress ejemplo.com para usar la instancia Redis redis.otro.com sin crear una nueva. Es útil cuando:
- Se quiere compartir una instancia Redis entre varios WordPress (usando prefijos diferentes)
- Se ha migrado un WordPress y se quiere reconectar con su instancia Redis previa
Desactivar Redis
crad-wordpress-mgr.pyc --deactivate-redis-server=ejemplo.com
Salida:
WordPress: ejemplo.com (/var/www/ejemplo.com/htdocs)
Remove Redis Object Cache configuration from this WordPress? [y/N]: y
INFO: Disabling Redis Object Cache...
INFO: Deactivating redis-cache plugin...
INFO: Cleaning wp-config.php...
INFO: Redis configuration removed from wp-config.php
INFO: Redis Object Cache has been deactivated for ejemplo.com
NOTE: The Redis instance has NOT been deleted.
To delete it, use the core-admin web interface or
redis_management tools.
Automatización sin confirmación
Para todos los comandos, se puede usar --yes para omitir la pregunta de confirmación:
crad-wordpress-mgr.pyc --yes --activate-redis-server=ejemplo.com
4. Flujo de trabajo recomendado
La secuencia recomendada para optimizar un WordPress es:
Paso 1: Analizar
crad-wordpress-mgr.pyc --check-performance=ejemplo.com
Revisar el informe para entender el estado actual. Prestar especial atención a las secciones ISSUES y WARNINGS.
Paso 2: Corregir automáticamente
crad-wordpress-mgr.pyc --fix-performance=ejemplo.com
Esto aplica todas las correcciones seguras: PHP, opcache, memory_limit, limpieza de revisiones, transients y postmeta.
Paso 3: Activar Redis
crad-wordpress-mgr.pyc --activate-redis-server=ejemplo.com
Despliega la caché de objetos Redis para reducir las consultas a base de datos.
Paso 4: Verificar
crad-wordpress-mgr.pyc --check-performance=ejemplo.com
Ejecutar de nuevo el análisis para confirmar que los problemas han sido resueltos.
5. Casos de uso
WordPress lento al editar contenido
Síntoma: El editor de WordPress (Gutenberg o Elementor) tarda mucho en cargar o guardar.
Causa probable: Miles de revisiones de posts acumuladas.
Solución:
crad-wordpress-mgr.pyc --check-performance=ejemplo.com
# Si muestra "Found XXXX post revisions..."
crad-wordpress-mgr.pyc --clean-revisions=ejemplo.com
WordPress con tiempos de carga altos
Síntoma: Las páginas tardan más de 2-3 segundos en cargar.
Solución: Ejecutar el fix completo y activar Redis:
crad-wordpress-mgr.pyc --fix-performance=ejemplo.com
crad-wordpress-mgr.pyc --activate-redis-server=ejemplo.com
Errores de memoria en WordPress o Elementor
Síntoma: Mensajes como “Allowed memory size exhausted” al editar páginas o instalar plugins.
Solución:
crad-wordpress-mgr.pyc --fix-memory-limit=ejemplo.com
Esto establece memory_limit a 256M, el mínimo recomendado por Elementor.
Servidor con PHP antiguo
Síntoma: WordPress muestra avisos de versión de PHP obsoleta, o el check-performance reporta PHP < 8.0.
Solución:
crad-wordpress-mgr.pyc --upgrade-php=ejemplo.com
Actualiza automáticamente a la mejor versión de PHP 8.x disponible en el servidor (8.4 > 8.3 > 8.2 > 8.1 > 8.0).
Optimizar múltiples WordPress a la vez
Para servidores con muchas instalaciones WordPress, se puede combinar con --list-wordpress y scripting:
# Listar todos los WordPress del servidor
crad-wordpress-mgr.pyc --list-wordpress
# Aplicar fix-performance a todos (ejemplo con bash)
for wp in $(crad-wordpress-mgr.pyc --list-wordpress --json | \
python -c "import sys,json; [print(w['hosting_name']) for w in json.load(sys.stdin)]"); do
echo "=== Fixing $wp ==="
crad-wordpress-mgr.pyc --fix-performance=$wp --yes
done
Migrar Redis entre WordPress
Si se ha copiado un WordPress a otro hosting y se quiere que use la misma instancia Redis:
crad-wordpress-mgr.pyc --reuse-redis-server=redis.original.com copia.ejemplo.com
6. Referencia rápida de comandos
| Comando | Descripción |
|---|---|
--check-performance=<wp> |
Analiza el rendimiento del WordPress |
--fix-performance=<wp> |
Aplica todas las correcciones seguras |
--upgrade-php=<wp> |
Actualiza PHP a la mejor versión 8.x disponible |
--fix-memory-limit=<wp> |
Establece memory_limit a 256M |
--fix-opcache=<wp> |
Habilita y configura opcache |
--clean-revisions=<wp> |
Elimina revisiones de posts |
--clean-transients=<wp> |
Elimina transients expirados |
--clean-postmeta=<wp> |
Elimina postmeta huérfano |
--activate-redis-server=<wp> |
Crea instancia Redis y configura el WordPress |
--reuse-redis-server=<fqdn> <wp> |
Reutiliza una instancia Redis existente |
--deactivate-redis-server=<wp> |
Desactiva Redis en el WordPress |
--redis-plan=<nombre> |
Selecciona el plan Redis (con --activate-redis-server) |
--yes |
Omite preguntas de confirmación |
--json |
Salida en formato JSON |
--verbose |
Salida detallada para depuración |
El parámetro <wp> acepta: nombre del hosting (dominio), ruta a la carpeta, o ruta al wp-config.php.






