Cómo limpiar y optimizar la base de datos de WordPress saturada en BanaHosting
El crecimiento descontrolado de la base de datos MySQL en alojamientos como BanaHosting o servidores cPanel provoca que tu sitio web supere los límites de inodes, alcance el tope de CPU/IOPS y experimente lentitud general o errores 500/503. Esto suele deberse a millones de transitorios no eliminados en wp_options y miles de revisiones antiguas en wp_posts.
El Diagnóstico Rápido
wp-config.php y optimizar tablas MySQL con comando OPTIMIZE TABLEEl crecimiento descontrolado de la base de datos MySQL en alojamientos como BanaHosting o servidores cPanel provoca que tu sitio web supere los límites de inodes, alcance el tope de CPU/IOPS y experimente lentitud general o errores 500/503. Esto suele deberse a millones de transitorios no eliminados en wp_options y miles de revisiones antiguas en wp_posts.
La Solución Paso a Paso
-
1
Paso 1: Limitar las revisiones de entradas en wp-config.php
Evita que WordPress guarde copias ilimitadas de cada borrador añadiendo estas directivas en tu archivo
wp-config.php(antes de la línea / That's all, stop editing! /):PHP// Limitar revisiones a un máximo de 3 por entrada define('WP_POST_REVISIONS', 3); // Aumentar el intervalo de autoguardado a 120 segundos define('AUTOSAVE_INTERVAL', 120); // Forzar el vaciado de la papelera cada 7 días define('EMPTY_TRASH_DAYS', 7); -
2
Paso 2: Limpiar transitorios huérfanos en wp_options (Vía phpMyAdmin)
Accede a cPanel > phpMyAdmin, selecciona tu base de datos de WordPress y ejecuta la siguiente consulta en la pestaña SQL:
SQL-- Eliminar transitorios y transients expirados DELETE FROM wp_options WHERE option_name LIKE ('_transient_%'); DELETE FROM wp_options WHERE option_name LIKE ('_site_transient_%'); -
3
Paso 3: Eliminar revisiones antiguas y metadatos huérfanos
Limpia todas las revisiones anteriores acumuladas en la tabla de posts y sus metadatos asociados:
SQL-- 1. Eliminar todas las revisiones de artículos DELETE a,b,c FROM wp_posts a LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id) LEFT JOIN wp_postmeta c ON (a.ID = c.post_id) WHERE a.post_type = 'revision'; -- 2. Eliminar metadatos huérfanos DELETE pm FROM wp_postmeta pm LEFT JOIN wp_posts wp ON wp.ID = pm.post_id WHERE wp.ID IS NULL; -
4
Paso 4: Desfragmentar y optimizar las tablas MySQL
Tras eliminar miles de registros, desfragmenta el espacio en disco con el comando de optimización:
SQLOPTIMIZE TABLE wp_options, wp_posts, wp_postmeta, wp_comments;
❓ Preguntas Frecuentes (FAQ)
¿Es seguro borrar las filas transient de wp_options?
Sí, totalmente seguro. Los transitorios son datos en caché temporal. Si un plugin necesita un transitorio activo, WordPress lo regenerará automáticamente en la próxima visita.
¿Afecta borrar revisiones a los artículos publicados?
No. Solo se eliminan los borradores históricos intermedios. El contenido público y activo de tus entradas permanece 100% intacto.
Consejo de Prevención
Prácticas de seguridad recomendadas:
- Cuidado con plugins de analítica interna: Evita plugins que guarden estadísticas de visitas o logs de seguridad dentro de las tablas de WordPress (como WP-Statistics o plugins de redirección pesados). Utiliza Cloudflare o Google Analytics para métricas.
- Programa mantenimientos semanales: Puedes utilizar herramientas como WP-Optimize o comandos WP-CLI en tareas cron para automatizar la desfragmentación.