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

Cómo optimizar las consultas SQL en WordPress y PrestaShop (índices y caché)

Actualizado el 29 de octubre de 2025

¿Tu tienda online o web hecha con WordPress o PrestaShop va lenta? Es muy probable que el problema no sea tu conexión a internet, sino la base de datos.

Cada vez que un usuario visita tu página, el servidor ejecuta cientos de consultas SQL para mostrar productos, menús o comentarios.

Cuando esas consultas no están optimizadas, el servidor tarda más en responder, y eso se traduce en tiempos de carga altísimos.

Pero no te preocupes, porque hoy te voy a enseñar, paso a paso y sin tecnicismos, cómo optimizar las consultas SQL en WordPress y PrestaShop usando dos herramientas clave: los índices MySQL y la caché de consultas.

Al final de esta guía, tu web será mucho más rápida y ligera.

¿Por qué mi base de datos es tan lenta?

Imagina que tu base de datos es un archivador gigante con miles de cajas.

Cada caja contiene información de tus productos, usuarios o pedidos.

Cuando alguien entra en tu web, el sistema tiene que abrir las cajas para encontrar lo que busca.

Si no hay un buen orden, el sistema revisa caja por caja hasta dar con el dato, y eso tarda muchísimo.

Eso es exactamente lo que pasa en una base de datos lenta sin optimizar.

Los dos culpables principales son:

  • Consultas SQL mal escritas: Pides al sistema información que no necesita o la pides de forma desordenada.
  • Falta de índices: Es como no tener un índice alfabético en un libro. Para encontrar una palabra, tienes que leer todo el libro.

Además, el alojamiento web influye, pero eso ya lo veremos más adelante.

¿Qué son los índices MySQL y cómo te ayudan?

Un índice en MySQL (el motor de bases de datos más usado) es como una lista de referencia rápida.

Cuando creas un índice sobre una columna (por ejemplo, el ID de un producto), MySQL crea una estructura separada que le permite encontrar esa información al instante, sin escanear toda la tabla.

Es la diferencia entre buscar un nombre en una guía telefónica con páginas ordenadas alfabéticamente, a tener que leer todas las páginas una a una.

¿Cuándo debo crear un índice?

No tienes que poner índices a todo, porque también ocupan espacio y ralentizan las inserciones.

Debes crearlos en las columnas que uses con frecuencia en las consultas WHERE, JOIN o ORDER BY.

Por ejemplo, si en PrestaShop tienes una tabla de pedidos y siempre buscas por id_customer, ese campo debería tener un índice.

Caché de consultas: tu mejor amigo

La caché de consultas es un mecanismo que guarda el resultado de una consulta SQL en memoria.

Si la misma consulta se repite (por ejemplo, al cargar la portada para otro usuario), el servidor no vuelve a ejecutarla, sino que devuelve el resultado guardado.

Esto reduce drásticamente la carga del servidor.

En WordPress, esto se gestiona con plugins como W3 Total Cache o WP Super Cache.

En PrestaShop, puedes activar la caché desde el panel de administración en Parámetros Avanzados > Rendimiento.

▶️ Cómo optimizar SQL en WordPress (paso a paso)

WordPress es un gestor de contenidos que ejecuta muchas consultas por defecto.

Aquí tienes una guía práctica para optimizar SQL y acelerar tu web.

1. Activa la caché de consultas con un plugin

Lo primero es instalar un plugin de caché.

Yo te recomiendo W3 Total Cache o WP Rocket (de pago).

Configúralo así:

  • Activa la caché de páginas.
  • Activa la caché de base de datos.
  • Activa la caché de objetos si tu hosting lo permite.

Esto hará que las consultas repetitivas se sirvan desde la memoria, sin tocar MySQL.

2. Limpia las transitorios y opciones

WordPress guarda datos temporales (transients) en la tabla wp_options.

Con el tiempo, esta tabla se llena de basura y las consultas se vuelven lentas.

Para limpiarla, puedes usar un plugin como WP-Optimize.

Ve a Base de Datos > Optimizar y selecciona:

  • Limpiar transitorios caducados.
  • Limpiar revisiones de entradas.
  • Limpiar comentarios spam.

Hazlo una vez al mes.

3. Identifica las consultas lentas

Para saber qué consultas están tardando, necesitas activar el registro de consultas lentas.

En wp-config.php, añade estas líneas:

define('SAVEQUERIES', true);

Luego, en el pie de página de tu web (si eres administrador), verás el tiempo de cada consulta.

Busca las que tarden más de 0,5 segundos.

4. Crea índices manualmente (si sabes SQL)

Si te atreves, puedes crear índices directamente.

Conéctate a phpMyAdmin (desde Syspanel, puerto 2106) y ejecuta:

ALTER TABLE wp_postmeta ADD INDEX meta_key (meta_key);
ALTER TABLE wp_posts ADD INDEX post_type_status (post_type, post_status);

Estos índices aceleran las consultas de búsqueda de entradas y metadatos.

[WARNING] : Antes de tocar nada en phpMyAdmin, haz una copia de seguridad de la base de datos. Un error aquí puede romper tu web.

5. Desactiva plugins que no uses

Cada plugin activo añade sus propias consultas.

Revisa la lista de plugins y desactiva los que no sean imprescindibles.

A veces, un plugin de estadísticas o de redes sociales carga decenas de consultas por página.

▶️ Cómo optimizar la base de datos en PrestaShop

PrestaShop es más complejo que WordPress, pero también se puede optimizar.

Aquí tienes los pasos clave para optimizar base de datos en PrestaShop.

