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

Cómo optimizar una base de datos en PrestaShop desde Plesk

Actualizado el 14 de enero de 2026

¿Tu tienda PrestaShop va más lenta de lo normal? ¿Tardan una eternidad en cargarse las páginas de producto o el panel de administración? Antes de pensar en cambiar de hosting o en comprar un servidor más potente, hay un paso fundamental que muchos pasan por alto: optimizar la base de datos.

PrestaShop almacena absolutamente todo en su base de datos: desde los productos y clientes hasta los pedidos, las sesiones de los visitantes y, lo peor de todo, los registros temporales y las tablas que ya no sirven para nada. Con el tiempo, esta acumulación de basura digital lastra el rendimiento de todo el sistema.

En este artículo te voy a enseñar, paso a paso, cómo optimizar la base de datos de PrestaShop desde Plesk, sin necesidad de ser un experto en bases de datos. Solo necesitas acceso a tu panel de Plesk y un poco de paciencia. Al final, tu tienda te lo agradecerá con una velocidad de carga mucho mayor.


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

PrestaShop es un CMS muy potente, pero su principal punto débil es la gestión de la base de datos. Cada vez que un visitante entra en tu web, PrestaShop ejecuta decenas de consultas SQL para obtener la información que necesita. Si la base de datos está llena de tablas con datos obsoletos, registros de sesiones antiguas, carritos abandonados o logs de errores, esas consultas tardarán mucho más en ejecutarse.

Los principales beneficios de optimizar base de datos son:

  • Aumento de velocidad de carga: Las páginas se renderizan más rápido.
  • Menor consumo de recursos del servidor: Tu hosting lo notará y será más eficiente.
  • Mejora en la experiencia de usuario: Los clientes no se irán por la lentitud.
  • Facilidad en las copias de seguridad: Una base de datos más ligera se copia y restaura en segundos.

Si no realizas esta limpieza periódicamente, tu rendimiento PrestaShop se resentirá, especialmente en tiendas con muchos productos o alto tráfico.


Antes de empezar: Precauciones imprescindibles

Antes de meter mano en la base de datos, hay una regla de oro que debes grabarte a fuego: SIEMPRE HAZ UNA COPIA DE SEGURIDAD.

[WARNING] ¡No te saltes este paso! Un error al ejecutar una consulta SQL podría borrar datos críticos (pedidos, clientes, productos) y dejar tu tienda inservible. La copia de seguridad es tu red de seguridad.

Cómo hacer la copia de seguridad desde Plesk

  1. Accede a tu panel de Plesk.
  2. Ve a la sección Bases de datos (normalmente dentro del apartado de tu dominio).
  3. Localiza la base de datos de tu PrestaShop. Su nombre suele ser algo como tienda_prestashop o db_xxxxx.
  4. Haz clic en el nombre de la base de datos.
  5. Busca el botón "Exportar dump" o "Exportar".
  6. Descarga el archivo .sql a tu ordenador. Guárdalo en un lugar seguro.

Con esto, si algo sale mal, puedes importar ese archivo de nuevo y tu tienda volverá a estar como al principio.


Paso 1: Acceder a la base de datos desde Plesk

Plesk ofrece dos formas principales de gestionar las bases de datos: phpMyAdmin (la más visual y recomendada para no expertos) y la consola de comandos. Para este tutorial, usaremos phpMyAdmin.

Acceso a phpMyAdmin

  1. En el panel de Plesk, ve a Bases de datos.
  2. Haz clic en el nombre de tu base de datos de PrestaShop.
  3. Busca el enlace o botón que dice "phpMyAdmin" o "Administrar" (a veces es un icono de una base de datos). Se abrirá una nueva pestaña del navegador.
  4. Si te pide usuario y contraseña, puedes encontrarlos en el archivo app/config/parameters.php de tu PrestaShop (búscalo a través del administrador de archivos de Plesk). Las líneas clave son 'database_user' y 'database_password'.

Una vez dentro de phpMyAdmin, verás todas las tablas de tu base de datos a la izquierda. Es normal que haya muchas (PrestaShop tiene más de 300 tablas).


Paso 2: Limpiar tablas innecesarias (LIMPIEZA PROFUNDA)

Este es el paso que más impacto tiene en la optimización. Vamos a eliminar datos que PrestaShop acumula pero que ya no necesita.

2.1. Limpiar sesiones de clientes caducadas

Las sesiones registran la actividad de los visitantes. Con el tiempo, se acumulan millones de registros. Vamos a borrar las que tengan más de 30 días.

  1. En phpMyAdmin, haz clic en la pestaña SQL.

  2. Escribe la siguiente consulta y haz clic en Continuar:

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

    [TIP] Si tu PrestaShop usa un prefijo diferente a ps_ (por ejemplo, prestashop_), cámbialo en las consultas. Lo puedes ver en el archivo parameters.php.

2.2. Eliminar carritos abandonados antiguos

Los carritos abandonados ocupan espacio y no sirven para nada si tienen más de 6 meses.

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

2.3. Vaciar la tabla de búsquedas (search_index)

Esta tabla guarda el índice de búsqueda de tu tienda. Es muy pesada. Vaciarla obliga a PrestaShop a regenerarla, pero ganas mucho espacio.

TRUNCATE TABLE ps_search_index;
TRUNCATE TABLE ps_search_word;

