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

Guía para optimizar consultas MySQL en WordPress (PrestaShop y más)

Actualizado el 6 de enero de 2026

¿Tu web con WordPress, PrestaShop o cualquier otro CMS va lenta? Si ya has revisado el alojamiento y el tema, el problema suele estar en la base de datos. Cada vez que un visitante carga una página, tu sitio ejecuta decenas de consultas MySQL. Si alguna de ellas es lenta, todo el proceso se bloquea. Optimizar MySQL en WordPress o PrestaShop es la tarea pendiente que separa una web funcional de una que pierde visitantes por desesperación.

Esta guía está pensada para que, sin ser un experto en servidores, entiendas qué son las consultas lentas, cómo detectarlas y, sobre todo, cómo solucionarlas. Hablaremos de indexación, caché y ajustes específicos para plataformas como WordPress y PrestaShop. Al final, tendrás un plan de acción claro y práctico.

¿Qué es una consulta lenta y por qué afecta al rendimiento?

Cuando tu web necesita mostrar un artículo, un producto o el carrito de la compra, el sistema de gestión de contenidos (CMS) le pregunta a la base de datos: "dame todos los datos de este post", "dame el precio de estos 20 productos". Esa pregunta se llama consulta MySQL.

Una consulta lenta es aquella que tarda demasiado en obtener esa respuesta. Puede ser por varias razones: tablas con millones de registros sin índice, consultas mal escritas por el propio CMS o plugins que hacen preguntas absurdas a la base de datos. El resultado es el mismo: el servidor se satura, el tiempo de carga se dispara y, si tienes tráfico, el servidor puede colapsar.

Para que te hagas una idea, una consulta normal debería tardar menos de 0,05 segundos. Si una consulta tarda 2 segundos, es que algo está fallando. Y si tienes 50 consultas por página, la suma es devastadora.

Diagnóstico inicial: Cómo encontrar las consultas lentas

Antes de tocar nada, necesitas saber qué está fallando. No sirve de nada optimizar a ciegas. Aquí tienes las herramientas y métodos para diagnosticar el problema.

Activa el registro de consultas lentas en MySQL

La forma más directa es decirle a MySQL que guarde en un archivo todas las consultas que tarden más de un tiempo determinado. Esto se hace en la configuración del servidor.

  1. Accede a tu panel de control (si usas Syspanel, el acceso es por el puerto 2106, con tus credenciales de administrador).
  2. Busca la sección de "Bases de Datos" o "MySQL".
  3. Localiza el archivo de configuración my.cnf o my.ini (normalmente en /etc/mysql/).
  4. Añade o modifica estas líneas:
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow-queries.log
long_query_time = 2

Esto hará que cualquier consulta que tarde más de 2 segundos quede registrada. Puedes cambiar el 2 por 1 si quieres ser más estricto.

[TIP] Si no tienes acceso al archivo de configuración, puedes ejecutar en phpMyAdmin o en la consola de MySQL: SET GLOBAL slow_query_log = 'ON'; Pero el cambio no será permanente si reinicias el servidor.

Utiliza un plugin para WordPress

Si tu web es WordPress, no necesitas tocar el servidor para empezar. Instala un plugin como Query Monitor. Es gratuito y te muestra, en la barra de administración, cuántas consultas se ejecutan en cada página y cuánto tardan.

Con Query Monitor podrás ver:

  • El número total de consultas por página.
  • Las consultas duplicadas (esto es un problema serio).
  • Las consultas que tardan más de 1 segundo.

Anota las consultas que se repiten o las que son lentas. Esas son tus enemigas.

Optimizar MySQL en WordPress: Pasos prácticos

WordPress es el CMS más usado, pero también el que más consultas genera si no se cuida. Aquí tienes las optimizaciones más efectivas.

1. Actualiza todo (Sí, es una optimización)

Parece obvio, pero una versión desactualizada de WordPress, de un plugin o del tema puede tener consultas mal optimizadas que ya se han corregido en versiones posteriores. Antes de tocar la base de datos, actualiza todo. Esto solo ya puede reducir el número de consultas en un 30%.

2. Implementa un sistema de caché de objetos

WordPress, por defecto, consulta la base de datos cada vez que necesita un dato. Si tienes un plugin de caché de objetos (como Redis o Memcached), las consultas se guardan en memoria. La primera vez que se ejecuta una consulta, se guarda el resultado. Las siguientes veces, se sirve desde la memoria, sin tocar la base de datos.

