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

Cómo optimizar una base de datos MySQL en PrestaShop con cPanel

Actualizado el 3 de noviembre de 2025

¿Tu tienda PrestaShop va más lenta de lo normal? ¿Notas que las páginas tardan en cargar o que el panel de administración se vuelve pesado? Muchas veces, el cuello de botella no está en el hosting, ni en el tema, ni en los módulos, sino en la base de datos. PrestaShop utiliza MySQL para gestionar absolutamente todo: productos, pedidos, clientes, sesiones, estadísticas… Con el tiempo, esa base de datos acumula basura, tablas corruptas y registros innecesarios que frenan el rendimiento.

En esta guía te voy a enseñar, paso a paso y en un lenguaje muy sencillo, cómo optimizar una base de datos MySQL en PrestaShop usando cPanel. No necesitas ser un experto en sistemas, solo seguir las instrucciones con cuidado. Al final, tu tienda cargará más rápido y la experiencia de usuario mejorará notablemente.


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

PrestaShop es un CMS muy potente, pero también muy exigente con la base de datos. Cada vez que un cliente visita tu tienda, se ejecutan decenas de consultas SQL para mostrar productos, precios, imágenes y carritos. Si la base de datos está hinchada o desordenada, esas consultas tardan más, y el resultado es una tienda lenta.

Además, una base de datos optimizada:

  • Reduce el tiempo de carga de las páginas.
  • Mejora la experiencia de usuario (y el SEO, porque Google penaliza la lentitud).
  • Disminuye la carga del servidor, lo que permite que tu tienda soporte más visitas simultáneas.
  • Evita errores como pantallas blancas o tiempos de espera agotados.

Los principales problemas que encuentras en una base de datos de PrestaShop son:

  • Tablas con muchos registros huérfanos (sesiones antiguas, carritos abandonados, búsquedas viejas).
  • Índices desordenados o faltantes.
  • Tablas que nunca se optimizan (fragmentación).
  • Registros de estadísticas que ya no necesitas.

Requisitos antes de empezar

Antes de lanzarte a optimizar, asegúrate de tener lo siguiente:

  • Acceso a cPanel de tu hosting (o a Syspanel si usas ese panel, recuerda que el puerto es el 2106).
  • Credenciales de la base de datos de PrestaShop (usuario, contraseña y nombre de la BD). Las encuentras en el archivo /config/settings.inc.php de tu instalación.
  • Una copia de seguridad reciente de la base de datos. Esto es crítico. Si algo sale mal, podrás restaurar todo.

[WARNING] No hagas ningún cambio sin tener un backup. Una optimización mal hecha puede dejar tu tienda inservible. Siempre, siempre, haz una copia de seguridad antes.


Paso 1: Acceder a phpMyAdmin desde cPanel

phpMyAdmin es la herramienta que te permite gestionar tu base de datos MySQL desde un navegador. Es muy visual y fácil de usar.

  1. Inicia sesión en cPanel (o Syspanel en el puerto 2106).
  2. Busca la sección Bases de Datos y haz clic en phpMyAdmin.
  3. Se abrirá una nueva pestaña. A la izquierda verás una lista de bases de datos. Selecciona la que corresponde a tu PrestaShop (normalmente tiene un prefijo como tuprefijo_prestashop).

[TIP] Si no sabes cuál es tu base de datos, revisa el archivo settings.inc.php que mencionamos antes. Busca la línea define('_DB_NAME_', 'nombre_de_tu_bd');.


Paso 2: Revisar el estado de las tablas

Antes de optimizar, conviene saber en qué estado están las tablas. phpMyAdmin te da información muy útil.

  1. Una vez dentro de tu base de datos, verás una lista de todas las tablas (cientos, no te asustes).
  2. En la parte inferior, hay un enlace que dice «Revisar todo» o «Check All». Haz clic.
  3. En el menú desplegable de acciones (junto a «Con seleccionadas»), elige «Comprobar tabla» (o «Check table»).
  4. phpMyAdmin analizará cada tabla y te mostrará un resultado. Busca cualquier mensaje de error o advertencia (por ejemplo, «Table is marked as crashed»). Si ves algo así, anótalo.

