Como eliminar revisiones de publicaciónes y comentarios spam? Consultas SQL para mantenimiento de base de datos y plugins que lo hacen por ti.
ES

Guia de optimización de base de datos WordPress (edicion 2026)

5.00 /5 - (25 votes )
Última verificación: 1 de mayo de 2026
7min de lectura
Guía

WordPress almacena todo en una base de datos MySQL (o MariaDB). Con el tiempo, esta base de datos se "hincha", acumulando datos innecesarios que pueden ralentizar las consultas y todo el sitio. Una base de datos más grande significa tiempos de backup más largos, consultas `SELECT` más lentas y aumento del Time To First Byte (TTFB).

En esta guía completa para desarrolladores, recorreremos la optimización avanzada de base de datos - desde limpieza simple hasta análisis de consultas y configuración de InnoDB.


#Por que la optimización de base de datos es crítica en 2026

En 2026, cuando un TTFB inferior a 100ms es el estándar, una base de datos “pesada” es un ancla para tu sitio. Incluso si tienes un servidor super-rápido (PHP 8.4, NVMe), consultas SQL mal optimizadas pueden matar el rendimiento.

#Causas principales de problemas de base de datos:

  1. Bloatware (Datos excesivos): Revisiones de publicaciónes, spam de comentarios, metadata huerfana
  2. Opciones Autoloaded: Datos cargados en cada recarga de página, incluso si no se usan
  3. Indices faltantes: Consultas que deben escanear toda la tabla (Full Table Scan)
  4. Fragmentacion de tablas: Huecos en los datos que aumentan el tamaño del archivo en disco

#Parte 1: Higiene de base de datos (limpieza)

Empecemos eliminando la basura. Puedes hacerlo con un plugin (WP-Optimize), pero como desarrollador, debes saber hacerlo “manualmente” usando SQL o WP-CLI.

#1. Revisiones de publicaciónes

Cada vez que haces clic en “Guardar borrador”, se crea una nueva copia de la publicación. Con sesiones de edicion largas, puedes tener cientos de revisiones para un solo artículo.

Consulta SQL para verificar cantidad de revisiones:

SELECT COUNT(*) FROM wp_posts WHERE post_type = 'revision';

Eliminar revisiones (SQL):

DELETE FROM wp_posts WHERE post_type = 'revision';

Recomendado: Usar WP-CLI (Mas seguro):

wp post delete $(wp post list --post_type='revision' --format=ids) --force

#2. Limpieza de spam y papelera

No tiene sentido mantener spam o publicaciónes eliminadas.

DELETE FROM wp_comments WHERE comment_approved = 'spam';
DELETE FROM wp_comments WHERE comment_approved = 'trash';

#3. Transients (datos temporales)

Los transients son cache guardado en la base de datos (wp_options). A veces los transients expirados no se eliminan automáticamente.

Limpieza de transients expirados (SQL):

DELETE FROM wp_options WHERE option_name LIKE ('_transient_timeout%') OR option_name LIKE ('_transient_%');

WP-CLI (Mejor método):

wp transient delete --all

#4. Metadata huerfana

Cuando eliminas publicaciónes, la metadata asociada a veces permanece en wp_postmeta. Esta metadata huerfana ocupa espacio sin servir a ningun propósito.

DELETE pm FROM wp_postmeta pm
LEFT JOIN wp_posts wp ON wp.ID = pm.post_id
WHERE wp.ID IS NULL;

#Parte 2: Opciones Autoloaded (el asesino silencioso del rendimiento)

La tabla wp_options contiene una columna autoload. Si esta establecida en yes, esa opción se carga en cada recarga de página. Los plugins a menudo dejan basura aquí despues de la desinstalacion.

#Como diagnosticar?

Verifica cuantos datos (en bytes) se estan autoloading:

SELECT SUM(LENGTH(option_value)) as autoload_size FROM wp_options WHERE autoload = 'yes';

Si el resultado supera 800 KB - 1 MB, tienes un problema.

#Como encontrar las opciones más grandes?

SELECT option_name, LENGTH(option_value) as option_size
FROM wp_options
WHERE autoload = 'yes'
ORDER BY option_size DESC
LIMIT 10;

A menudo encontraras datos antiguos de plugins de cache, builders o logs. Si el plugin ya no se usa, puedes eliminar estas opciones de forma segura o cambiar autoload a no.

