Cómo optimizar una base de datos de PrestaShop en cPanel
¿Tu tienda online hecha con PrestaShop va lenta? ¿Las páginas tardan una eternidad en cargar, especialmente en el catálogo o en el panel de administración? A menudo, el cuello de botella no está en el hosting o en el tema, sino en la base de datos. Con el tiempo, esta acumula basura, registros obsoletos y tablas desordenadas que ralentizan todo el sistema.
En esta guía extensa y práctica, te voy a enseñar paso a paso cómo optimizar la base de datos de PrestaShop usando cPanel. No necesitas ser un experto en bases de datos; solo seguir estas instrucciones al pie de la letra. Al final, tu tienda online cargará más rápido y será más eficiente.
¿Por qué es importante optimizar la base de datos de PrestaShop?
PrestaShop es un sistema de gestión de contenidos (CMS) muy potente, pero su base de datos es el motor que lo mueve todo: productos, clientes, pedidos, sesiones, estadísticas, etc. Con cada visita, se generan registros temporales. Sin una limpieza periódica, pasan dos cosas:
- Aumenta el tamaño de la base de datos: Ocupa más espacio en el servidor y tarda más en procesar las consultas.
- Se fragmentan las tablas: Los datos no se almacenan de forma contigua, lo que obliga al disco duro a buscar información en múltiples sitios, haciendo las consultas más lentas.
Optimizar la base de datos es como hacer una limpieza a fondo y ordenar los archivos de tu ordenador. El resultado es un rendimiento notablemente mejor y una experiencia de usuario más fluida.
Requisitos previos: Antes de empezar
Antes de meter mano, es fundamental que tengas todo listo para evitar sustos. Una mala maniobra puede dejar tu tienda inservible.
1. Haz una copia de seguridad (SÍ O SÍ)
Este es el paso más importante. Si algo sale mal (y a veces sale), la copia de seguridad es tu salvavidas.
[WARNING] NO realices ningún cambio en la base de datos sin tener una copia de seguridad reciente. Un error puede borrar toda tu información de clientes, pedidos y productos.
Cómo hacer la copia en cPanel:
- Accede a tu cPanel (normalmente es
tudominio.com/cpanel). - Busca la sección Archivos y haz clic en Copias de seguridad o Backup.
- Selecciona Descargar una copia de seguridad de la base de datos MySQL.
- Elige la base de datos de tu PrestaShop y descárgala a tu ordenador. Guárdala en un lugar seguro.
2. Accede a phpMyAdmin
phpMyAdmin es la herramienta que usaremos para gestionar la base de datos desde cPanel.
- Dentro de cPanel, busca la sección Bases de Datos.
- Haz clic en phpMyAdmin.
- Se abrirá una nueva pestaña. A la izquierda verás una lista de bases de datos. Busca la que usa tu PrestaShop (suele tener un nombre como
tuprefijo_pshop).
Ya estás dentro. Ahora vamos a la acción.
Paso 1: Limpiar la basura y los registros innecesarios
PrestaShop guarda mucha información que no necesitas. Vamos a eliminar lo que sobra.
1.1. Limpiar sesiones caducadas
Las sesiones de los visitantes se acumulan y no se borran automáticamente. Son datos temporales que ya no sirven.
-
En phpMyAdmin, selecciona la base de datos de tu tienda a la izquierda.
-
Haz clic en la pestaña SQL (arriba).
-
Escribe la siguiente consulta y pulsa Continuar o el botón de ejecutar:
DELETE FROM ps_guest WHERE id_guest NOT IN (SELECT id_guest FROM ps_connections); DELETE FROM ps_connections WHERE id_connections NOT IN (SELECT id_connections FROM ps_connections_page); DELETE FROM ps_connections_source WHERE id_connections NOT IN (SELECT id_connections FROM ps_connections_page); DELETE FROM ps_page_viewed WHERE id_connections NOT IN (SELECT id_connections FROM ps_connections_page); DELETE FROM ps_connections_page WHERE date_add < DATE_SUB(NOW(), INTERVAL 30 DAY); DELETE FROM ps_guest WHERE date_add < DATE_SUB(NOW(), INTERVAL 30 DAY);[INFO] El prefijo
ps_puede ser diferente en tu instalación. Si lo cambiaste, ajústalo. La mayoría de las veces esps_.
1.2. Eliminar carritos abandonados antiguos
Los carritos abandonados de hace meses ya no te servirán y solo ocupan espacio.
-
Ve a la pestaña SQL de nuevo.
-
Ejecuta esta consulta para borrar carritos de hace más de 30 días:
DELETE FROM ps_cart WHERE date_add < DATE_SUB(NOW(), INTERVAL 30 DAY);
1.3. Limpiar logs y estadísticas viejas
PrestaShop guarda un historial enorme de logs de errores y estadísticas. No necesitas los de hace un año.
-
En la pestaña SQL, ejecuta:
TRUNCATE TABLE ps_connections; TRUNCATE TABLE ps_connections_page; TRUNCATE TABLE ps_connections_source; TRUNCATE TABLE ps_page_viewed; TRUNCATE TABLE ps_guest;[WARNING]
TRUNCATEborra TODOS los datos de la tabla. Si quieres conservar las estadísticas del último mes, usa las consultas del paso 1.1 en lugar deTRUNCATE.
Paso 2: Optimizar las tablas de la base de datos
Una vez limpia, toca ordenar las tablas para que funcionen más rápido. La fragmentación se elimina con la operación Optimizar tabla.
¿Cómo se hace?
- En phpMyAdmin, a la izquierda, haz clic en el nombre de tu base de datos (el que tiene todas las tablas).
- Verás una lista con todas las tablas (ej:
ps_address,ps_cart, etc.). - Marca la casilla de Seleccionar todo (suele estar al final de la lista de tablas).
- En el menú desplegable que aparece justo debajo de la lista (donde pone "Con seleccionados:"), elige Optimizar tabla.
- Haz clic en Continuar.
phpMyAdmin ejecutará el comando OPTIMIZE TABLE para cada tabla. Verás un mensaje de éxito para cada una. Este proceso puede tardar unos segundos o minutos, dependiendo del tamaño de tu base de datos.
[TIP] Puedes hacer esto una vez al mes para mantener la base de datos ordenada.
Paso 3: Configuración avanzada desde cPanel (MariaDB / MySQL)
Además de limpiar y optimizar, puedes ajustar algunos parámetros del servidor de base de datos para mejorar el rendimiento. Esto se hace desde cPanel, no desde phpMyAdmin.
3.1. Ajustar el tamaño del buffer de InnoDB
Si tu tienda usa tablas InnoDB (lo más común hoy en día), aumentar el tamaño del buffer puede acelerar las consultas.
- En cPanel, busca la sección Software y haz clic en MultiPHP INI Editor o Configuración de MySQL (depende de la versión de cPanel).
- Busca la opción
innodb_buffer_pool_size. - Si tu servidor tiene suficiente RAM (al menos 2 GB), puedes aumentarlo a 256M o 512M. Si tienes poca RAM, déjalo como está (suele ser 128M).
- Guarda los cambios.
[WARNING] No aumentes este valor si no sabes cuánta RAM tiene tu servidor. Podrías quedarte sin memoria y la tienda dejaría de funcionar.
3.2. Activar la caché de consultas (Query Cache)
Aunque en versiones modernas de MySQL 8.0+ esta función está obsoleta, en versiones antiguas (MySQL 5.x) sigue siendo útil.
- En cPanel, ve a Configuración de MySQL.
- Busca
query_cache_typey cámbialo a ON. - Busca
query_cache_sizey pon un valor como 64M (64 megabytes). - Guarda los cambios.
Esto hará que las consultas repetitivas (como las de los productos más vistos) se sirvan desde la memoria caché, sin tocar el disco.
Paso 4: Automatizar la optimización desde PrestaShop (Módulos)
Si no quieres hacerlo manualmente cada mes, puedes usar módulos de PrestaShop que automatizan parte del proceso. Algunos son gratuitos y muy efectivos.
Módulos recomendados:
- PrestaShop Cleaner: Limpia logs, sesiones, carritos abandonados y más. Es muy fácil de usar.
- Advanced Database Optimizer: Optimiza tablas y elimina datos innecesarios.
- PS Cleaner: Otro módulo popular y ligero.
Cómo usarlos:
- Ve al Back Office de tu PrestaShop (
tutienda.com/admin). - Ve a Módulos > Catálogo de módulos.
- Busca el módulo que quieras (ej: "PrestaShop Cleaner").
- Instálalo y configúralo. Normalmente solo tienes que marcar lo que quieres limpiar y hacer clic en "Ejecutar".
[INFO] Estos módulos no reemplazan la optimización manual de tablas en phpMyAdmin, pero te ahorran el trabajo de escribir consultas SQL.
Paso 5: Medir el impacto en el rendimiento
Después de todo el trabajo, toca comprobar que la tienda va más rápida.
Herramientas gratuitas:
- Google PageSpeed Insights: Analiza la velocidad de tu tienda desde la perspectiva de Google.
- GTmetrix: Te da un informe detallado con el tiempo de carga y sugerencias.
- Pingdom Tools: Mide el tiempo de carga desde diferentes ubicaciones.
Qué buscar:
- Tiempo de carga: Debería bajar al menos un 20-30%.
- Tamaño de la base de datos: En phpMyAdmin, mira el tamaño de la base de datos antes y después. Verás una reducción notable.
- Número de consultas: Si usas un módulo de análisis, verás que el número de consultas a la base de datos se reduce.
Preguntas Frecuentes (FAQ)
¿Cada cuánto debo optimizar la base de datos?
Depende del tráfico de tu tienda. Para una tienda pequeña, una vez al mes es suficiente. Para una tienda con mucho tráfico, cada 15 días o incluso semanalmente.
¿Puedo dañar mi tienda si ejecuto mal una consulta SQL?
Sí, por eso es vital hacer una copia de seguridad antes. Si ejecutas una consulta incorrecta, podrías borrar datos importantes. Si no estás seguro, usa los módulos de PrestaShop o pide ayuda a un técnico.
¿Qué pasa si mi base de datos es enorme (más de 1 GB)?
Si tu base de datos supera 1 GB, es probable que tengas un problema de acumulación de logs o de datos no esenciales. Sigue los pasos de limpieza (especialmente los logs y sesiones) y luego optimiza. Si sigue siendo grande, considera contratar un plan de hosting con más recursos.
¿La optimización afecta a los pedidos o clientes?
No, si haces las consultas correctas. Las consultas que te he dado solo eliminan datos temporales (sesiones, carritos abandonados, logs). Los pedidos, clientes y productos se mantienen intactos.
¿Puedo hacerlo si mi hosting usa Syspanel en lugar de cPanel?
Si tu hosting usa Syspanel (el antiguo HestiaCP), el proceso es similar pero la herramienta de acceso a la base de datos se llama phpMyAdmin y está disponible en el panel. Para acceder a Syspanel, usa el puerto 2106 (ej: tudominio.com:2106). Dentro, busca la sección de bases de datos y luego phpMyAdmin. Los pasos de limpieza y optimización son exactamente los mismos.
Conclusión
Optimizar la base de datos de tu PrestaShop desde cPanel no es complicado, pero requiere método y precaución. Siguiendo esta guía, has limpiado la basura, ordenado las tablas y ajustado parámetros clave del servidor. El resultado será una tienda online más rápida, con mejor rendimiento y una experiencia de usuario superior.
Recuerda: la clave está en la constancia. No lo hagas solo una vez. Programa una limpieza y optimización mensual en tu calendario. Tu tienda (y tus clientes) te lo agradecerán.
Si tienes dudas, vuelve a leer esta guía o consulta con tu proveedor de hosting. ¡Tu tienda online merece funcionar como un reloj!