[INFO] Las tablas «crashed» (dañadas) son una causa común de errores en PrestaShop. Más adelante las repararemos.


Paso 3: Reparar tablas dañadas

Si en el paso anterior encontraste tablas marcadas como dañadas, es hora de repararlas.

  1. Vuelve a seleccionar todas las tablas (o solo las que dieron error).
  2. En el menú desplegable, elige «Reparar tabla» (o «Repair table»).
  3. phpMyAdmin ejecutará la reparación. Verás un mensaje como «OK» o «Table is already up to date».

Reparar tablas da limpieza a la estructura y evita errores de lectura/escritura.


Paso 4: Optimizar tablas (desfragmentación)

Con el tiempo, las tablas se fragmentan, igual que un disco duro. La optimización compacta los datos y libera espacio.

  1. Selecciona todas las tablas de la base de datos (puedes usar «Seleccionar todo»).
  2. En el menú desplegable, elige «Optimizar tabla» (o «Optimize table»).
  3. El proceso puede tardar unos segundos o minutos, dependiendo del tamaño de tu base de datos. No cierres la ventana.

[TIP] Puedes hacer esto una vez al mes como mantenimiento preventivo. No daña nada y mantiene la base de datos ágil.


Paso 5: Limpiar datos innecesarios en PrestaShop

Ahora viene la parte más importante: eliminar la basura que PrestaShop acumula. No basta con optimizar las tablas, también hay que borrar registros que ya no sirven.

5.1. Eliminar sesiones de clientes antiguas

Las sesiones de clientes que ya no están activos ocupan espacio y ralentizan las consultas.

  1. En phpMyAdmin, busca la tabla ps_connections (o tuprefijo_connections). Puede llamarse ps_guest o ps_session.
  2. Haz clic en la pestaña SQL (arriba).
  3. Ejecuta esta consulta (ajusta el prefijo si es necesario, por ejemplo ps_):
    DELETE FROM ps_guest WHERE last_visit < DATE_SUB(NOW(), INTERVAL 30 DAY);
    
    Esto borra visitas de más de 30 días.

También puedes limpiar sesiones de carritos abandonados muy antiguos:

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

5.2. Vaciar la tabla de búsquedas

PrestaShop guarda un histórico de todas las búsquedas que hacen los usuarios. Si tienes mucha actividad, esta tabla crece sin control.

  1. Busca la tabla ps_search_word o ps_search_index.
  2. Ejecuta:
    TRUNCATE TABLE ps_search_word;
    TRUNCATE TABLE ps_search_index;
    
    Esto borra todo el índice de búsqueda. No te preocupes, PrestaShop lo regenerará automáticamente cuando alguien busque un producto.

[WARNING] Después de truncar estas tablas, la primera búsqueda puede ser un poco más lenta, pero luego se normaliza.

5.3. Limpiar estadísticas antiguas

Si no usas las estadísticas internas de PrestaShop (o si usas Google Analytics), puedes borrar los registros viejos.

  • ps_connections: conexiones de visitantes.
  • ps_connections_page: páginas visitadas.
  • ps_connections_source: origen del tráfico.

Ejecuta:

DELETE FROM ps_connections WHERE date_add < DATE_SUB(NOW(), INTERVAL 60 DAY);
DELETE FROM ps_connections_page WHERE date_add < DATE_SUB(NOW(), INTERVAL 60 DAY);
DELETE FROM ps_connections_source WHERE date_add < DATE_SUB(NOW(), INTERVAL 60 DAY);

5.4. Eliminar productos, categorías y pedidos en papelera

Si tienes productos o categorías en la papelera, ocupan espacio. Desde el panel de administración de PrestaShop, vacía la papelera de productos y categorías. También puedes borrar pedidos cancelados o en estado «carrito» que sean muy antiguos.


Paso 6: Optimizar el motor de almacenamiento (MyISAM vs InnoDB)

PrestaShop usa por defecto el motor InnoDB (en versiones modernas), que es más robusto y soporta transacciones. Sin embargo, algunas tablas pueden estar en MyISAM, que es más antiguo y se fragmenta más.

