Optimización técnica

Optimización de bases de datos de WordPress: Trucos de MySQL más allá de los plugins

Optimización de la base de datos de WordPress en phpMyAdmin

Por qué es importante la optimización de bases de datos

Un sitio web WordPress lento no siempre se debe a imágenes grandes o un hosting deficiente. Con frecuencia, el verdadero cuello de botella se esconde en la base de datos MySQL. A medida que WordPress crece, acumula datos innecesarios, como metadatos antiguos, transitorios caducados, opciones sin usar de plugins eliminados, entradas postmeta huérfanas y miles de tareas cron que nunca se ejecutan correctamente.

La mayoría de los usuarios intentan solucionar el problema con complementos de base de datos. Estas herramientas son útiles para una limpieza básica, pero no pueden resolver problemas estructurales más profundos, como datos cargados automáticamente con exceso de datos o índices ineficientes. La optimización manual de MySQL le brinda un control real y permite obtener mejoras de rendimiento que los complementos no pueden alcanzar.

La optimización de la base de datos afecta el TTFB, la velocidad del backend, el rendimiento de WooCommerce, el uso de la CPU y la carga general del servidor. Con un ajuste manual adecuado, su sitio web se vuelve más rápido, más estable y mucho más escalable.

Si desea combinar el ajuste de la base de datos con mejoras de rendimiento de pila completa, consulte nuestra Servicio de optimización de velocidad de WordPress.

Comprensión de las tablas principales de WordPress

Para optimizar la base de datos de manera efectiva, es necesario comprender qué hace cada tabla y por qué puede sobrecargarse.

opciones_wp
Almacena la configuración global de WordPress, las configuraciones de los plugins y los datos en caché. La columna más importante es carga automática, que se carga en cada solicitud de página. Si esta tabla contiene megabytes de entradas autocargadas innecesarias, su TTFB se verá afectado.

wp_postmeta
Contiene metadatos de entradas, páginas y productos de WooCommerce. Suele contener datos no utilizados o huérfanos de entradas y revisiones eliminadas.

wp_cron
Almacena todo el sistema de tareas programadas de WordPress. Cuando los plugins registran eventos repetidamente, esta tabla puede crecer sin control.

LEER  Cómo reducir drásticamente el TTFB en WordPress (Ejemplos y pruebas de rendimiento en servidores reales)

Transitorios
Valores temporales en caché almacenados en wp_options. Suelen caducar sin eliminarse automáticamente.

Una base de datos saludable mantiene estas tablas pequeñas, indexadas y libres de contenido vencido o huérfano.

1. Limpiar wp_options y reducir el tamaño de carga automática

La tabla wp_options tiene el mayor impacto en el rendimiento. El objetivo es reducir los datos cargados automáticamente a menos de... 1 MB.

Compruebe el estado general de la tabla:

SELECT COUNT(*) AS total_rows,
ROUND(SUM(LENGTH(option_value)) / 1024 / 1024, 2) AS size_mb,
SUM(CASE WHEN autoload='yes' THEN 1 ELSE 0 END) AS autoloaded
FROM wp_options;

Encuentra las entradas autocargadas más pesadas:

Comprobación del tamaño de las opciones cargadas automáticamente mediante Query Monitor
SELECT option_name, LENGTH(option_value)/1024 AS size_kb
FROM wp_options
WHERE autoload='yes'
ORDER BY size_kb DESC
LIMIT 30;

A menudo verá datos sobrantes de complementos no utilizados, enormes registros de seguimiento o datos de sesiones de WooCommerce que deberían haber expirado pero no lo hicieron.

Eliminar opciones innecesarias:

DELETE FROM wp_options
WHERE option_name='old_plugin_cache_data';

Si un complemento se desinstaló incorrectamente, podrían quedar muchas opciones sin usar. Reducir los datos de carga automática de 5 a 10 MB a menos de 1 MB puede mejorar drásticamente el tiempo de respuesta del servidor.

2. Limpieza de wp_postmeta y eliminación de metadatos huérfanos

La tabla wp_postmeta suele ser la más grande en cualquier instalación de WordPress, especialmente en los sitios WooCommerce. Con el tiempo, recopila metadatos relacionados con entradas que ya no existen.

Identificar entradas postmeta huérfanas:

SELECT COUNT(*)
FROM wp_postmeta pm
LEFT JOIN wp_posts p ON p.ID = pm.post_id
WHERE p.ID IS NULL;

Elimínalos de forma segura:

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

Eliminar metadatos vacíos o no utilizados:

DELETE FROM wp_postmeta
WHERE meta_value = '' OR meta_value IS NULL;

Después de la limpieza, las consultas que involucran postmeta (especialmente las páginas de productos de WooCommerce) se vuelven significativamente más rápidas.