Para ello:

  1. Contrata un hosting que soporte Redis (o actívalo en Syspanel si tu plan lo incluye).
  2. Instala un plugin como Redis Object Cache.
  3. Conéctalo a tu servidor Redis. El plugin te dirá si la conexión es correcta.

Este es el cambio más grande que puedes hacer. El rendimiento de la base de datos deja de ser un cuello de botella.

3. Optimiza las tablas de la base de datos

Con el tiempo, las tablas de MySQL se fragmentan. Esto hace que las consultas sean más lentas. Es como un disco duro lleno de archivos desordenados.

Puedes optimizar las tablas desde phpMyAdmin:

  1. Selecciona tu base de datos.
  2. Marca todas las tablas.
  3. En el desplegable inferior, elige "Optimizar tablas".

Esto reordena los datos y libera espacio. Deberías hacerlo al menos una vez al mes.

4. Elimina transients y revisiones de posts

WordPress guarda "transients" (datos temporales en caché) y revisiones antiguas de tus posts. Con el tiempo, esto puede llenar la base de datos de basura.

Puedes instalar un plugin como WP-Optimize o Advanced Database Cleaner para limpiar todo esto. Elimina:

  • Revisiones de posts antiguas (mantén solo las 2 últimas).
  • Transients caducados.
  • Spam de comentarios.

[WARNING] Antes de limpiar, haz una copia de seguridad de la base de datos. Si borras algo importante, no hay vuelta atrás.

Optimizar PrestaShop MySQL: Claves específicas

PrestaShop es más complejo que WordPress a nivel de base de datos. Tiene muchas tablas relacionadas entre sí. Aquí tienes los puntos críticos.

1. Activa la caché de MySQL en PrestaShop

PrestaShop tiene su propio sistema de caché. Ve a Parámetros Avanzados > Rendimiento. Activa la caché y elige "Sistema de archivos" o "Memcached" si tu servidor lo soporta. Esto evita que PrestaShop haga la misma consulta una y otra vez.

2. Indexa las tablas de combinaciones y atributos

El mayor problema de rendimiento en PrestaShop suele estar en las tablas de combinaciones de productos (ps_product_attribute y ps_product_attribute_combination). Si tienes muchos productos con variantes (tallas, colores), estas tablas pueden tener cientos de miles de filas.

Necesitas asegurarte de que tengan índices en las columnas correctas. Puedes ejecutar esta consulta en phpMyAdmin:

ALTER TABLE ps_product_attribute ADD INDEX id_product (id_product);
ALTER TABLE ps_product_attribute_combination ADD INDEX id_product_attribute (id_product_attribute);

Esto crea índices en las columnas más usadas en las consultas de PrestaShop. La indexación MySQL es clave aquí.

3. Limpia las tablas de sesiones caducadas

PrestaShop guarda las sesiones de los usuarios en la base de datos. Si tienes mucho tráfico, esta tabla puede crecer muy rápido. Usa el módulo de limpieza de PrestaShop o ejecuta una consulta manual para borrar las sesiones con más de 30 días:

DELETE FROM ps_connections WHERE date_add < DATE_SUB(NOW(), INTERVAL 30 DAY);

4. Desactiva los módulos que no uses

Cada módulo activo en PrestaShop añade sus propias consultas. Si tienes 20 módulos activos y solo usas 5, estás desperdiciando recursos. Desactiva todos los que no necesites.

Indexación MySQL: El arte de acelerar las búsquedas

La indexación es la técnica más poderosa para optimizar consultas MySQL. Un índice es como el índice de un libro: en lugar de leer todas las páginas para encontrar una palabra, vas directamente a la página correcta.

¿Cómo saber qué columnas necesitan índices?

No puedes indexar todo, porque los índices también ocupan espacio y ralentizan las inserciones. Debes indexar las columnas que se usan en las cláusulas WHERE, JOIN y ORDER BY.

Para ver qué consultas son lentas y qué índices faltan, puedes activar el "Slow Query Log" como explicamos antes. Luego, analiza esas consultas. Si ves una consulta que filtra por WHERE id_customer = 5, entonces la columna id_customer necesita un índice.

Ejemplo práctico de creación de índice

Si tienes una tabla de pedidos y haces muchas consultas por estado y fecha, puedes crear un índice compuesto:

ALTER TABLE ps_orders ADD INDEX idx_date_state (date_add, current_state);

Esto hará que las consultas que buscan pedidos por fecha y estado sean mucho más rápidas.