#Opciones comunes que deben limpiarse

Plugin/FuenteOpciónAccion
Plugins eliminados*_settings, *_optionsEliminar
Cache obsoleto*_cache_*, *_transient_*Eliminar
Builders (Elementor, Divi)*_css_*, *_global_*Cambiar autoload a ‘no’
Analytics/Tracking*_log_*, *_stats_*Eliminar si plugin inactivo

#Parte 3: InnoDB vs MyISAM

En 2026, ya no deberias usar el motor MyISAM. InnoDB es el estándar, ofreciendo:

  • Bloqueo a nivel de fila: MyISAM bloquea toda la tabla al escribir
  • Transacciones ACID: Seguridad de datos
  • Claves foraneas: Consistencia de relaciones

#Verificar motor de tabla:

SELECT TABLE_NAME, ENGINE FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'nombre_tu_base_datos';

#Convertir a InnoDB:

Si encuentras tablas MyISAM, conviertelas:

ALTER TABLE wp_posts ENGINE=InnoDB;
ALTER TABLE wp_comments ENGINE=InnoDB;
ALTER TABLE wp_options ENGINE=InnoDB;
-- y así para todas las tablas

#Parte 4: Indexacion (avanzado)

WordPress generalmente tiene buenos indices por defecto, pero los plugins a menudo añaden sus propias tablas sin indices adecuados. La falta de un indice en una consulta WHERE o JOIN significa que MySQL debe escanear cada fila en la tabla.

#Ejemplo: Búsqueda lenta en WooCommerce

Si tienes una tienda con 100,000 pedidos y un plugin busca pedidos por meta_key sin indice, la página “Mi Cuenta” puede tardar 10 segundos en cargar.

Solución: Añade indices a columnas que buscas o ordenas frecuentemente.

CREATE INDEX idx_meta_key_value ON wp_postmeta (meta_key(191), meta_value(50));

#Como identificar consultas que necesitan indices

  1. Query Monitor: Ordena por tiempo de ejecucion, identifica consultas > 100ms
  2. EXPLAIN: Ejecuta EXPLAIN antes de cualquier consulta sospechosa
  3. Slow Query Log: Habilita en la configuración MySQL para capturar consultas lentas automáticamente
-- Ver plan de ejecucion de una consulta
EXPLAIN SELECT * FROM wp_postmeta WHERE meta_key = '_price' AND meta_value > 100;

Si EXPLAIN muestra type: ALL en lugar de type: ref o type: index, la consulta necesita un indice.


#Parte 5: Prevencion (configurar wp-config.php)

En lugar de limpiar constantemente, es mejor no ensuciar. Configura WordPress de forma inteligente.

#Limitar revisiones

Añade a wp-config.php:

// Limitar a las 5 versiones más recientes
define( 'WP_POST_REVISIONS', 5 );

// Vaciar papelera cada 7 dias (por defecto es 30)
define( 'EMPTY_TRASH_DAYS', 7 );

// Aumentar intervalo de autoguardado (menos solicitudes AJAX en editor)
define( 'AUTOSAVE_INTERVAL', 300 ); // segundos

#Deshabilitar edicion de archivos

Para seguridad e higiene:

define( 'DISALLOW_FILE_EDIT', true );

#Parte 6: Herramientas de monitoreo (Query Monitor)

No adivines que ralentiza el sitio. Instala el plugin Query Monitor.

Despues de la instalación, en la barra de admin veras el tiempo de generación de página y número de consultas SQL.

  1. Haz clic en las estadísticas de la barra
  2. Ve a la pestaña “Queries”
  3. Ordena por “Time”

Si ves una consulta que toma 0.5s o más - ese es tu objetivo de optimización. A menudo viene de un plugin mal escrito (“Productos Vistos Recientemente”, “Contador de Visitas”, etc.).


#Parte 7: Automatizacion del mantenimiento

No dependas de recordar hacer limpieza manual. Automatiza el proceso.

#Script de mantenimiento semanal via WP-CLI

#!/bin/bash
# Mantenimiento semanal de base de datos WordPress

# 1. Eliminar transients expirados
wp transient delete --expired