[WARNING] Después de vaciar estas tablas, la búsqueda de tu tienda no funcionará hasta que la regeneres. Para ello, ve a tu backoffice de PrestaShop: Parámetros de la tienda > Búsqueda > Índice. Haz clic en "Añadir todo al índice" y luego en "Rebuild index". Si no lo haces, la búsqueda dará error.

2.4. Limpiar logs y registros de errores

PrestaShop guarda un montón de logs de errores y notificaciones. Con el tiempo, esto puede ser gigantesco.

TRUNCATE TABLE ps_log;
TRUNCATE TABLE ps_mail;

2.5. Eliminar referencias a productos eliminados

Si has eliminado productos, sus imágenes y combinaciones pueden quedar huérfanas.

DELETE FROM ps_image WHERE id_product NOT IN (SELECT id_product FROM ps_product);
DELETE FROM ps_image_lang WHERE id_image NOT IN (SELECT id_image FROM ps_image);
DELETE FROM ps_product_attribute WHERE id_product NOT IN (SELECT id_product FROM ps_product);

Paso 3: Optimizar las tablas (REPARAR Y DESFRAGMENTAR)

Una vez limpiada la basura, toca optimizar las tablas que quedan. Esto es como desfragmentar un disco duro: reordena los datos para que las consultas sean más rápidas.

Cómo optimizar todas las tablas a la vez

  1. En phpMyAdmin, ve a la pestaña Estructura (o Structure).
  2. Verás una lista de todas las tablas. Justo debajo de la lista, hay un enlace que dice "Marcar todas".
  3. En el desplegable que aparece al lado (con opciones como Con seleccionados:...), elige "Optimizar tabla".
  4. phpMyAdmin ejecutará el comando OPTIMIZE TABLE en todas las tablas. Esto puede tardar unos segundos o minutos, dependiendo del tamaño.

[TIP] Si el proceso se queda colgado o da error, puedes optimizar tabla por tabla. Es más lento pero más seguro.


Paso 4: Mantenimiento periódico desde Plesk (AUTOMATIZACIÓN)

No querrás hacer esto manualmente cada mes. Plesk te permite programar tareas para que se ejecuten automáticamente.

Programar una limpieza automática

  1. En Plesk, ve a tu dominio y busca "Programador de tareas" o "Cron jobs".

  2. Crea una nueva tarea.

  3. Ponle un nombre como "Limpieza BD PrestaShop".

  4. En el campo de comando, puedes poner algo como:

    mysql -u USUARIO -pCONTRASEÑA NOMBRE_BD -e "DELETE FROM ps_connections WHERE date_add < DATE_SUB(NOW(), INTERVAL 30 DAY);"
    

    Pero esto es muy complejo de escribir y mantener. Es mejor que crees un pequeño script PHP o SQL y lo subas a tu servidor. Luego, en el cronjob, llamas a ese script.

    [INFO] Si no te sientes cómodo con scripts, simplemente programa un recordatorio mensual en tu calendario para hacerlo manualmente desde phpMyAdmin. Es mejor que no hacerlo nunca.


Preguntas Frecuentes (FAQ)

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

Depende del tráfico de tu tienda. Como regla general:

  • Tiendas pequeñas (< 1000 productos, poco tráfico): Cada 3-6 meses.
  • Tiendas medianas: Cada 1-2 meses.
  • Tiendas grandes (miles de productos, mucho tráfico): Cada 2-4 semanas.

¿Puedo dañar mi tienda si ejecuto mal una consulta?

Sí, por eso es crucial hacer la copia de seguridad antes. Si ejecutas un DELETE sin el WHERE adecuado, puedes borrar todo. Sigue las consultas exactas que te he dado.

¿Qué hago si phpMyAdmin se queda congelado al optimizar tablas grandes?

Es normal si la tabla es muy grande (ej. ps_log con millones de registros). Prueba a truncar primero las tablas más pesadas (como ps_log o ps_connections) y luego optimiza. Si sigue sin funcionar, contacta con tu soporte de hosting.

¿La optimización de la base de datos afecta al SEO?

Indirectamente, sí. Google premia la velocidad de carga. Una base de datos optimizada hace que tu web cargue más rápido, lo que mejora tu posicionamiento en buscadores. Es una parte fundamental del rendimiento PrestaShop.

¿Y si mi hosting no es Plesk sino otro panel como cPanel o Syspanel?

El proceso es muy similar. En cPanel usarías phpMyAdmin desde el panel. Si usas Syspanel (el antiguo HestiaCP, que se accede por el puerto 2106), la mecánica es idéntica: buscas la base de datos en la sección correspondiente y accedes a phpMyAdmin. Los comandos SQL son universales.


Conclusión

Optimizar la base de datos de PrestaShop desde Plesk no es complicado, pero requiere seguir los pasos con cuidado. Con esta guía, has aprendido a:

  1. Hacer una copia de seguridad.
  2. Acceder a phpMyAdmin.
  3. Limpiar tablas de sesiones, carritos, logs y búsquedas.
  4. Optimizar tablas para desfragmentarlas.
  5. Automatizar el proceso.

Si dedicas 30 minutos al mes a esta tarea, notarás una mejora drástica en la velocidad de tu tienda. Tus clientes lo notarán y, lo más importante, Google también.

[TIP FINAL] No olvides regenerar el índice de búsqueda después de limpiar las tablas ps_search_index y ps_search_word. Es un paso que se olvida a menudo y que deja la búsqueda interna de la tienda inutilizada.

¡Manos a la obra y a disfrutar de un PrestaShop más rápido!

¿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