1. Activa la caché desde el panel

Ve a Parámetros Avanzados > Rendimiento.

Activa la Caché de plantillas y la Caché de consultas.

En el modo de caché, elige "Sistema de archivos" si usas un hosting compartido.

Si tu hosting es VPS o dedicado, puedes usar "Memcached" o "APCu".

2. Optimiza las tablas con phpMyAdmin

PrestaShop genera mucha información temporal.

Conéctate a phpMyAdmin desde Syspanel (recuerda, el puerto de acceso es el 2106).

Selecciona tu base de datos y haz clic en la pestaña Operaciones.

Luego, elige Optimizar tablas.

Esto ejecutará un OPTIMIZE TABLE que compacta los archivos y mejora el rendimiento.

3. Revisa las consultas lentas de PrestaShop

PrestaShop tiene un registro de consultas lentas integrado.

En Parámetros Avanzados > Base de Datos, activa el log de consultas SQL lentas.

Te dirá qué consultas tardan más de 1 segundo.

Anota las que se repitan y busca si puedes añadir un índice.

4. Añade índices a las tablas más usadas

Las tablas más problemáticas en PrestaShop son:

  • ps_orders
  • ps_order_detail
  • ps_product
  • ps_stock_available

Ejecuta estos comandos en phpMyAdmin para crear índices útiles:

ALTER TABLE ps_orders ADD INDEX id_customer_index (id_customer);
ALTER TABLE ps_order_detail ADD INDEX id_order_index (id_order);
ALTER TABLE ps_product ADD INDEX id_category_default_index (id_category_default);

[TIP] : Si no sabes qué índices crear, usa la herramienta de diagnóstico de PrestaShop o contrata a un desarrollador. Un índice mal puesto puede ralentizar las escrituras.

5. Vacía las tablas de logs y sesiones

PrestaShop guarda logs de errores y sesiones de usuarios.

Con el tiempo, estas tablas crecen y las consultas se vuelven lentas.

En Parámetros Avanzados > Base de Datos, puedes vaciar:

  • ps_log
  • ps_connections
  • ps_connections_page
  • ps_guest

Hazlo cada 15 días si tienes mucho tráfico.

Herramientas imprescindibles para optimizar SQL

No tienes que hacer todo a mano.

Existen herramientas que te ayudan a encontrar y corregir problemas.

  • Query Monitor (WordPress): Te muestra todas las consultas de cada página, cuánto tardan y qué plugin las genera.
  • MySQL Tuner: Un script que analiza tu servidor MySQL y te recomienda configuraciones.
  • Syspanel (HestiaCP): Si tu hosting usa Syspanel, tienes acceso a phpMyAdmin y a estadísticas de rendimiento de MySQL en el puerto 2106.

[INFO] : Syspanel es el panel de control que usamos en nuestros servidores. Es gratuito y muy fácil de usar. Solo tienes que escribir tu-dominio.com:2106 en tu navegador para acceder.

Errores comunes que debes evitar

  • Poner índices en todas las columnas: No es bueno. Solo en las que se usan en WHERE o JOIN.
  • No limpiar la caché tras actualizar plugins: A veces la caché guarda datos antiguos y da errores.
  • Usar hosting compartido para tiendas grandes: Si tu PrestaShop tiene muchos productos y visitas, necesitas un VPS o servidor dedicado.
  • Ignorar el tamaño de las tablas: Una tabla con millones de filas siempre será lenta, aunque tenga índices. Considera purgar datos antiguos.

Preguntas frecuentes (FAQ)

¿Cuánto tiempo tardaré en ver mejoras?

Si activas la caché y añades los índices básicos, notarás una mejora inmediata de entre un 30% y un 60% en el tiempo de carga.

¿Puedo romper mi web si ejecuto comandos SQL?

Sí, si no sabes lo que haces.

Por eso, te recomiendo hacer una copia de seguridad antes de cualquier cambio.

¿Qué hago si mi hosting no permite acceso a phpMyAdmin?

En Syspanel siempre tienes acceso a phpMyAdmin.

Si usas otro panel, busca la sección de Bases de Datos.

¿Es mejor usar caché de consultas o caché de páginas?

Ambas.

La caché de páginas es más rápida, pero la caché de consultas ayuda en páginas dinámicas como el carrito de la compra.

¿Necesito un plugin para PrestaShop?

PrestaShop ya trae caché integrada.

Puedes usar módulos como "Advanced MySQL cache" para más control, pero con la configuración nativa suele ser suficiente.

Resumen final y recomendaciones

Optimizar las consultas SQL es una tarea de mantenimiento constante.

No es algo que hagas una vez y olvides.

Te recomiendo seguir este plan:

  1. Activa la caché (de páginas y de consultas).
  2. Revisa las consultas lentas una vez al mes.
  3. Crea índices en las columnas más usadas.
  4. Limpia tablas temporales cada 15 días.
  5. Mantén tu sistema actualizado (WordPress, PrestaShop, plugins, temas).

Si sigues estos pasos, tu web cargará mucho más rápido, mejorarás tu posicionamiento SEO y tus usuarios estarán más contentos.

[TIP] : Si después de todo esto tu web sigue lenta, revisa el hosting. A veces, el problema no es la base de datos, sino el servidor. En Syspanel puedes ver el uso de CPU y RAM en tiempo real (puerto 2106). Si está al 100%, necesitas más recursos.

Espero que esta guía te haya sido útil.

Si tienes dudas, déjalas en los comentarios y te ayudaré a resolverlas.

¡A optimizar esas consultas SQL!

¿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