LEER  Corrija el exceso de datos ocultos de WordPress y aumente la velocidad de su sitio

3. Eliminación de transitorios caducados y no utilizados

Los transitorios almacenan información temporal en caché para plugins y funcionalidades de temas. WordPress debería eliminar automáticamente los transitorios expirados, pero en realidad suelen permanecer bloqueados en la tabla wp_options.

Eliminar todos los transitorios:

DELETE FROM wp_options
WHERE option_name LIKE '_transient_%'
OR option_name LIKE '_site_transient_%';

Eliminar únicamente los transitorios vencidos:

DELETE FROM wp_options
WHERE option_name LIKE '_transient_timeout_%'
AND option_value < UNIX_TIMESTAMP();

Algunos sitios acumulan decenas de miles de transitorios vencidos, lo que ralentiza drásticamente las búsquedas en las bases de datos.

4. Limpiar wp_cron y reducir la sobrecarga de tareas programadas

El sistema interno de wp-cron se sobrecarga con frecuencia con tareas duplicadas o bloqueadas. Esto puede ralentizar el rendimiento tanto del frontend como del área de administración de WordPress.

Comprobar el tamaño del cron:

SELECT LENGTH(option_value)/1024/1024 AS cron_size_mb
FROM wp_options
WHERE option_name='cron';

Si la entrada cron es inusualmente grande, reiníciela:

DELETE FROM wp_options WHERE option_name='cron';

WordPress recreará automáticamente la entrada cron en el próximo evento programado.

Para mejorar la confiabilidad, deshabilite el cron incorporado y utilice un trabajo cron del sistema real.

Añadir a wp-config.php:

define('DISABLE_WP_CRON', true);

Luego configure un cron a nivel de servidor para llamar:

https://yourdomain.com/wp-cron.php?doing_wp_cron

Esto reduce los picos de CPU y hace que la programación sea predecible.

5. Optimización de tablas y adición de índices útiles

Después de limpiar la base de datos, ejecute la optimización de la tabla física para desfragmentar el almacenamiento y mejorar el rendimiento:

OPTIMIZE TABLE wp_options, wp_posts, wp_postmeta, wp_comments, wp_commentmeta;

Para tablas postmeta grandes, agregar un índice puede mejorar significativamente el rendimiento de la consulta:

ALTER TABLE wp_postmeta ADD INDEX meta_key_idx (meta_key(191));

Esto ayuda especialmente cuando se utiliza WooCommerce o campos personalizados avanzados.

6. Automatizar el proceso con WP-CLI

Para los desarrolladores y las agencias, la automatización ahorra horas de tiempo de mantenimiento.

LEER  ¿Tu tienda online va lenta, pero PageSpeed marca 95? La verdad sobre filtros, variaciones y clientes perdidos, y cómo solucionarlo.

Comandos útiles de WP-CLI:

wp transient delete --expired
wp db optimize
wp option delete old_plugin_data

Programe estos a través de un trabajo cron para que se ejecuten semanalmente o mensualmente para una optimización continua.

Caso práctico real: Resultados de optimización de SpeedWP Pro

Un cliente de WooCommerce nos contactó con graves problemas de rendimiento:

  • Tamaño de la base de datos: 380 MB

  • Datos cargados automáticamente: 6,2 MB

  • Tiempo de respuesta total (TTFB): 700–900 ms

  • El panel de administración es extremadamente lento

Después de la optimización manual:

  • Se eliminaron 140.000 transitorios vencidos

  • Carga automática reducida de 6,2 MB a 0,9 MB

  • Se eliminaron 80.000 entradas huérfanas de postmeta

  • Se optimizaron todas las tablas principales

Resultados:

  • TTFB mejorado por 42%

  • El tiempo de carga del administrador se redujo de 3,8 segundos a 1,6 segundos

  • El uso de CPU de MySQL disminuyó en 35%

  • La edición de productos de WooCommerce se volvió significativamente más rápida

Esto demuestra cómo el ajuste manual de MySQL puede lograr mejoras que los complementos no pueden igualar.

La optimización de la base de datos de WordPress va mucho más allá de simplemente hacer clic en el botón "limpiar base de datos". Las mejoras reales en el rendimiento se obtienen al comprender cómo MySQL almacena los datos, identificar qué está ralentizando el sitio y eliminarlo de forma segura y estratégica.

Al controlar los datos cargados automáticamente, borrar metadatos huérfanos, administrar correctamente las tareas cron y utilizar la optimización a nivel de SQL, garantiza que su instalación de WordPress siga siendo eficiente, rápida y escalable, incluso a medida que crece.

Si desea una auditoría de base de datos profesional adaptada a su sitio, solicite una Auditoría de desempeño gratuita aquí:
https://speedwppro.com/free-audit