Cómo optimizar una base de datos de WordPress

La base de datos de WordPress es el corazón de tu sitio. Cada entrada, página, comentario, ajuste y registro de plugin se almacena en una base de datos MySQL o MariaDB. Con el tiempo, la base de datos se carga de datos innecesarios que ralentizan el sitio. En esta guía te mostramos cómo limpiar y optimizar la base de datos de WordPress para obtener el máximo rendimiento.
¿Por qué es importante optimizar la base de datos?
Cada vez que un visitante abre una página, WordPress envía consultas a la base de datos para mostrar el contenido. Si la base de datos contiene miles de filas innecesarias, esas consultas tardan más, lo que afecta directamente a la velocidad de carga. Una base de datos lenta significa un sitio lento, y un sitio lento significa menos visitantes y peores posiciones en Google.
Un sitio WordPress típico, tras un año de actividad, puede arrastrar decenas de miles de revisiones de entradas innecesarias, un millar de transients, cientos de comentarios de spam y tablas fragmentadas. Todo esto carga la base de datos sin aportar ningún beneficio.
Las revisiones de entradas: el asesino silencioso del rendimiento
WordPress guarda automáticamente una revisión cada vez que guardas una entrada o página. Si tienes 100 entradas guardadas 20 veces cada una, eso son 2.000 filas en la base de datos solo en concepto de revisiones. La mayoría de esas revisiones no las necesitarás jamás.
Eliminación manual de revisiones: Puedes usar una consulta SQL directamente en phpMyAdmin. En cPanel tienes acceso a phpMyAdmin:
DELETE FROM wp_posts WHERE post_type = 'revision';
Sin embargo, recomendamos el enfoque más seguro basado en plugins, porque la eliminación manual puede provocar problemas si no sabes exactamente lo que haces.
Limitar las revisiones futuras: Añade la siguiente línea a wp-config.php:
define('WP_POST_REVISIONS', 3);
Esto mantiene solo las últimas 3 revisiones de cada entrada. Puedes poner 0 para desactivar las revisiones por completo, pero recomendamos dejar al menos 2-3 por si editas algo por error.
Transients: datos temporales que se quedan para siempre
Los transients son datos temporales que WordPress y los plugins almacenan en la base de datos con una fecha de caducidad. El problema es que WordPress no elimina automáticamente los transients caducados: se quedan en la base de datos y ocupan espacio. Algunos plugins crean miles de transients que nunca caducan.
Los transients se almacenan en la tabla wp_options, una de las tablas más importantes y que más se lee. Cuantas más filas innecesarias haya en wp_options, más lenta será la carga de cada página.
Para eliminar los transients caducados puedes usar un comando de WP-CLI:
wp transient delete --expired
O usar un plugin que lo haga automáticamente a intervalos regulares.
Comentarios de spam y eliminados
Si tienes un blog con los comentarios habilitados, los comentarios de spam se acumulan a un ritmo increíble. Akismet y otros plugins antispam bloquean el spam, pero los comentarios eliminados y de spam permanecen en la base de datos en las carpetas «Spam» y «Papelera». WordPress elimina automáticamente los comentarios de la papelera al cabo de 30 días, pero nunca elimina los comentarios de spam a menos que lo hagas tú manualmente.
Vacía periódicamente las carpetas de spam y papelera de comentarios. Si tienes miles de comentarios de spam, eliminarlos desde el administrador de WordPress puede ser lento; usa un plugin o una consulta SQL:
DELETE FROM wp_comments WHERE comment_approved = 'spam';
Optimización de tablas
Cuando eliminas datos de una tabla MySQL, el espacio no se libera automáticamente. La tabla mantiene el mismo tamaño, solo que con «huecos» donde antes estaban los datos eliminados. Esto se llama fragmentación. El comando OPTIMIZE TABLE desfragmenta la tabla y recupera espacio.
En phpMyAdmin, selecciona todas las tablas y elige «Optimizar tabla» en el menú desplegable. O usa SQL:
OPTIMIZE TABLE wp_posts, wp_postmeta, wp_options, wp_comments, wp_commentmeta;
Recomendamos ejecutarlo una vez al mes o usar un plugin que lo automatice.
WP-Optimize: una solución todo en uno
WP-Optimize es el plugin de optimización de bases de datos más popular, con más de 1 millón de instalaciones activas. Te permite:
Limpiar la base de datos: Con un clic, elimina revisiones, transients, comentarios de spam, entradas en la papelera, pingbacks y trackbacks. Puedes elegir qué eliminar y previsualizar cuánto espacio se liberará antes de borrar.
Optimizar tablas: Ejecuta automáticamente OPTIMIZE TABLE en todas las tablas de WordPress. Muestra el nivel de fragmentación de cada tabla.
Programar limpiezas automáticas: Configura limpiezas automáticas diarias, semanales o mensuales. El plugin eliminará los datos innecesarios según el calendario establecido.
La versión gratuita cubre todo lo básico. La versión premium añade funciones avanzadas como la compresión de imágenes y la caché de páginas.
Advanced Database Cleaner: para usuarios avanzados
Advanced Database Cleaner es un gran plugin que va un paso más allá que WP-Optimize. Su punto fuerte clave es la detección de tablas «huérfanas»: tablas que quedan en la base de datos después de desinstalar un plugin. Muchos plugins crean sus propias tablas al instalarse pero no las eliminan al desinstalarse.
El plugin muestra una lista de todas las tablas de la base de datos e indica cuáles pertenecen al núcleo de WordPress, cuáles a plugins activos y cuáles han quedado sin propietario. Puedes eliminar de forma segura las tablas huérfanas y recuperar espacio.
También detecta filas «huérfanas» en la tabla wp_options: ajustes de plugins que ya no están instalados. Esta es una causa frecuente de que la tabla wp_options sea enorme.
La tabla wp_options: la causa más habitual de lentitud
La tabla wp_options es especialmente crítica porque se carga en cada petición. WordPress carga en memoria todas las filas cuyo campo autoload esté en «yes» en cada carga de página. Si tienes cientos de kilobytes de opciones con autoload, eso ralentiza directamente cada página.
Comprueba el tamaño de los datos con autoload mediante una consulta SQL:
SELECT SUM(LENGTH(option_value)) as autoload_size FROM wp_options WHERE autoload = 'yes';
Si el resultado supera 1 MB, tienes un problema. Revisa las opciones más grandes con autoload y desactiva el autoload de aquellas que no necesitan cargarse en cada página.
Copia de seguridad antes de optimizar
Antes de cualquier optimización de la base de datos, haz una copia de seguridad. Es el paso más importante que mucha gente se salta. Si algo va mal durante la optimización, una copia de seguridad te permite restaurar el sitio a su estado anterior en unos minutos.
Usa un plugin como UpdraftPlus para hacer copias de seguridad automáticas de la base de datos, o exporta la base de datos mediante phpMyAdmin. BeoHosting también realiza copias de seguridad diarias de tu sitio en todos los planes de hosting, pero siempre es mejor tener también tu propia copia antes de cambios importantes.
Calendario de mantenimiento recomendado
Semanal: Elimina los comentarios de spam y las entradas de la papelera.
Mensual: Elimina las revisiones (conserva las últimas 3), limpia los transients y optimiza las tablas.
Trimestral: Comprueba si hay tablas y opciones huérfanas, analiza el tamaño de la tabla wp_options y revisa el rendimiento de la base de datos.
Con un mantenimiento regular, tu base de datos de WordPress se mantendrá rápida y eficiente, y el sitio cargará bastante más rápido. Una base de datos optimizada es una de las formas más sencillas de mejorar el rendimiento del sitio sin coste alguno.
BeoHosting Team
10+ años de experiencia — Especialistas en alojamiento web e infraestructura
- Web Hosting
- WordPress Hosting
- VPS
- Dedicated Serveri
- Domeni
- SSL
- cPanel
- LiteSpeed
- Linux administracija
- DNS
Última actualización: