🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

Cómo optimizar una base de datos MySQL en WordPress y PrestaShop (guía práctica)

Actualizado el 20 de diciembre de 2025

¿Por qué es importante optimizar la base de datos de tu tienda o blog?

Si tienes una web con WordPress o una tienda con PrestaShop, la base de datos es el cerebro de tu proyecto. Ahí se guardan los productos, los pedidos, los comentarios, las contraseñas cifradas y las opciones de configuración. Con el tiempo, esa base de datos se llena de "basura digital": revisiones antiguas de entradas, transients caducados, sesiones de usuarios fantasma, tablas corruptas o índices ineficientes.

El resultado es un sitio lento, que tarda en cargar, y que pierde posiciones en Google. De hecho, la velocidad de carga es un factor de posicionamiento clave. Si tu base de datos es un caos, tu web lo nota y tus visitantes también.

La buena noticia es que optimizar MySQL no requiere ser un ingeniero de sistemas. Con una guía clara, herramientas gratuitas y un poco de paciencia, puedes dejar tu base de datos como nueva. En este artículo te explico, paso a paso, cómo hacerlo tanto en WordPress como en PrestaShop.


Lo que necesitas antes de empezar (preparación básica)

Antes de tocar nada, debes preparar el terreno. No hacerlo puede costarte caro.

Haz una copia de seguridad completa

Este es el paso más importante de todos. Si algo sale mal, necesitas poder volver atrás. Una copia de seguridad debe incluir dos cosas:

  1. Los archivos de tu web (el código, las imágenes, los plugins).
  2. La base de datos completa (todas las tablas y su contenido).

Puedes hacerlo desde el panel de control de tu hosting (cPanel, Syspanel, Plesk, etc.) o con plugins como UpdraftPlus en WordPress o el módulo de copias de seguridad de PrestaShop.

[WARNING] No optimices nunca tu base de datos sin una copia de seguridad reciente. Si la base de datos se corrompe, podrías perder tu tienda o tu blog entero. Es como arreglar el motor del coche sin frenos: no lo hagas.

Accede a phpMyAdmin o a la herramienta de gestión de BD