# 2. Eliminar spam y papelera de comentarios
wp comment delete $(wp comment list --status=spam --format=ids) --force 2>/dev/null
wp comment delete $(wp comment list --status=trash --format=ids) --force 2>/dev/null

# 3. Optimizar tablas
wp db optimize

# 4. Reportar tamaño de base de datos
wp db size --tables

#Programar con cron del sistema

# Añadir a crontab: ejecutar cada domingo a las 3am
0 3 * * 0 /usr/local/bin/wp-db-maintenance.sh >> /var/log/wp-maintenance.log 2>&1

#Resumen: Checklist de optimización

Descubre más sobre optimización de velocidad WordPress en WPPoland.

  1. Backup: Siempre haz backup antes de trabajar en la base de datos
  2. Motor: Asegura que todas las tablas sean InnoDB
  3. Autoload: Verifica tamaño de opciones autoloaded (objetivo < 800KB)
  4. Limpieza: Elimina revisiones, spam y transients expirados
  5. Indices: Verifica que las consultas pesadas usen indices
  6. Prevencion: Configura wp-config.php para limitar creación de basura
  7. Automatizacion: Programa mantenimiento semanal con WP-CLI y cron
  8. Monitoreo: Usa Query Monitor para identificar consultas lentas continuamente

Cuando tu base de datos es ligera y rápida, PHP usa menos memoria y los usuarios obtienen contenido al instante. Esta es la base del WordPress moderno.

Necesitas ayuda con optimización de velocidad WordPress o mantenimiento WordPress profesional? Contactanos.

Siguiente paso

Transforma el artículo en una implementación real

Este bloque refuerza el enlazado interno y lleva al lector al siguiente paso más útil dentro de la arquitectura del sitio.

Cuales son las causas principales de una base de datos WordPress lenta?
Las causas principales son revisiones de publicaciónes excesivas, comentarios spam, transients expirados, opciones autoloaded de plugins desinstalados, tablas con motor MyISAM y falta de indices en columnas frecuentemente consultadas.
Que tamaño deberian tener las opciones autoloaded?
Las opciones autoloaded no deberian superar los 800KB-1MB en total. Si superan este umbral, identifica las opciones más grandes y cambia el flag autoload a 'no' o elimina las que pertenecen a plugins inactivos.
Deberia usar MyISAM o InnoDB en 2026?
InnoDB es el estándar obligatorio en 2026. Ofrece bloqueo a nivel de fila (MyISAM bloquea toda la tabla), transacciones ACID y claves foraneas. Convierte todas las tablas MyISAM a InnoDB.
Con que frecuencia deberia limpiar la base de datos WordPress?
Programa una limpieza automática semanal para sesiones y transients, y una limpieza mensual más completa que incluya revisiones, spam, optimización de tablas y verificación de opciones autoloaded.
Que herramienta es mejor para monitorear consultas lentas?
Query Monitor es el plugin esencial. Muestra cada consulta SQL, su tiempo de ejecucion, que archivo la disparo y si usa indices. Instala en desarrollo/staging y usa para identificar cuellos de botella.

¿Necesitas un FAQ adaptado a tu sector y mercado? Preparamos una versión alineada con tus objetivos de negocio.

Hablemos

Artículos Relacionados

Sitio con carga lenta? Aqui esta la hoja de ruta de optimización: Base de datos, HTTP/3, Cache y Script Defer. Acelera tu servicio de forma efectiva.
wordpress

Optimización integral de WordPress - Como acelerar tu sitio? (WPO)

Sitio con carga lenta? Aqui esta la hoja de ruta de optimización: Base de datos, HTTP/3, Cache y Script Defer. Acelera tu servicio de forma efectiva.

Guia técnica para acelerar sitios WordPress: hosting, caching, PHP-FPM, Redis, CDN, optimización de base de datos y mejora de Core Web Vitals.
performance

Como acelerar un sitio web basado en WordPress?

Guia técnica para acelerar sitios WordPress: hosting, caching, PHP-FPM, Redis, CDN, optimización de base de datos y mejora de Core Web Vitals.

Aprende como exportar posts, usuarios y datos de WooCommerce de WordPress a CSV o Excel con PHP, WP-CLI o la REST API.
development

Como exportar datos de WordPress a CSV o Excel

Aprende como exportar posts, usuarios y datos de WooCommerce de WordPress a CSV o Excel con PHP, WP-CLI o la REST API.