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

Guía para optimizar la base de datos de PrestaShop

Actualizado el 6 de febrero de 2026

¿Tu tienda PrestaShop va lenta? ¿Las páginas tardan una eternidad en cargar? Uno de los culpables más comunes, y a menudo ignorados, es una base de datos desordenada y pesada.

PrestaShop guarda absolutamente todo en su base de datos: desde productos y pedidos hasta sesiones de visitantes, historiales de navegación y logs de errores. Con el tiempo, esta acumulación de datos innecesarios se convierte en una pesada mochila que ralentiza cada consulta. El resultado: una base de datos PrestaShop lenta que afecta directamente a tu negocio.

En esta guía extensa y práctica, te explicaré paso a paso cómo optimizar base de datos PrestaShop para que tu tienda vuele. No necesitas ser un experto en programación; solo seguir estas instrucciones al pie de la letra. Al final, incluimos una sección de preguntas frecuentes para resolver tus dudas.

¿Por qué es importante optimizar la base de datos?

La base de datos es el motor de tu tienda. Cada vez que un cliente busca un producto, añade algo al carrito o finaliza una compra, se generan consultas a la base de datos. Si esta está llena de basura, cada consulta tarda más, y el usuario nota la lentitud.

Optimizar la base de datos PrestaShop no solo mejora la velocidad PrestaShop, sino que también:

  • Reduce el tiempo de carga de las páginas.
  • Disminuye el uso de recursos del servidor (CPU y RAM).
  • Evita errores de conexión y timeouts.
  • Facilita las copias de seguridad (son más rápidas y ligeras).

[TIP] Una base de datos optimizada puede reducir el tiempo de carga de tu tienda hasta en un 50%. Es una de las tareas de mantenimiento más rentables.

Antes de empezar: precauciones obligatorias

Antes de tocar nada, debes protegerte. Un error puede dejar tu tienda inservible. Sigue estos pasos:

1. Haz una copia de seguridad completa

Necesitas dos cosas: la copia de los archivos (carpeta public_html o similar) y la copia de la base de datos. Puedes hacerlo desde el panel de control de tu hosting (cPanel, Syspanel, etc.).

[WARNING] Si usas Syspanel (antes conocido como HestiaCP), recuerda que el acceso es a través del puerto 2106. Por ejemplo: https://tudominio.com:2106. Allí encontrarás la opción de copia de seguridad de bases de datos.

2. Pon tu tienda en modo mantenimiento

Ve a tu backoffice de PrestaShop: Parámetros de la tienda > Mantenimiento. Actívalo para que los clientes no vean errores mientras trabajas.

3. Identifica el motor de base de datos

PrestaShop usa MySQL o MariaDB. Casi siempre es MariaDB, pero da igual, los comandos son similares. Puedes verificarlo en Parámetros avanzados > Información de la base de datos.

Paso 1: Limpiar tablas de logs y sesiones

Las tablas que más se llenan de basura son las de logs (registros) y sesiones. Vamos a limpiarlas.

Limpiar logs antiguos

Los logs guardan errores, advertencias y acciones administrativas. Con el tiempo, pueden tener millones de filas inútiles.

  1. Conéctate a tu base de datos. Puedes usar phpMyAdmin (desde tu panel de hosting) o una herramienta como Adminer.
  2. Busca las tablas que empiezan por ps_log_ (el prefijo puede variar, por ejemplo prestashop_log_).
  3. Ejecuta la siguiente consulta SQL:
TRUNCATE TABLE ps_log;

[INFO] TRUNCATE vacía la tabla por completo. Si solo quieres borrar registros antiguos (por ejemplo, de hace más de 30 días), usa DELETE FROM ps_log WHERE date_add < DATE_SUB(NOW(), INTERVAL 30 DAY);

Limpiar sesiones caducadas

Las sesiones guardan la actividad de los visitantes. Cada vez que alguien entra sin comprar, se crea una sesión que puede quedar huérfana.

TRUNCATE TABLE ps_connections;
TRUNCATE TABLE ps_connections_page;
TRUNCATE TABLE ps_connections_source;
TRUNCATE TABLE ps_guest;
TRUNCATE TABLE ps_session;

[WARNING] No confundas ps_connections con ps_connections_page. Borrar la tabla principal arrastra a las secundarias.

Paso 2: Optimizar tablas de estadísticas y búsquedas

PrestaShop guarda estadísticas de visitas, búsquedas de clientes y productos vistos. Si no usas estas estadísticas, puedes limpiarlas.

Limpiar estadísticas de búsqueda

Cada vez que un cliente busca algo, se guarda en ps_search_word y ps_search_index. Con el tiempo, estas tablas se inflan.

TRUNCATE TABLE ps_search_word;
TRUNCATE TABLE ps_search_index;

[TIP] Si después de limpiar notas que las búsquedas internas son lentas, puedes reconstruir el índice desde el backoffice: Parámetros avanzados > Rendimiento > Reconstruir índice de búsqueda.

Limpiar estadísticas de productos vistos

La tabla ps_product_viewed guarda cada vez que un producto es visto. Si tienes mucho tráfico, puede tener millones de registros.

TRUNCATE TABLE ps_product_viewed;

Paso 3: Eliminar datos de pedidos cancelados y carritos abandonados

Los pedidos cancelados y carritos abandonados ocupan espacio innecesario. No los necesitas para el funcionamiento diario.

