Cómo optimizar una base de datos en WordPress (Guía práctica)
¿Tu WordPress va lento? Antes de culpar al hosting o al tema, hay un sospechoso habitual que casi nadie revisa: la base de datos.
Con el tiempo, tu sitio acumula cientos de miles de registros basura: revisiones de entradas, transients caducados, comentarios spam y tablas fragmentadas.
Esto hace que cada consulta a MySQL tarde más, y el resultado es una web que carga lenta o que incluso da errores de conexión.
La buena noticia es que no necesitas ser un experto en programación para dejarla como nueva.
En esta guía práctica, paso a paso, te enseñaré a optimizar base de datos WordPress de forma segura, usando plugins y también con comandos manuales si te atreves.
Al final, tu web irá más rápida y el servidor lo agradecerá.
¿Por qué es importante optimizar la base de datos de WordPress?
Cada vez que publicas una entrada, alguien comenta o un plugin guarda información, se escriben filas en las tablas de la base de datos.
El problema es que WordPress no limpia solo.
Por ejemplo, cada vez que editas una entrada, guarda una "revisión" completa en la tabla wp_posts.
Si editas 20 veces un artículo, tienes 20 copias ocupando espacio.
Y esto solo es el principio.
Los principales "ladrones" de recursos en tu BD
Estos son los elementos que más inflan tu base de datos:
- Revisiones de entradas: Copias de seguridad de cada borrador o actualización.
- Transients (transitorios): Datos temporales que guardan plugins y temas con una fecha de caducidad. Si el plugin no los borra, se acumulan.
- Spam y comentarios en papelera: Ocupan espacio y ralentizan las consultas de comentarios.
- Tablas fragmentadas: Tras muchos borrados, los archivos internos quedan desordenados, como un disco duro fragmentado.
- Pingbacks y trackbacks: Notificaciones de enlaces externos que casi nadie usa.
- Datos de plugins desinstalados: Tablas huérfanas que quedan tras eliminar un plugin sin limpiar.
El resultado de no hacer nada es que tu web tarda más en responder, el panel de administración va lento y, en casos graves, superas los límites de memoria del servidor.
Método 1: Optimizar la base de datos con plugins (El más fácil)
Si no te sientes cómodo con código o acceso al servidor, esta es tu opción.
Existen plugins gratuitos que hacen el trabajo sucio por ti, con un par de clics.
1.1. Usa "WP-Optimize" (Recomendado para principiantes)
Este plugin es el más popular y completo para limpiar base de datos WordPress sin complicaciones.
Pasos para usarlo:
- Ve a Plugins > Añadir nuevo en tu escritorio.
- Busca "WP-Optimize" e instálalo.
- Actívalo y ve a WP-Optimize > Optimizar base de datos.
Verás una lista de casillas marcadas.
Te recomiendo dejar marcadas estas opciones:
- Limpiar todas las revisiones de entradas (puedes elegir mantener las últimas 5).
- Limpiar transients (transitorios) automáticos.
- Limpiar transients (transitorios) no automáticos.
- Limpiar comentarios en la papelera.
- Limpiar comentarios spam.
- Limpiar pingbacks y trackbacks.
- Limpiar tablas de plugins huérfanas.
Luego, pulsa el botón "Ejecutar la optimización".
El plugin te dirá cuánto espacio has liberado.
[TIP]
Ejecuta esta limpieza una vez al mes, o después de hacer grandes cambios en tu web (cambiar de tema, instalar/desinstalar muchos plugins).
1.2. Activa la optimización automática
WP-Optimize también tiene un programador.
Ve a la pestaña "Ajustes" o "Configuración" dentro del plugin.
Activa la opción "Programar una optimización automática".
Elige la frecuencia: semanal es un buen equilibrio para la mayoría de sitios.
Así te olvidas del mantenimiento manual.
Método 2: Optimizar la base de datos manualmente desde phpMyAdmin
Si tu hosting usa cPanel, Plesk o Syspanel (que recuerda, se accede por el puerto 2106), puedes hacerlo directamente.
Este método es más técnico, pero te da control total.
[WARNING]
Antes de tocar nada en phpMyAdmin, haz una copia de seguridad completa de la base de datos. Un error aquí puede romper tu web.
2.1. Accede a phpMyAdmin
Entra en el panel de control de tu hosting.
Si usas Syspanel, el acceso es: http://tu-dominio.com:2106 (o la IP de tu servidor).
Dentro de Syspanel, busca el acceso a phpMyAdmin en la sección de Bases de Datos.
2.2. La limpieza clásica: borrar revisiones
Esta es la tarea más efectiva y segura.
En phpMyAdmin, selecciona tu base de datos (normalmente empieza por wp_).
Haz clic en la pestaña "SQL" (o "Consulta").
Pega esta consulta SQL:
DELETE FROM wp_posts WHERE post_type = 'revision';
Esta línea elimina todas las revisiones de entradas.
Si quieres mantener las últimas 5 revisiones de cada entrada (recomendado por seguridad), usa esta otra:
DELETE a FROM wp_posts a
WHERE a.post_type = 'revision'
AND a.ID NOT IN (
SELECT ID FROM (
SELECT ID, ROW_NUMBER() OVER (PARTITION BY post_parent ORDER BY post_modified DESC) AS rn
FROM wp_posts
WHERE post_type = 'revision'
) AS t
WHERE t.rn <= 5
);
[INFO]
Si tu prefijo de tablas no es wp_, cámbialo en la consulta. Por ejemplo, si es miweb_, la consulta sería DELETE FROM miweb_posts WHERE post_type = 'revision';
2.3. Limpiar transients caducados
Los transients son temporales, pero a veces se quedan "huérfanos" sin fecha de caducidad.
Para borrar los que ya han expirado, ejecuta:
DELETE FROM wp_options WHERE option_name LIKE '_transient_timeout_%' AND option_value < NOW();
Y para borrar los transients que ya no tienen utilidad (sin expiración válida):
DELETE FROM wp_options WHERE option_name LIKE '_transient_%' AND option_name NOT LIKE '_transient_timeout_%';
2.4. Limpiar comentarios spam y en papelera
Esto reduce el peso de la tabla wp_comments.
DELETE FROM wp_comments WHERE comment_approved = 'spam';
DELETE FROM wp_comments WHERE comment_approved = 'trash';
2.5. Optimizar todas las tablas (desfragmentar)
Después de borrar, es hora de "compactar" las tablas.
En phpMyAdmin, ve a la pestaña "Estructura" de tu base de datos.
Verás la lista de tablas.
Marca la casilla de seleccionar todo (arriba a la izquierda).
En el desplegable inferior, elige "Optimizar tabla".
Esto ejecuta el comando OPTIMIZE TABLE y reorganiza los archivos físicos.
[WARNING]
No ejecutes esta operación mientras la web tenga mucho tráfico, ya que puede bloquear temporalmente las tablas.
Método 3: Optimizar desde la línea de comandos (SSH) para avanzados
Si tienes acceso SSH a tu servidor, puedes hacerlo mucho más rápido.
Accede por terminal y ejecuta:
mysql -u usuario -p basededatos -e "OPTIMIZE TABLE wp_posts, wp_options, wp_comments;"
O para optimizar todas las tablas de una vez:
mysqlcheck -u usuario -p --optimize basededatos
También puedes usar WP-CLI, la herramienta de línea de comandos para WordPress:
wp db optimize
Y para limpiar revisiones con WP-CLI:
wp post delete $(wp post list --post_type='revision' --format=ids) --force
Configuración avanzada: ajustes en wp-config.php
Para prevenir que la base de datos se llene de basura en el futuro, añade estas líneas a tu archivo wp-config.php.
Solo afectan a las revisiones de entradas:
define('WP_POST_REVISIONS', 5);
Esto limita el número de revisiones a 5 por entrada.
También puedes desactivar las revisiones por completo con:
define('WP_POST_REVISIONS', false);
[TIP]
No desactives las revisiones al 100% si editas entradas importantes. Mantener 3 o 5 es un buen equilibrio entre seguridad y rendimiento.
¿Con qué frecuencia debo optimizar la base de datos?
No hay una regla exacta, pero sigue esta guía práctica:
- Blogs con publicaciones diarias: Una vez al mes.
- Sitios con poco contenido (menos de 100 entradas): Cada 3 meses.
- Tiendas online: Cada 2 semanas, especialmente si usan plugins de carrito que guardan sesiones.
- Después de grandes cambios: Migraciones, cambios de tema, instalación de plugins pesados.
Señales de que tu base de datos necesita una limpieza urgente
- Tu web tarda más de 4 segundos en cargar sin motivo aparente.
- El panel de administración va lento, incluso con pocos plugins activos.
- Recibes errores como "Error al conectar con la base de datos" con frecuencia.
- El tamaño de la base de datos en disco es superior a 100 MB para un sitio pequeño.
- Las copias de seguridad tardan demasiado en generarse.
Herramientas complementarias para acelerar WordPress MySQL
Optimizar la base de datos es solo la mitad del camino.
Para acelerar WordPress MySQL de forma global, combínalo con:
- Un plugin de caché: como W3 Total Cache o WP Super Cache. Reducen las consultas a la BD.
- Índices personalizados: Si sabes SQL, puedes añadir índices a columnas que se consultan mucho (como
post_dateocomment_post_ID). - Un hosting con NVMe: Los discos SSD NVMe son mucho más rápidos que los SATA.
- Actualizar PHP a la versión 8.x: MySQL y WordPress funcionan mucho mejor con PHP moderno.
Preguntas frecuentes (FAQ) sobre optimización de BD en WordPress
¿Es seguro borrar revisiones de entradas?
Sí, es completamente seguro. Las revisiones son copias de seguridad internas. Al borrarlas, no pierdes el contenido actual de tus entradas. Solo pierdes la capacidad de "deshacer" cambios antiguos.
¿Qué pasa si borro transients?
Nada malo. Los transients se regeneran automáticamente cuando el plugin o tema los necesita de nuevo. Solo tardarás unos milisegundos más la primera vez que se generen.
¿Puedo optimizar la base de datos desde el hosting sin phpMyAdmin?
Si tu hosting usa Syspanel, busca la sección "Bases de datos". Muchas veces incluyen una herramienta llamada "Optimizar" o "Reparar" que ejecuta el comando OPTIMIZE automáticamente.
¿Los plugins de optimización rompen mi web?
No, si usas plugins populares como WP-Optimize o Advanced Database Cleaner y no tocas opciones avanzadas que no entiendes. Siempre haz una copia de seguridad antes.
¿Por qué mi tabla wp_options es tan grande?
Suele ser por transients huérfanos o por datos de plugins que guardan configuraciones enormes. Revisa con un plugin de limpieza cuáles son las opciones más pesadas.
¿Cuánto espacio puedo liberar?
En sitios antiguos, fácilmente puedes liberar entre un 30% y un 70% del espacio de la base de datos. Es normal pasar de 150 MB a 40 MB después de una buena limpieza.
Conclusión final
Optimizar la base de datos es una de las tareas de mantenimiento más importantes y menos populares de WordPress.
No es complicada, pero requiere constancia.
Empieza usando un plugin como WP-Optimize para la limpieza mensual.
Si te sientes más valiente, aprende a usar phpMyAdmin para tareas específicas.
Y recuerda: una base de datos limpia es sinónimo de una web rápida.
Tu servidor trabajará menos, tus visitantes estarán más contentos y Google lo notará en el posicionamiento.
Dedica 15 minutos al mes a esta tarea y tu WordPress te lo agradecerá.
Si tu hosting es Syspanel, recuerda que el acceso es por el puerto 2106 y que desde ahí puedes acceder a phpMyAdmin o a la herramienta de optimización integrada.
¿Listo para darle un respiro a tu base de datos? Manos a la obra.
