Cómo optimizar la base de datos de WooCommerce eliminando transients y datos huérfanos

La base de datos de WooCommerce puede volverse lenta y pesada con el tiempo, especialmente en tiendas con mucho tráfico o productos. En este artículo, te enseñamos a identificar y eliminar transients, datos huérfanos y otros registros innecesarios que afectan al rendimiento.

Índice

¿Qué son los transients?

Los transients son variables temporales almacenadas en la tabla wp_options con prefijos como _transient_ o _transient_timeout_. WooCommerce los usa para almacenar resultados de consultas, información de caché y otros datos temporales.

Cómo identificarlos desde MySQL

SELECT option_name, option_value 
FROM wp_options 
WHERE option_name LIKE '%_transient_%';

Este comando muestra todos los transients almacenados. Muchos de ellos ya están expirados pero siguen ocupando espacio.

Eliminar datos huérfanos

WooCommerce deja registros sin uso en varias tablas tras eliminar productos, pedidos o variaciones. Algunas consultas útiles:

-- Transients expirados
DELETE FROM wp_options 
WHERE option_name LIKE '_transient_%' 
AND option_name NOT LIKE '_transient_timeout_%';
-- Metadatos huérfanos
DELETE pm 
FROM wp_postmeta pm
LEFT JOIN wp_posts wp ON wp.ID = pm.post_id
WHERE wp.ID IS NULL;
-- Termmeta huérfano
DELETE tm
FROM wp_termmeta tm
LEFT JOIN wp_terms t ON t.term_id = tm.term_id
WHERE t.term_id IS NULL;

Script PHP automatizado

Este script puede programarse con cron para ejecutarse semanalmente:

query("DELETE FROM {$wpdb->options} WHERE option_name LIKE '_transient_%' AND option_name NOT LIKE '_transient_timeout_%'");
$wpdb->query("DELETE pm FROM {$wpdb->postmeta} pm LEFT JOIN {$wpdb->posts} wp ON wp.ID = pm.post_id WHERE wp.ID IS NULL");
$wpdb->query("DELETE tm FROM {$wpdb->termmeta} tm LEFT JOIN {$wpdb->terms} t ON t.term_id = tm.term_id WHERE t.term_id IS NULL");
echo "Limpieza completada.";
?>

Buenas prácticas y backups

  • Haz backup completo antes de ejecutar scripts SQL.
  • Utiliza un entorno staging si tienes alto tráfico.
  • Verifica la integridad con plugins como WP-DBManager.
  • Evita plugins de limpieza automática agresiva sin control.

Conclusión

Eliminar datos temporales y huérfanos mejora el rendimiento de tu tienda y reduce el uso de recursos. Esta práctica debería ser parte de tu mantenimiento mensual.

¿Quieres que revisemos y optimicemos tu base de datos WooCommerce? Contáctanos.

Ir al contenido