Optimizar la base de datos de PrestaShop en Plesk
¿Tu tienda PrestaShop va lenta? ¿Los tiempos de carga se han disparado y notas que el panel de administración va pesado? Es muy probable que el problema esté en la base de datos. Con el tiempo, PrestaShop acumula registros innecesarios, tablas temporales y datos obsoletos que ralentizan todo el sistema. En este artículo te voy a explicar paso a paso cómo optimizar la base de datos PrestaShop desde Plesk, una de las plataformas de hosting más utilizadas. No necesitas ser un experto en informática; solo sigue las instrucciones y verás cómo mejora el PrestaShop rendimiento Plesk.
¿Por qué es importante optimizar la base de datos de PrestaShop?
PrestaShop es un CMS muy potente, pero su base de datos crece sin control si no la mantenemos. Cada vez que un cliente añade un producto al carrito, cada visita, cada búsqueda o cada error 404, se genera un registro en la base de datos. Con el tiempo, esa acumulación de datos hace que las consultas sean más lentas, el servidor tenga que trabajar más y la tienda se vuelva menos reactiva.
Una base de datos PrestaShop optimización adecuada puede:
- Reducir el tiempo de carga de las páginas.
- Mejorar la experiencia del usuario y la tasa de conversión.
- Disminuir el consumo de recursos del servidor.
- Facilitar las tareas de backup y mantenimiento.
Además, si tu tienda está alojada en un servidor compartido, la optimización es aún más crítica porque los recursos son limitados. Vamos a ver cómo hacerlo directamente desde Plesk.
Antes de empezar: precauciones imprescindibles
[WARNING] Antes de tocar nada en la base de datos, haz una copia de seguridad. Si algo sale mal, podrías perder información valiosa. En Plesk puedes hacerlo fácilmente.
Cómo hacer una copia de seguridad en Plesk
- Accede a tu panel de Plesk (normalmente en
https://tudominio.com:8443o la URL que te haya dado tu proveedor). - Ve a Herramientas y Ajustes > Administrador de copias de seguridad.
- Selecciona tu dominio o suscripción.
- Marca la opción Base de datos y elige Crear copia de seguridad.
- Guarda el archivo en tu ordenador o en un almacenamiento externo.
Con la copia de seguridad hecha, ya puedes trabajar con tranquilidad.
Paso 1: Acceder a la base de datos desde Plesk
Plesk ofrece varias herramientas para gestionar bases de datos. La más común es phpMyAdmin, un gestor web muy intuitivo.
- En el panel de Plesk, ve a Sitios web y dominios.
- Busca tu tienda PrestaShop y haz clic en Base de datos (o en el nombre de la base de datos si ya aparece).
- Verás un listado de bases de datos asociadas a tu sitio. Haz clic en phpMyAdmin.
- Se abrirá una nueva pestaña con el gestor. Aquí es donde trabajaremos.
[INFO] Si no ves phpMyAdmin, puede que tu hosting lo tenga deshabilitado. En ese caso, contacta con tu proveedor o usa la herramienta de base de datos desde la línea de comandos (si tienes acceso SSH).
Paso 2: Limpiar datos obsoletos con las herramientas nativas de PrestaShop
Antes de meternos en la base de datos directamente, PrestaShop incluye algunas opciones de limpieza desde el panel de administración. Es el primer paso y el más seguro.
- Accede a tu back office de PrestaShop (ejemplo:
tutienda.com/admin1234). - Ve a Parámetros avanzados > Rendimiento.
- En la pestaña Base de datos, encontrarás la opción Limpiar la base de datos. Actívala y haz clic en Guardar.
- También puedes ir a Parámetros avanzados > Base de datos y usar la opción Optimizar tablas. Esto repara y optimiza las tablas de forma segura.
Estas herramientas eliminan registros de carritos abandonados, sesiones caducadas, errores 404, etc. No obstante, para una limpieza más profunda, necesitamos usar phpMyAdmin.
Paso 3: Optimizar tablas en phpMyAdmin
Una vez en phpMyAdmin, verás una lista de tablas de tu base de datos (normalmente empiezan con ps_ o el prefijo que hayas configurado).
Seleccionar y optimizar tablas
- Haz clic en el nombre de la base de datos en el panel izquierdo.
- Verás un listado de todas las tablas. Marca la casilla de Seleccionar todo (suele estar al final de la lista).
- En el desplegable inferior Con seleccionados:, elige Optimizar tabla.
- phpMyAdmin ejecutará el comando
OPTIMIZE TABLEpara cada tabla. Esto reorganiza el almacenamiento físico, libera espacio y mejora la velocidad de las consultas.
[TIP] No te asustes si ves algunas tablas que no se optimizan (por ejemplo, tablas InnoDB pueden mostrar un mensaje de que la operación no es necesaria). Es normal. El proceso no daña los datos.
Paso 4: Eliminar registros innecesarios manualmente
La optimización no solo consiste en reordenar tablas, sino también en borrar datos que ya no sirven. Aquí tienes las principales tablas que puedes limpiar.
4.1. Limpiar sesiones caducadas
Las sesiones guardan información de los usuarios mientras navegan. Con el tiempo, se acumulan miles de registros inútiles.
En phpMyAdmin, haz clic en la tabla ps_connections (o ps_guest y ps_session). Luego, en la pestaña SQL, ejecuta esta consulta:
DELETE FROM ps_guest WHERE id_guest NOT IN (SELECT id_guest FROM ps_connections);
O más sencillo, para sesiones:
DELETE FROM ps_session WHERE id_session < (SELECT MAX(id_session) - 10000 FROM ps_session);
[WARNING] Esta segunda consulta borra todas las sesiones excepto las 10.000 más recientes. Ajusta el número según el tráfico de tu tienda. Si tienes dudas, mejor no la ejecutes.
4.2. Eliminar carritos abandonados antiguos
Los carritos abandonados ocupan espacio y no aportan nada si tienen más de 30 días.
DELETE FROM ps_cart WHERE id_cart NOT IN (SELECT id_cart FROM ps_orders) AND date_add < DATE_SUB(NOW(), INTERVAL 30 DAY);
4.3. Borrar registros de búsquedas
Las búsquedas que los usuarios hacen en tu tienda se guardan en ps_search_word y ps_search_index. Puedes truncar estas tablas (borrar todo su contenido) sin problema, ya que PrestaShop las regenera automáticamente.
TRUNCATE TABLE ps_search_word;
TRUNCATE TABLE ps_search_index;
4.4. Limpiar logs y errores
Los logs de errores (tabla ps_log) y las visitas a páginas 404 (ps_404) pueden crecer mucho.
TRUNCATE TABLE ps_log;
TRUNCATE TABLE ps_404;
[INFO] Si tu tienda tiene mucho tráfico, considera no truncar ps_404 si usas algún módulo de redirección. En ese caso, borra solo los registros antiguos con DELETE FROM ps_404 WHERE date_add < DATE_SUB(NOW(), INTERVAL 30 DAY).
Paso 5: Desactivar y eliminar módulos innecesarios
Aunque esto no es directamente una tarea de base de datos, los módulos crean tablas y registros. Si tienes módulos que no usas, desactívalos y luego elimínalos desde el back office. En Plesk, puedes incluso borrar las carpetas de módulos desde el administrador de archivos, pero cuidado: si el módulo tiene tablas, deberías eliminarlas manualmente desde phpMyAdmin.
Para identificar tablas de módulos, busca nombres como ps_<nombre_modulo>. Si no sabes qué módulo es, mejor no la toques.
Paso 6: Programar tareas de mantenimiento automáticas
Para que la optimización no sea un trabajo manual cada mes, puedes programar un script que ejecute las limpiezas más comunes. PrestaShop ya incluye un cron para tareas programadas, pero puedes añadir una consulta SQL desde el cron del sistema en Plesk.
Cómo añadir un cron en Plesk
- Ve a Sitios web y dominios > tu dominio > Tareas programadas (o Cron jobs).
- Haz clic en Añadir tarea programada.
- En Comando, puedes ejecutar un script PHP que llame a las consultas de limpieza. Por ejemplo, crea un archivo
limpiar_bd.phpen la raíz de tu tienda con este contenido:
<?php
// Conectar a la base de datos (ajusta los datos)
$conexion = mysqli_connect("localhost", "usuario_bd", "contraseña", "nombre_bd");
// Ejecutar limpieza
mysqli_query($conexion, "DELETE FROM ps_guest WHERE id_guest NOT IN (SELECT id_guest FROM ps_connections)");
mysqli_query($conexion, "DELETE FROM ps_cart WHERE id_cart NOT IN (SELECT id_cart FROM ps_orders) AND date_add < DATE_SUB(NOW(), INTERVAL 30 DAY)");
mysqli_query($conexion, "OPTIMIZE TABLE ps_connections, ps_guest, ps_cart");
mysqli_close($conexion);
?>
- Programa la tarea para que se ejecute, por ejemplo, cada semana.
[WARNING] No expongas este archivo a internet. Protégelo con contraseña o colócalo fuera del directorio público. Si no sabes cómo, mejor no lo hagas.
Paso 7: Monitorizar el rendimiento después de la optimización
Una vez realizados los pasos anteriores, es importante comprobar si ha mejorado el PrestaShop rendimiento Plesk. Puedes usar herramientas como:
- Pingdom Tools o GTmetrix para medir la velocidad de carga.
- El propio panel de PrestaShop en Parámetros avanzados > Rendimiento te da información sobre el tiempo de ejecución de las consultas.
- En Plesk, ve a Estadísticas para ver el uso de CPU y memoria.
Si notas que la tienda sigue lenta, quizás el problema no es solo la base de datos. Revisa la configuración de caché, la compresión de imágenes o el hosting.
Preguntas frecuentes (FAQ)
¿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. Si tienes cientos de visitas diarias, cada semana o incluso a diario con tareas automáticas.
¿Puedo dañar mi tienda si borro datos incorrectos?
Sí, por eso es fundamental hacer una copia de seguridad antes. Las consultas que te he mostrado son seguras, pero siempre revisa los nombres de las tablas (pueden tener prefijos diferentes).
¿Qué hago si no encuentro phpMyAdmin en Plesk?
Algunos proveedores lo ocultan por seguridad. Puedes instalar un gestor de base de datos como Adminer en tu servidor, o pedir acceso SSH a tu hosting.
¿La optimización de la base de datos afecta al SEO?
Sí, indirectamente. Una tienda más rápida mejora la experiencia del usuario, reduce la tasa de rebote y Google valora positivamente la velocidad de carga. Por lo tanto, una base de datos PrestaShop optimización contribuye a un mejor posicionamiento.
¿Puedo usar un módulo para optimizar la base de datos?
Existen módulos como "Cleaner" o "Database Optimizer" que automatizan el proceso. Sin embargo, ten cuidado: algunos pueden ser intrusivos. Siempre revisa las reseñas y haz una copia de seguridad antes de instalarlos.
Conclusión
Optimizar la base de datos de PrestaShop en Plesk no es complicado si sigues estos pasos. Con unas pocas acciones periódicas, mantendrás tu tienda ágil, mejorarás la experiencia de tus clientes y evitarás dolores de cabeza por lentitud. Recuerda: la clave está en la constancia. Programa tareas automáticas, revisa los logs y no dejes que los datos basura se acumulen.
[TIP] Si después de todo esto tu tienda sigue lenta, considera actualizar a una versión más reciente de PrestaShop o cambiar de hosting. A veces, el problema no es la base de datos, sino los recursos del servidor.
¡Manos a la obra y a disfrutar de una tienda más rápida!