Para verificar:

  1. En phpMyAdmin, en la lista de tablas, fíjate en la columna Tipo o Engine.
  2. Si ves alguna tabla en MyISAM, puedes cambiarla a InnoDB (siempre que no sea crítica para el rendimiento). Ejecuta:
    ALTER TABLE nombre_de_la_tabla ENGINE=InnoDB;
    
    Hazlo solo si sabes lo que haces. En general, las tablas de PrestaShop ya están optimizadas para InnoDB.

[INFO] No conviertas tablas como ps_cache o ps_session a InnoDB si no es necesario. Mejor déjalas como están.


Paso 7: Programar optimizaciones periódicas

No basta con hacerlo una vez. Para mantener el rendimiento, programa tareas automáticas.

Opción 1: Usar el planificador de tareas de cPanel

  1. En cPanel, busca Cron Jobs (o Tareas programadas).
  2. Crea un nuevo trabajo que ejecute un script de PHP o una consulta SQL directamente.
  3. Por ejemplo, puedes ejecutar un comando como:
    mysqlcheck -u usuario -pcontraseña --optimize --all-databases
    
    Esto optimiza todas las bases de datos. Puedes programarlo una vez al mes.

Opción 2: Usar módulos de PrestaShop

Existen módulos como «MySQL Optimizer» o «Database Cleaner» que automatizan la limpieza. Busca en el marketplace de PrestaShop.

Opción 3: Script casero

Si te animas, puedes crear un pequeño script PHP que ejecute las consultas del paso 5 y lo llamas desde un cron.


Paso 8: Verificar el rendimiento después de optimizar

Una vez terminado todo, es hora de comprobar que todo funciona bien.

  1. Vuelve a phpMyAdmin y selecciona todas las tablas.
  2. Elige «Comprobar tabla» de nuevo. Deberías ver solo mensajes «OK».
  3. Mira el tamaño de la base de datos. En la parte inferior de phpMyAdmin verás el tamaño total. Antes y después de optimizar, notarás una reducción (a veces de varios megas).
  4. Entra a tu tienda y navega por algunas páginas. Notarás que cargan más rápido.
  5. Ve al panel de administración y revisa que todo esté en orden (pedidos, productos, etc.).

[TIP] Usa herramientas como GTmetrix o Google PageSpeed Insights para medir la mejora en velocidad. Verás cómo baja el tiempo de respuesta del servidor.


Preguntas frecuentes (FAQ)

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

Depende del tráfico de tu tienda. Si tienes muchas visitas, una vez al mes. Si es una tienda pequeña, cada 2 o 3 meses es suficiente.

¿Puedo romper algo si optimizo?

Si solo usas las funciones de phpMyAdmin (check, repair, optimize) y las consultas de limpieza básicas, es muy seguro. Pero siempre ten un backup.

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

Restaura la copia de seguridad que hiciste al principio. Luego, revisa qué consulta o acción causó el problema. Normalmente, borrar datos de más (por ejemplo, tablas de configuración) puede dar errores.

¿Sirve de algo si mi hosting es muy básico?

Sí, mucho. Una base de datos optimizada reduce la carga del servidor, por lo que incluso en planes compartidos notarás mejoría.

¿Qué pasa si uso Syspanel en lugar de cPanel?

Syspanel (HestiaCP) también tiene phpMyAdmin. Accede por el puerto 2106, busca la sección de bases de datos y sigue los mismos pasos. Las herramientas son idénticas.


Conclusión

Optimizar la base de datos MySQL de PrestaShop es una tarea de mantenimiento esencial que no deberías ignorar. Con solo unos minutos al mes, usando cPanel y phpMyAdmin, puedes alargar la vida de tu tienda, mejorar la velocidad de carga y ofrecer una mejor experiencia a tus clientes. Recuerda: siempre haz backup, empieza por lo básico (check, repair, optimize) y luego limpia datos innecesarios.

Si sigues esta guía paso a paso, tu PrestaShop volverá a volar. ¿Te animas a probarlo?

¿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