Cada carga de página, envío de formulario, operación de plugin y sesión de usuario en WordPress implica consultas a la base de datos. Con el tiempo, la base de datos acumula sobrecarga: revisiones de publicaciones antiguas, transitorios expirados, metadatos huérfanos, comentarios de spam y tablas no utilizadas de plugins desactivados. Este exceso ralentiza las consultas, aumenta el tamaño de las copias de seguridad y degrada el rendimiento general del sitio. Esta guía cubre cómo identificar la sobrecarga de la base de datos, limpiarla de manera segura y prevenir su regreso.
Lo que WordPress Almacena en la Base de Datos
Entender qué vive en tu base de datos te ayuda a identificar qué se puede eliminar de manera segura. Una instalación estándar de WordPress utiliza 12 tablas principales, y los plugins añaden sus propias tablas según sea necesario.
| Tabla | Almacena | Fuente Común de Sobrecarga |
|---|---|---|
| wp_posts | Publicaciones, páginas, revisiones, adjuntos, tipos de publicaciones personalizadas | Revisiones de publicaciones, borradores automáticos |
| wp_postmeta | Metadatos para publicaciones (campos personalizados, datos de plugins) | Meta huérfana de publicaciones eliminadas |
| wp_options | Configuraciones del sitio, configuraciones de plugins, transitorios | Transitorios expirados, configuraciones de plugins antiguas |
| wp_comments | Comentarios y trackbacks | Comentarios de spam, comentarios en la papelera |
| wp_commentmeta | Metadatos para comentarios | Metadatos de Akismet para comentarios eliminados |
| wp_usermeta | Metadatos de usuario | Tokens de sesión, datos de usuario de plugins |
| wp_termmeta | Metadatos para categorías y etiquetas | Metadatos de términos huérfanos |
Fuentes Comunes de Sobrecarga en la Base de Datos
Revisiones de Publicaciones
WordPress guarda una revisión cada vez que haces clic en "Guardar Borrador" o "Actualizar" en una publicación o página. Una publicación editada 50 veces tiene 50 revisiones almacenadas en la tabla wp_posts, cada una con su propio conjunto de entradas de postmeta. En un sitio con cientos de publicaciones, las revisiones pueden representar miles de filas innecesarias en la base de datos.
Transitorios
Los transitorios son datos temporales almacenados en la tabla wp_options por el núcleo de WordPress y los plugins. Tienen tiempos de expiración, pero WordPress no elimina automáticamente los transitorios expirados. Se acumulan con el tiempo y pueden hacer crecer significativamente la tabla de opciones, especialmente en sitios con muchos plugins.
Datos Huérfanos
Cuando eliminas una publicación, su metadato (entradas de wp_postmeta) puede no ser eliminado. De manera similar, eliminar comentarios, usuarios o términos puede dejar filas de metadatos huérfanas. Los plugins desactivados y eliminados a menudo dejan sus tablas de base de datos, consumiendo espacio y desordenando tu base de datos.
Contenido de Spam y en la Papelera
Los comentarios de spam, las publicaciones en la papelera y los comentarios en la papelera permanecen en la base de datos hasta que se vacían manualmente. Los sitios con Akismet u otros filtros de spam pueden acumular miles de comentarios de spam que necesitan limpieza periódica.
Borradores Automáticos
WordPress crea publicaciones de borrador automático cuando haces clic en "Agregar Nuevo" en el editor de publicaciones, incluso si nunca publicas. Estos se acumulan con el tiempo y no sirven para nada después de que termina la sesión de edición.
Limpieza Manual de la Base de Datos a través de SQL
Para aquellos que se sienten cómodos con SQL, puedes limpiar directamente usando phpMyAdmin o un cliente de base de datos. Siempre haz una copia de seguridad de tu base de datos antes de ejecutar consultas de limpieza.
Eliminar Revisiones de Publicaciones
-- Eliminar todas las revisiones de publicaciones
DELETE FROM wp_posts WHERE post_type = 'revision';
-- Eliminar metadatos huérfanos (metadatos para publicaciones eliminadas)
DELETE pm FROM wp_postmeta pm
LEFT JOIN wp_posts p ON pm.post_id = p.ID
W AQUÍ p.ID ES NULL;
Limpiar Transitorios
-- Eliminar transitorios expirados
DELETE FROM wp_options
WHERE option_name LIKE '%_transient_timeout_%'
AND option_value < UNIX_TIMESTAMP();
-- Eliminar los datos transitorios de transitorios expirados
DELETE FROM wp_options
WHERE option_name LIKE '%_transient_%'
AND option_name NOT LIKE '%_transient_timeout_%';
Eliminar Comentarios de Spam y en la Papelera
-- Eliminar comentarios de spam
DELETE FROM wp_comments WHERE comment_approved = 'spam';
-- Eliminar comentarios en la papelera
DELETE FROM wp_comments WHERE comment_approved = 'trash';
-- Eliminar metadatos de comentarios huérfanos
DELETE cm FROM wp_commentmeta cm
LEFT JOIN wp_comments c ON cm.comment_id = c.comment_ID
WHERE c.comment_ID IS NULL;
Limpieza de Base de Datos Basada en Plugins
Si prefieres un enfoque basado en GUI, varios plugins manejan la optimización de la base de datos con capacidades de programación:
WP-Optimize
WP-Optimize es un plugin gratuito que limpia revisiones, borradores, spam, transitorios y datos huérfanos. También optimiza tablas de la base de datos y soporta limpiezas programadas. La versión Pro añade soporte para multisite y programación avanzada.
Optimización de Base de Datos WP Rocket
WP Rocket incluye una pestaña de Base de Datos que maneja revisiones, borradores automáticos, publicaciones en la papelera, comentarios de spam, transitorios y optimización de tablas. Dado que WP Rocket es principalmente un plugin de caché, obtienes limpieza de base de datos junto con optimización de rendimiento en una sola herramienta.
Limpiador Avanzado de Base de Datos
Este plugin profundiza más al detectar tablas dejadas por plugins desactivados y eventos cron huérfanos. Categoriza las tablas como núcleo de WordPress, creadas por plugins o desconocidas, ayudándote a identificar qué tablas son seguras para eliminar.
Plugin
Versión Gratuita
Limpieza Programada
Detección de Tablas
WP-Optimize
Sí
Sí
Básico
WP Rocket
No (solo Premium)
Sí
No
Limpiador Avanzado de Base de Datos
Sí
Solo Pro
Sí (detallado)
Optimizaciones en wp-config.php
Previene la hinchazón de la base de datos en la fuente añadiendo estas constantes a tu archivo wp-config.php:
Limitar Revisiones de Publicaciones
// Mantener solo 5 revisiones por publicación (recomendado)
define( 'WP_POST_REVISIONS', 5 );
// Desactivar revisiones por completo (no recomendado para la mayoría de los sitios)
define( 'WP_POST_REVISIONS', false );
Establecer revisiones en 5 proporciona suficiente historial para recuperarse de errores mientras previene el crecimiento ilimitado de revisiones. Para sitios con mucho contenido y ediciones frecuentes, 10 revisiones es una alternativa razonable.
Papelera Automática
// Vaciar la papelera cada 7 días (el valor predeterminado es 30)
define( 'EMPTY_TRASH_DAYS', 7 );
// Desactivar la papelera (elementos eliminados inmediatamente - usar con precaución)
define( 'EMPTY_TRASH_DAYS', 0 );
Intervalo de Autoguardado
// Aumentar el intervalo de autoguardado a 5 minutos (el valor predeterminado es 60 segundos)
define( 'AUTOSAVE_INTERVAL', 300 );
Optimizando Tablas de Base de Datos
Después de eliminar filas, ejecuta una operación de OPTIMIZAR para recuperar espacio fragmentado:
OPTIMIZE TABLE wp_posts, wp_postmeta, wp_options, wp_comments, wp_commentmeta;
Programa esto mensualmente o después de grandes operaciones de limpieza. La mayoría de los plugins de limpieza incluyen optimización de tablas en sus tareas programadas.
Programación de Limpieza Automática
Configura horarios automatizados: limpieza semanal de transitorios y spam, eliminación mensual de revisiones y optimización de tablas, y auditorías trimestrales de tablas de plugins huérfanas. Tanto WP-Optimize como WP Rocket admiten limpieza programada. Configúralos durante horas de menor actividad.
Monitoreo del Tamaño de la Base de Datos
Controla el tamaño de tu base de datos para detectar el crecimiento excesivo a tiempo. Ejecuta esta consulta para ver los tamaños de las tablas individuales:
SELECT table_name AS 'Tabla',
ROUND(data_length / 1024 / 1024, 2) AS 'Datos (MB)',
table_rows AS 'Filas'
FROM information_schema.tables
WHERE table_schema = 'tu_nombre_de_base_de_datos'
ORDER BY (data_length + index_length) DESC
LIMIT 20;
Si wp_options supera los 5 MB o wp_postmeta crece más allá de los 100 MB, es hora de una limpieza. Estas tablas se consultan con frecuencia, por lo que su tamaño afecta directamente los tiempos de carga de las páginas.
Para un enfoque integral de optimización del rendimiento que incluya optimización de la base de datos junto con almacenamiento en caché, optimización de imágenes y configuración del servidor, lee nuestra guía de optimización de velocidad de WordPress. Para mantener la salud de la base de datos como parte de tu rutina de mantenimiento, consulta nuestra guía de mantenimiento de WordPress.
Para más detalles, consulte la documentación oficial: API de Base de Datos de WordPress.
Preguntas Frecuentes
¿Es seguro eliminar revisiones de publicaciones de la base de datos?
Sí, eliminar revisiones de publicaciones es seguro y no afecta tu contenido publicado. Las revisiones son instantáneas históricas de los cambios en borrador. Una vez que tu contenido está finalizado, las revisiones no sirven para la mayoría de los sitios. Sin embargo, siempre haz una copia de seguridad de tu base de datos antes de realizar cualquier limpieza.
¿La optimización de la base de datos mejorará notablemente la velocidad de mi sitio?
La mejora depende de cuánto esté inflada tu base de datos. Los sitios con más de 50,000 filas huérfanas o una tabla wp_options que supere los 10 MB verán mejoras notables en los tiempos de carga de las páginas y la capacidad de respuesta del panel de administración. Los sitios más pequeños pueden ver ganancias marginales. La optimización de la base de datos funciona junto con el almacenamiento en caché y otras medidas de rendimiento para una mejora acumulativa.
¿Con qué frecuencia debo optimizar mi base de datos de WordPress?
Para sitios activos con actualizaciones de contenido regulares, la optimización mensual es una buena base. Los sitios de alto tráfico con comentarios frecuentes, transacciones de WooCommerce o envíos de formularios pueden beneficiarse de la limpieza semanal de transitorios y spam con optimización mensual de tablas.
¿Los plugins de limpieza de base de datos pueden romper mi sitio?
Plugins de buena reputación como WP-Optimize y WP Rocket están diseñados para ser seguros. Apuntan a categorías de bloat conocidas (revisiones, transitorios, spam) y no tocan datos esenciales. El riesgo aumenta al eliminar manualmente tablas específicas de plugins. Si no estás seguro de si una tabla es necesaria, déjala en su lugar y investiga su propósito primero.
¿Cuál es la diferencia entre OPTIMIZE TABLE y eliminar filas?
Eliminar filas quita datos de la tabla. OPTIMIZE TABLE reorganiza el almacenamiento físico de la tabla después de que se han eliminado filas, recuperando espacio en disco y desfragmentando el archivo de datos. Piénsalo como eliminar archivos (eliminar filas) frente a desfragmentar tu disco duro (optimizar la tabla).
¿Debo usar InnoDB o MyISAM para las tablas de WordPress?
WordPress utiliza InnoDB por defecto desde la versión 5.5, y es el motor de almacenamiento recomendado. InnoDB admite bloqueo a nivel de fila (mejor para usuarios concurrentes), transacciones y recuperación ante fallos. MyISAM es más rápido para operaciones de lectura intensiva, pero carece de estas características de fiabilidad. Si encuentras tablas MyISAM en tu base de datos, generalmente se recomienda convertirlas a InnoDB.
¿Cómo identifico las tablas dejadas por plugins desactivados?
El plugin Advanced Database Cleaner puede detectar y categorizar tablas no esenciales. Alternativamente, ejecuta la consulta SQL SHOW TABLES y compara los nombres de las tablas con las tablas del núcleo de WordPress y tus plugins actualmente activos. Las tablas con prefijos que coinciden con plugins desactivados son candidatas para eliminación.
¿WooCommerce añade un bloat significativo a la base de datos?
Sí. WooCommerce almacena datos de pedidos, metadatos de productos, sesiones de clientes y transitorios que crecen sustancialmente en tiendas activas. Utiliza WooCommerce > Estado > Herramientas para limpiar transitorios y sesiones expirados regularmente.
Optimiza el Rendimiento desde Todos los Ángulos
WP Rocket maneja el almacenamiento en caché, la limpieza de la base de datos y la optimización del rendimiento en un solo plugin, para que puedas mantener tu sitio funcionando sin problemas.
Explora WP Rocket →