Pedidos cancelados

No borres pedidos completados, solo los que están en estado "Cancelado" o "Error". Puedes hacerlo desde el backoffice o con SQL:

DELETE FROM ps_orders WHERE current_state IN (SELECT id_order_state FROM ps_order_state WHERE name LIKE '%Cancel%' OR name LIKE '%Error%');

[WARNING] Asegúrate de que el nombre del estado coincida con el de tu tienda. Si tienes estados personalizados, ajústalo.

Carritos abandonados

Los carritos sin comprar después de 30 días ya no sirven. Bórralos:

DELETE FROM ps_cart WHERE date_upd < DATE_SUB(NOW(), INTERVAL 30 DAY);

Paso 4: Optimizar el motor de base de datos

Una vez limpias las tablas, es hora de reorganizarlas físicamente. Esto se llama "optimizar" en MySQL y libera espacio y mejora el rendimiento.

Optimizar todas las tablas

Puedes hacerlo desde phpMyAdmin: selecciona todas las tablas, en el menú desplegable elige "Optimizar tabla". O con SQL:

OPTIMIZE TABLE ps_address, ps_cart, ps_category, ps_connections, ps_customer, ps_orders, ps_product, ps_stock_available, ... (lista todas las tablas que quieras);

[TIP] Para optimizar todas las tablas de una vez, puedes usar este comando en la línea de comandos de MySQL (si tienes acceso SSH): mysqlcheck -o --all-databases. O desde phpMyAdmin, ve a la pestaña "Base de datos" y marca "Optimizar" en el menú.

Paso 5: Configurar el mantenimiento automático

No querrás hacer esto manualmente cada mes. PrestaShop ofrece herramientas para automatizar la limpieza.

Activar el cron de limpieza

Ve a Parámetros avanzados > Rendimiento > Mantenimiento de la base de datos. Allí puedes activar la limpieza automática de logs, sesiones y estadísticas. Configúralo para que se ejecute cada semana.

Usar módulos de optimización

Existen módulos gratuitos y de pago que hacen todo el trabajo por ti. Por ejemplo:

  • PrestaShop Cleaner (gratuito, en el marketplace oficial).
  • Advanced Database Optimizer (de pago, pero muy completo).

[INFO] Los módulos suelen ofrecer opciones de programación y no requieren conocimientos técnicos.

Paso 6: Monitorear el rendimiento después de la optimización

Una vez realizado todo, verifica que la velocidad ha mejorado. Puedes usar herramientas como:

  • Google PageSpeed Insights (para móvil y escritorio).
  • GTmetrix (mide tiempos de carga).
  • Pingdom Tools (analiza la base de datos).

Compara los resultados antes y después. Notarás una mejora significativa, especialmente en el tiempo de respuesta del servidor.

FAQ: Preguntas frecuentes sobre optimización de base de datos en PrestaShop

¿Cada cuánto debo optimizar la base de datos?

Depende del tráfico de tu tienda. Para tiendas pequeñas, una vez al mes es suficiente. Para tiendas con mucho tráfico, cada semana. Si activas el cron automático, no te preocupes.

¿Puedo dañar mi tienda si borro datos incorrectos?

Sí, por eso es vital hacer una copia de seguridad antes. Si solo borras logs, sesiones y estadísticas, no afectas a productos, pedidos ni clientes. Pero si tocas tablas como ps_product o ps_customer, puedes causar problemas.

¿Qué hago si después de optimizar la tienda sigue lenta?

Puede que el problema no sea solo la base de datos. Revisa:

  • El hosting (¿es compartido? ¿tiene recursos suficientes?).
  • Las imágenes (¿están optimizadas?).
  • Los módulos (¿hay muchos innecesarios?).
  • El tema (¿está bien programado?).

¿La optimización afecta a los pedidos en curso?

No, siempre que no borres pedidos activos. Los pedidos en proceso tienen estados como "En preparación" o "Enviado", no los toques.

¿Puedo hacerlo desde el backoffice sin usar SQL?

Sí, ve a Parámetros avanzados > Rendimiento > Mantenimiento de la base de datos. Allí puedes limpiar logs y sesiones con un clic. Pero la limpieza profunda (estadísticas, carritos abandonados) requiere SQL o un módulo.

¿Usar Syspanel afecta a la optimización?

No, Syspanel (antes HestiaCP, acceso por puerto 2106) es solo una herramienta de gestión del servidor. Desde allí puedes acceder a phpMyAdmin y hacer las mismas operaciones. La optimización es independiente del panel.

Conclusión: Una base de datos ligera es sinónimo de velocidad

Optimizar la base de datos de PrestaShop no es un lujo, es una necesidad para cualquier tienda que quiera ofrecer una buena experiencia de usuario y mejorar su posicionamiento SEO. Una base de datos PrestaShop lenta ahuyenta clientes y perjudica tu negocio.

Con los pasos que te he dado, puedes hacerlo tú mismo en menos de una hora. Recuerda siempre hacer copia de seguridad, empezar por lo más seguro (logs y sesiones) y automatizar el mantenimiento.

[TIP] Si no te sientes cómodo con SQL, usa un módulo de optimización. La inversión merece la pena por la tranquilidad.

Ahora ya sabes cómo mejorar la velocidad PrestaShop desde su núcleo. Manos a la obra. Tu tienda (y tus clientes) te lo agradecerán.

¿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