Para la mayoría de las tareas de limpieza, usarás phpMyAdmin. Es una herramienta gratuita que viene incluida en casi todos los paneles de hosting. La encuentras en:

  • cPanel: Sección "Bases de datos" → "phpMyAdmin".
  • Syspanel (el panel de control que menciono en esta guía): accede por el puerto 2106 (por ejemplo, https://tu-dominio.com:2106), luego entra en la sección de bases de datos y busca el icono de phpMyAdmin.
  • Plesk: Sección "Bases de datos" → clic en la base de datos → "phpMyAdmin".

Una vez dentro, selecciona tu base de datos en el menú lateral izquierdo. Verás una lista enorme de tablas. No te asustes, es normal.


Guía práctica para optimizar MySQL en WordPress

WordPress es un gestor de contenidos muy potente, pero también es un "devorador" de recursos de base de datos si no lo mantienes. Aquí tienes las tareas clave.

1. Limpieza de revisiones de entradas y páginas

Cada vez que guardas un borrador o una entrada, WordPress guarda una revisión anterior. Con el tiempo, una simple página puede tener decenas de revisiones. Eso llena la tabla wp_posts de forma innecesaria.

Cómo limpiarlas con phpMyAdmin:

  1. Entra en tu base de datos.
  2. Ve a la pestaña "SQL" (consulta).
  3. Ejecuta esta consulta SQL (cambia wp_ por el prefijo de tus tablas si es diferente):
DELETE FROM wp_posts WHERE post_type = "revision";

[TIP] Si tu web tiene muchos años, esta sola consulta puede eliminar miles de registros y reducir el peso de la base de datos en varios megas. Notarás la diferencia al instante.

2. Eliminar transients caducados

Los transients son datos temporales que usan los plugins para almacenar cachés de consultas, avisos, etc. Muchos no se borran solos y se quedan en la tabla wp_options.

Consulta para limpiarlos:

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

Esta consulta elimina todos los transients, tanto los caducados como los que aún están activos. Los activos se regenerarán automáticamente cuando hagan falta, así que no hay riesgo.

3. Limpiar comentarios spam y no aprobados

Los comentarios spam llenan la tabla wp_comments y ralentizan las consultas. Puedes eliminarlos desde el panel de WordPress, pero si tienes miles, es más rápido con SQL.

DELETE FROM wp_comments WHERE comment_approved = 'spam';

También puedes borrar los que están pendientes de moderación (si no los quieres revisar):

DELETE FROM wp_comments WHERE comment_approved = '0';

4. Optimizar las tablas (comando OPTIMIZE TABLE)

Después de borrar datos, las tablas quedan con "huecos" y fragmentadas. El comando OPTIMIZE TABLE las reconstruye y libera espacio.

Cómo hacerlo:

  • En phpMyAdmin, selecciona todas las tablas (clic en "Seleccionar todo").
  • En el menú desplegable inferior, elige "Optimizar tabla" y haz clic en "Continuar".

O si prefieres usar SQL:

OPTIMIZE TABLE wp_posts, wp_options, wp_comments, wp_term_relationships;

[INFO] Este comando no borra datos, solo reorganiza los que ya existen. Es 100% seguro y deberías ejecutarlo al menos una vez al mes.

5. Revisar y mejorar los índices

Los índices son como el índice de un libro: hacen que las búsquedas sean mucho más rápidas. WordPress ya crea índices por defecto, pero a veces se pierden o se crean índices duplicados por culpa de plugins.

Cómo revisar los índices:

  • Ve a la pestaña "Estructura" de una tabla (por ejemplo, wp_posts).
  • Verás una sección de "Índices" en la parte inferior.
  • Asegúrate de que existen índices en las columnas post_type, post_status y post_date. Si no están, puedes crearlos con esta consulta:
ALTER TABLE wp_posts ADD INDEX idx_post_type (post_type);
ALTER TABLE wp_posts ADD INDEX idx_post_status (post_status);
ALTER TABLE wp_posts ADD INDEX idx_post_date (post_date);

[TIP] No crees índices en todas las columnas. Cada índice consume espacio y ralentiza las inserciones. Solo añade índices en las columnas que se usan en las consultas WHERE o ORDER BY con frecuencia.


Guía práctica para optimizar MySQL en PrestaShop

PrestaShop es más complejo que WordPress en cuanto a base de datos, porque gestiona pedidos, clientes, stocks y combinaciones de productos. Pero las técnicas son similares.

1. Limpieza de sesiones de clientes antiguas

PrestaShop guarda las sesiones de los visitantes en la tabla ps_connections y ps_guest. Si tienes mucho tráfico, estas tablas crecen muy rápido.

Consulta para limpiar sesiones antiguas (más de 30 días):

DELETE FROM ps_connections WHERE date_add < DATE_SUB(NOW(), INTERVAL 30 DAY);
DELETE FROM ps_guest WHERE id_guest NOT IN (SELECT id_guest FROM ps_connections);
DELETE FROM ps_connections_page WHERE id_connections NOT IN (SELECT id_connections FROM ps_connections);

Esta consulta borra el rastro de los visitantes que entraron hace más de un mes. Es seguro y no afecta a los pedidos.

2. Vaciar la tabla de "carreras de correo" y logs

PrestaShop registra muchos logs y correos enviados. Con el tiempo, la tabla ps_mail y ps_log pueden ocupar mucho espacio.

Consulta para limpiarlas:

TRUNCATE TABLE ps_mail;
TRUNCATE TABLE ps_log;

[WARNING] TRUNCATE borra todos los registros de la tabla. Asegúrate de que no necesitas esos logs para depurar problemas recientes. Si tienes dudas, usa DELETE con una condición de fecha.

3. Optimizar las tablas de productos y combinaciones

Las tablas ps_product, ps_product_attribute y ps_stock_available son las más consultadas en una tienda. Si tienes muchos productos, es crucial que estén bien indexadas.

Índices recomendados para PrestaShop:

ALTER TABLE ps_product ADD INDEX idx_active (active);
ALTER TABLE ps_product ADD INDEX idx_price (price);
ALTER TABLE ps_product_attribute ADD INDEX idx_product (id_product);
ALTER TABLE ps_stock_available ADD INDEX idx_product_attribute (id_product_attribute);

Estos índices aceleran las consultas de listados de productos, filtros por precio y control de stock.

4. Limpiar pedidos anulados o en estado "cancelado"

Los pedidos que no se completan (carritos abandonados, pagos fallidos) se quedan en la base de datos. Puedes borrar los que tengan más de 60 días y que estén en estado "Carrito" o "Cancelado".

DELETE FROM ps_orders WHERE date_add < DATE_SUB(NOW(), INTERVAL 60 DAY) AND current_state IN (SELECT id_order_state FROM ps_order_state WHERE name LIKE '%Cancel%' OR name LIKE '%Carrito%');

[INFO] Antes de borrar pedidos, consulta con tu asesor legal si tienes obligación de conservarlos. En muchos países, los datos fiscales deben guardarse durante años.

5. Ejecutar "Optimizar tablas" desde el panel de PrestaShop

PrestaShop tiene una herramienta integrada para optimizar la base de datos:

  1. Ve a Parámetros avanzadosRendimiento.
  2. En la sección "Base de datos", verás un botón que dice "Optimizar base de datos".
  3. Haz clic y espera a que termine.

Esta herramienta ejecuta comandos OPTIMIZE TABLE y ANALYZE TABLE automáticamente. Es muy útil si no te sientes cómodo con SQL.


Herramientas y plugins que te facilitan la vida

Si no quieres tocar SQL a mano, existen plugins que automatizan todo este proceso.

Para WordPress:

  • WP-Optimize: Limpia revisiones, transients, spam y optimiza las tablas desde el panel. Es muy intuitivo.
  • Advanced Database Cleaner: Más enfocado a limpiar tablas huérfanas de plugins desinstalados.
  • WP Rocket (de pago): Además de caché, incluye una limpieza básica de base de datos.

Para PrestaShop:

  • PS Cleaner: Un módulo gratuito que limpia logs, sesiones y carritos abandonados.
  • PrestaShop Cleaner (de pago): Más completo, permite programar limpiezas automáticas.

[TIP] Configura una limpieza automática mensual con estos plugins. Así no tendrás que acordarte de hacerlo a mano.


Preguntas frecuentes (FAQ)

¿Con qué frecuencia debo optimizar la base de datos?

Depende del tráfico y del tamaño de tu web. Como regla general:

  • Blog personal: Cada 3 meses.
  • Tienda online pequeña: Cada mes.
  • Tienda online con mucho tráfico: Cada semana.

¿Optimizar la base de datos puede romper mi web?

Si haces una copia de seguridad y usas consultas estándar, el riesgo es mínimo. Eso sí, evita borrar tablas completas si no sabes para qué sirven. Los plugins de limpieza son más seguros para principiantes.

¿Por qué mi base de datos sigue siendo grande después de limpiarla?

A veces el peso no está en los registros, sino en las tablas que no se han optimizado físicamente. Ejecuta OPTIMIZE TABLE después de cada limpieza para compactar el archivo.

¿Los índices ralentizan la inserción de datos?

Sí, cada índice adicional hace que las operaciones de escritura (INSERT, UPDATE) sean un poco más lentas. Por eso solo debes crear índices en las columnas que realmente se usan en consultas de lectura.

¿Es lo mismo optimizar la base de datos que hacer caché?

No. La caché guarda copias de las páginas HTML para servirlas más rápido. La optimización de base de datos limpia y reorganiza los datos en el servidor. Ambas son complementarias y necesarias.

¿Puedo optimizar la base de datos desde Syspanel?

Sí. En Syspanel, accede por el puerto 2106, entra en la sección de bases de datos y selecciona tu base de datos. Allí tendrás acceso a phpMyAdmin y a herramientas de gestión. Es tan seguro como cualquier otro panel.


Resumen y checklist final

Optimizar la base de datos de WordPress y PrestaShop es una tarea de mantenimiento esencial que no deberías ignorar. Te ayuda a:

  • Mejorar la velocidad de carga de tu web.
  • Reducir el uso de recursos del servidor.
  • Evitar errores de conexión con la base de datos.
  • Mejorar tu posicionamiento SEO gracias a una web más rápida.

Checklist para tu próxima optimización:

  1. ✅ Haz una copia de seguridad completa.
  2. ✅ Limpia revisiones, transients y spam (WordPress) o sesiones, logs y carritos (PrestaShop).
  3. ✅ Ejecuta el comando OPTIMIZE TABLE en todas las tablas.
  4. ✅ Revisa y añade índices en las tablas más consultadas.
  5. ✅ Programa limpiezas automáticas con plugins o cron jobs.

Si tienes dudas, empieza con los plugins y ve ganando confianza. Con el tiempo, podrás hacerlo todo a mano con SQL y en cuestión de minutos.

[TIP] No olvides revisar la base de datos después de actualizar tu tema o tus plugins. A veces, las actualizaciones dejan tablas huérfanas que puedes eliminar con seguridad.

Tu web (y tus visitantes) te lo agradecerán. ¡Manos a la obra! 🚀

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel