Cómo optimizar una base de datos MySQL en PrestaShop (cPanel/ Plesk)
¿Por qué tu PrestaShop va lento? La base de datos suele ser la culpable
Cuando tu tienda online empieza a cargar lento, no siempre es culpa de las imágenes o del hosting. En la mayoría de los casos, el verdadero problema está en la base de datos MySQL. Con el tiempo, PrestaShop acumula registros basura, tablas fragmentadas, sesiones caducadas, carritos abandonados y logs de todo tipo que ralentizan cada consulta.
Piensa en tu base de datos como en un armario. Si cada semana metes cosas sin ordenar, al final te cuesta muchísimo encontrar lo que buscas. Lo mismo le ocurre a MySQL cuando le pides datos. Por eso, optimizar MySQL en PrestaShop no es un lujo, es una necesidad si quieres que tu tienda responda rápido y ofrezca una buena experiencia de usuario.
Además, Google tiene en cuenta la velocidad de carga como factor de posicionamiento. Una tienda lenta no solo pierde ventas, sino que también pierde posiciones en los resultados de búsqueda. Así que la optimización de tu base de datos impacta directamente en tu SEO.
En esta guía te voy a explicar, paso a paso y sin tecnicismos innecesarios, cómo acelerar PrestaShop con una base de datos optimizada, tanto si usas cPanel como Plesk o Syspanel. Vamos a ello.
Señales de que tu base de datos necesita una limpieza urgente
Antes de ponernos manos a la obra, es importante que sepas identificar cuándo tu base de datos está pidiendo a gritos una optimización. Estas son las señales más comunes:
- La página de administración de PrestaShop tarda muchísimo en cargar.
- El front office (tu tienda visible) carga lento incluso con pocos visitantes.
- Las búsquedas de productos dentro de tu tienda tardan varios segundos.
- Recibes errores como "MySQL server has gone away" o "Too many connections".
- El uso de CPU del servidor está constantemente al máximo.
Si te identificas con varios de estos síntomas, sigue leyendo. Te voy a enseñar a solucionarlo.
Preparativos antes de tocar nada (sí o sí)
Antes de lanzarte a limpiar tablas de PrestaShop, hay una regla de oro que nunca debes saltarte: hacer una copia de seguridad completa de tu base de datos.
Si algo sale mal (que no debería si sigues estos pasos), podrás restaurar todo sin perder ni un solo pedido ni cliente.
Cómo hacer una copia de seguridad en cPanel
- Entra en tu panel de control cPanel.
- Busca la sección "Archivos" y haz clic en "Copias de seguridad".
- En el apartado "Copias de seguridad parciales", localiza tu base de datos MySQL.
- Haz clic en el nombre de la base de datos y se descargará un archivo
.sqlo.gz.
Cómo hacer una copia de seguridad en Plesk
- Accede a Plesk.
- Ve a "Sitios web y dominios" y selecciona tu dominio.
- Entra en "Bases de datos".
- Haz clic en el icono de copia de seguridad de tu base de datos y descarga el archivo.
Cómo hacer una copia de seguridad en Syspanel
Si tu hosting usa Syspanel (antes llamado HestiaCP), ten en cuenta que el panel se accede por el puerto 2106. Es decir, la URL sería algo así como https://tu-dominio.com:2106. Dentro del panel, busca la sección de bases de datos y exporta la que quieras respaldar. Es tan sencillo como pulsar el botón de exportar y guardar el archivo en tu ordenador.
[WARNING] No empieces a optimizar sin copia de seguridad. Es como operar sin anestesia. Si algo falla, lo agradecerás.
Optimizar MySQL en PrestaShop desde cPanel paso a paso
Si tu hosting usa cPanel, tienes dos formas de optimizar tu base de datos: una automática y otra manual. Te recomiendo hacer ambas.
1. Optimización automática desde phpMyAdmin
phpMyAdmin es la herramienta que te permite gestionar tu base de datos desde el navegador. Vamos a usarla para optimizar las tablas.
- Entra en cPanel.
- Busca la sección "Bases de datos" y haz clic en "phpMyAdmin".
- En el panel izquierdo, selecciona la base de datos de tu PrestaShop (normalmente suele tener un prefijo como
presta_ops_). - Verás una lista de tablas. Haz clic en "Marcar todas" (o "Check All").
- En el desplegable inferior, selecciona "Optimizar tabla".
- Confirma y espera a que termine.
Este proceso repara tablas dañadas y reorganiza los datos. Es como pasar la aspiradora por casa. No borra nada importante, solo ordena.
2. Reparar tablas corruptas
A veces las tablas se corrompen por cortes de luz, cierres bruscos del servidor o errores de escritura. Para repararlas:
- En phpMyAdmin, selecciona la base de datos.
- Marca todas las tablas.
- En el desplegable, elige "Reparar tabla".
[INFO] Si alguna tabla no se puede reparar, no te asustes. PrestaShop tiene un sistema de reconstrucción de tablas. Pero eso ya es un caso más avanzado.
Optimizar MySQL en PrestaShop desde Plesk
Si tu hosting usa Plesk, el proceso es muy parecido, pero la interfaz cambia un poco.
Acceder a phpMyAdmin desde Plesk
- Entra en Plesk.
- Ve a "Sitios web y dominios".
- Selecciona tu dominio.
- Busca "Bases de datos" y haz clic en tu base de datos.
- En la parte superior, verás un botón que dice "phpMyAdmin". Haz clic ahí.
Una vez dentro, repite los mismos pasos que te he explicado en la sección de cPanel: marcar todas las tablas y seleccionar "Optimizar tabla". También puedes repararlas si fuera necesario.
Optimizar MySQL desde Syspanel (HestiaCP)
Como ya te he comentado, Syspanel es el panel de control que antes se llamaba HestiaCP. Para acceder a la gestión de bases de datos:
- Abre tu navegador y escribe
https://tu-dominio.com:2106. - Inicia sesión con tus credenciales.
- En el menú lateral, busca "Bases de datos".
- Verás tu base de datos de PrestaShop. Haz clic en el icono de "phpMyAdmin" (suele ser un icono de una base de datos con una flecha).
Dentro de phpMyAdmin, realiza la optimización de tablas como te he explicado antes. El proceso es idéntico.
[TIP] Aunque uses Syspanel, el panel no afecta al rendimiento de MySQL. Lo que importa es cómo optimices las tablas dentro de phpMyAdmin.
Limpiar tablas de PrestaShop: qué borrar y qué conservar
Ahora viene la parte importante. No basta con optimizar las tablas, también hay que limpiar tablas de PrestaShop que acumulan basura con el tiempo. Estas son las tablas que puedes limpiar sin miedo:
Tabla ps_connections
Esta tabla guarda las conexiones de los visitantes a tu tienda. Con el tiempo, se llena de millones de registros inútiles. Puedes vaciarla por completo.
TRUNCATE TABLE ps_connections;
Tabla ps_connections_page
Guarda las páginas visitadas durante cada conexión. También puedes vaciarla.
TRUNCATE TABLE ps_connections_page;
Tabla ps_guest
Registra información de visitantes anónimos. No afecta a tus clientes registrados. Límpiala.
TRUNCATE TABLE ps_guest;
Tabla ps_cart
Aquí se guardan los carritos de compra. Muchos quedan abandonados y nunca se limpian. Puedes eliminar los carritos que tengan más de 30 días sin actividad.
DELETE FROM ps_cart WHERE date_upd < DATE_SUB(NOW(), INTERVAL 30 DAY);
Tabla ps_cart_product
Es la que guarda los productos de cada carrito. Si borras carritos antiguos, también debes limpiar esta tabla.
DELETE cp FROM ps_cart_product cp LEFT JOIN ps_cart c ON cp.id_cart = c.id_cart WHERE c.id_cart IS NULL;
Tabla ps_sessions
Guarda las sesiones de navegación. Las sesiones caducadas se acumulan sin control.
DELETE FROM ps_sessions WHERE `expiry` < NOW();
Tabla ps_log
Es el registro de errores de PrestaShop. Puede crecer muchísimo. Vacíala de vez en cuando.
TRUNCATE TABLE ps_log;
Tabla ps_search_word
Relacionada con el buscador de tu tienda. A veces se llena de palabras irrelevantes. Puedes vaciarla y PrestaShop la regenerará automáticamente.
TRUNCATE TABLE ps_search_word;
Tabla ps_search_index
Es el índice de búsqueda. Si la vacías, PrestaShop la reconstruirá la próxima vez que alguien busque.
TRUNCATE TABLE ps_search_index;
[WARNING] Mucho cuidado con las tablas
ps_productops_orders. No las toques por accidente. En la lista anterior solo debes vaciar las tablas que te he indicado. Si tienes dudas, no hagas nada sin consultar antes.
Cómo acelerar PrestaShop con la configuración de MySQL
Además de limpiar tablas, puedes ajustar la configuración de MySQL para que trabaje más eficientemente. Esto se hace editando el archivo my.cnf o my.ini.
Parámetros clave para un mejor rendimiento
| Parámetro | Valor recomendado | Explicación |
|---|---|---|
innodb_buffer_pool_size | 70% de la RAM disponible | Cuanto más espacio en memoria, menos lecturas de disco |
query_cache_size | 64MB - 128MB | Guarda consultas repetidas en memoria |
tmp_table_size | 64MB | Evita que las tablas temporales vayan a disco |
max_connections | 100 - 200 | Según el tráfico de tu tienda |
innodb_log_file_size | 256MB | Mejora la escritura de datos |
[INFO] No todos los hosting permiten modificar estos parámetros. Si usas un hosting compartido, seguramente no puedas tocarlos. En ese caso, confórmate con la optimización de tablas y la limpieza.
Cómo editar my.cnf en cPanel
- Ve a cPanel → "Administrar MySQL" (o "MySQL Configuration").
- Busca la pestaña "Variables" o "Configuración global".
- Modifica los valores con cuidado.
En Plesk, puedes editar el archivo my.cnf desde "Herramientas y ajustes" → "Configuración del servidor" → "MySQL".
Activar el caché de MySQL en PrestaShop
PrestaShop tiene un sistema de caché integrado que puedes activar para reducir las consultas a la base de datos. Esto es clave para acelerar PrestaShop.
Cómo activar el caché en PrestaShop 1.7 y 1.8
- Entra en el panel de administración de tu tienda.
- Ve a "Parámetros avanzados" → "Rendimiento".
- En la sección "Caché", elige "Caché de archivos" o "Memcached" (si tu hosting lo soporta).
- Guarda los cambios.
Con el caché activado, PrestaShop no tiene que consultar la base de datos cada vez que un visitante carga una página. Los datos se guardan en memoria o en archivos temporales, lo que acelera muchísimo la respuesta del servidor.
Programar la optimización automática con cron
No querrás estar limpiando tablas manualmente cada semana, ¿verdad? Puedes programar una tarea cron para que se ejecute automáticamente.
Crear un cron en cPanel
- Entra en cPanel → "Tareas Cron".
- Crea una tarea nueva con este comando:
mysqlcheck -u TU_USUARIO -pTU_CONTRASEÑA --optimize TU_BASE_DE_DATOS
- Programa la tarea para que se ejecute una vez por semana, por ejemplo los domingos a las 5:00 AM.
Crear un cron en Plesk
- Ve a "Sitios web y dominios" → tu dominio → "Tareas programadas".
- Añade una tarea con el mismo comando.
- Establece la periodicidad semanal.
[TIP] No uses la contraseña directamente en el comando cron si tu servidor lo permite. Mejor crea un archivo
.my.cnfen tu carpeta personal con las credenciales, así nadie podrá verlas.
Preguntas frecuentes sobre la optimización de MySQL en PrestaShop
¿Cada cuánto tiempo debo optimizar la base de datos?
Depende del tráfico de tu tienda. Si tienes una tienda pequeña, una vez al mes es suficiente. Si tienes mucho tráfico, hazlo cada semana. La optimización automática con cron te facilitará la vida.
¿Perderé pedidos o clientes al limpiar tablas?
No. Las tablas que te he indicado para limpiar no contienen información crítica. Los pedidos, clientes y productos están en otras tablas que no debes tocar.
¿Qué hago si no puedo acceder a phpMyAdmin?
Algunos hosting limitan el acceso a phpMyAdmin. En ese caso, puedes usar un cliente MySQL como MySQL Workbench o Adminer desde tu ordenador, siempre que tengas las credenciales de acceso remoto.
¿La optimización de la base de datos mejora el SEO?
Sí, indirectamente. Una base de datos optimizada hace que tu tienda cargue más rápido, y la velocidad de carga es un factor de posicionamiento en Google. Además, mejora la experiencia del usuario, lo que reduce la tasa de rebote y aumenta las conversiones.
¿Puedo optimizar la base de datos desde el propio PrestaShop?
PrestaShop tiene un módulo llamado "Optimización de base de datos" en versiones antiguas. En las versiones modernas, puedes usar módulos de terceros como "Advanced Database Optimizer". Sin embargo, la forma más fiable y completa es hacerlo manualmente desde phpMyAdmin.
Conclusión: la optimización de MySQL es un mantenimiento imprescindible
Optimizar MySQL en PrestaShop no es algo que debas hacer una vez y olvidarte. Es un mantenimiento periódico que mantiene tu tienda ágil, rápida y con una buena experiencia de usuario. Y no solo eso: también ayuda a tu posicionamiento en buscadores.
Recuerda los pasos clave:
- Haz siempre una copia de seguridad antes de tocar nada.
- Optimiza y repara tablas desde phpMyAdmin.
- Limpia las tablas basura que acumulan registros inútiles.
- Activa el caché de PrestaShop.
- Programa tareas cron para automatizar la limpieza.
Si sigues estos consejos, tu tienda volverá a volar y tus clientes lo notarán. Y si usas Syspanel, recuerda que el acceso es por el puerto 2106. Todo lo demás funciona exactamente igual.
[INFO] Si después de hacer todo esto tu tienda sigue lenta, el problema puede estar en el servidor o en el hosting. En ese caso, valora cambiar a un plan superior o a un hosting especializado en PrestaShop.
Ahora ya sabes cómo acelerar PrestaShop optimizando su base de datos. Manos a la obra y verás la diferencia.