[WARNING] No crees índices en todas las columnas. Demasiados índices pueden ralentizar las operaciones de escritura (insertar, actualizar, borrar). Equilibra lectura y escritura.

Herramientas y plugins para monitorear el rendimiento

No tienes que hacerlo todo a mano. Estas herramientas te ayudarán a mantener la base de datos optimizada de forma continua.

1. MySQL Tuner (para servidores)

Es un script que analiza tu servidor MySQL y te da recomendaciones. Si tienes acceso SSH, ejecuta:

mysqltuner

Te dirá si tu configuración de memoria, buffers y caché es la adecuada para tu tamaño de base de datos. Es una de las mejores formas de optimizar prestashop mysql o WordPress a nivel de servidor.

2. Plugins para WordPress

  • Query Monitor: Para ver consultas en tiempo real.
  • WP-Optimize: Para limpiar la base de datos.
  • Redis Object Cache: Para caché de objetos.

3. Módulos para PrestaShop

  • PrestaShop Cleaner: Para limpiar tablas y datos obsoletos.
  • MySQL Performance Module: Te muestra las consultas lentas directamente en el panel de administración.

Mantenimiento preventivo: Rutina para evitar problemas

No basta con optimizar una vez. Debes establecer una rutina de mantenimiento. Te propongo un calendario sencillo:

  • Semanalmente: Revisa si hay actualizaciones de plugins, temas y del CMS.
  • Mensualmente: Optimiza las tablas de la base de datos y limpia los datos obsoletos.
  • Trimestralmente: Analiza el Slow Query Log para ver si hay nuevas consultas lentas.
  • Cada 6 meses: Revisa la configuración de MySQL (buffers, caché) con MySQL Tuner.

[INFO] Si tu web está en Syspanel, recuerda que tienes acceso a herramientas de gestión de bases de datos desde el puerto 2106. Puedes programar tareas de optimización o, si tu plan lo incluye, contratar un mantenimiento gestionado.

Casos comunes y soluciones rápidas (FAQ)

¿Mi web va lenta pero no sé por dónde empezar?

Empieza activando el Slow Query Log. Espera 24 horas y analiza el archivo. Las consultas que aparezcan son tu prioridad. Luego, activa un plugin de caché de objetos. Con eso sueles resolver el 80% de los casos.

¿Es normal que mi base de datos ocupe 2 GB?

No es normal. Si tu base de datos es enorme, es porque tienes datos basura: revisiones de posts, sesiones caducadas, logs de errores, transients. Limpia todo eso y verás cómo se reduce el tamaño.

¿Los plugins de caché de página son suficientes?

No. Los plugins de caché de página (como W3 Total Cache o WP Super Cache) guardan el HTML final de la página. Eso es bueno, pero no soluciona el problema de las consultas lentas para usuarios logueados o para páginas dinámicas. Necesitas la caché de objetos para eso.

¿Puedo optimizar MySQL sin acceso al servidor?

Sí, puedes usar phpMyAdmin para optimizar tablas y crear índices. Pero para activar el Slow Query Log o ajustar la memoria, necesitas acceso al servidor. Si tu hosting no te lo da, es hora de cambiar de proveedor.

¿Qué hago si una consulta tarda 10 segundos y no sé cómo arreglarla?

Primero, intenta entender qué está haciendo la consulta. Si es de un plugin, desactívalo y mira si la web va más rápido. Si es de una tabla con muchos registros, crea un índice. Si no puedes con ello, contrata a un especialista en bases de datos. A veces es mejor pagar una hora de un experto que perder días enteros.

Conclusión: La optimización es un hábito, no un parche

Optimizar MySQL en WordPress o PrestaShop no es una tarea de un día. Es un proceso continuo. A medida que tu web crece, las consultas cambian y los datos se acumulan. La clave está en monitorizar, diagnosticar y actuar con las herramientas que te he explicado.

Recuerda los pasos fundamentales:

  1. Activa el registro de consultas lentas.
  2. Instala un sistema de caché de objetos.
  3. Crea índices en las columnas que se usan en las consultas.
  4. Limpia la base de datos de forma regular.
  5. Mantén todo actualizado.

Con estos hábitos, tu base de datos dejará de ser un cuello de botella y tu web volverá a volar. Si tienes dudas sobre cómo aplicar estos cambios en tu servidor, especialmente si usas Syspanel, consulta la documentación oficial o contacta con el soporte técnico. La optimización de la base de datos es una inversión que se traduce en mejor posicionamiento SEO, mejor experiencia de usuario y, en definitiva, más ventas.

¿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