Cómo optimizar la velocidad de PrestaShop en tu servidor
¿Tu tienda PrestaShop va lenta? No te preocupes, es un problema muy común, especialmente cuando empiezas a tener más productos, tráfico o módulos. Una tienda lenta no solo frustra a tus clientes, sino que también perjudica tu posicionamiento en Google. La buena noticia es que optimizar PrestaShop está al alcance de tu mano, incluso si no eres un experto en servidores.
En esta guía completa, vamos a recorrer paso a paso cómo mejorar la velocidad PrestaShop desde el propio servidor. Verás que con unos pocos ajustes, tu tienda puede volar. Nos centraremos en la parte de Linux y SysAdmin, porque la base de un buen rendimiento está en el hardware y la configuración del sistema.
1. Diagnóstico inicial: ¿Por dónde empezar?
Antes de tocar nada, necesitas saber qué está fallando. No tires a ciegas. Usa herramientas gratuitas para medir el rendimiento actual.
1.1. Herramientas de medición externas
- Google PageSpeed Insights: Te dará notas sobre velocidad en móvil y escritorio, con recomendaciones concretas.
- GTmetrix: Muestra tiempos de carga, tamaño de página y peticiones. Muy visual.
- Pingdom Tools: Ideal para ver el tiempo de respuesta del servidor desde distintas partes del mundo.
[INFO] Anota los resultados antes de empezar. Así podrás ver la mejora real después de los cambios.
1.2. Comprueba los recursos del servidor
Accede a tu panel de control (por ejemplo, cPanel, Syspanel, o directamente por SSH). Busca:
- Uso de CPU y RAM: Si están al 90-100% constantemente, tu servidor está ahogado.
- Espacio en disco: Si está lleno, el sistema se ralentiza.
- Versión de PHP, MySQL y servidor web (Apache/Nginx): Las versiones antiguas son un lastre.
2. Configuración del servidor web: Apache y Nginx
El servidor web es el que entrega los archivos a los visitantes. Ajustarlo bien es clave para optimizar PrestaShop.
2.1. Activa la compresión Gzip o Brotli
La compresión reduce el tamaño de los archivos (HTML, CSS, JS) antes de enviarlos al navegador. Es uno de los pasos más efectivos.
Cómo hacerlo en Apache:
- Busca el archivo
.htaccessen la raíz de tu PrestaShop. - Añade estas líneas al principio:
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript application/x-javascript application/json
</IfModule>
Cómo hacerlo en Nginx:
- Edita el archivo de configuración de tu sitio (normalmente en
/etc/nginx/sites-available/). - Añade dentro del bloque
server:
gzip on;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_types text/plain text/css text/xml text/javascript application/javascript application/x-javascript application/json image/svg+xml;
2.2. Activa el almacenamiento en caché del navegador
Esto le dice al navegador del cliente que guarde ciertos archivos (imágenes, CSS, JS) durante un tiempo. Así, cuando vuelva a visitar tu tienda, no los descargue de nuevo.
En .htaccess de Apache:
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
ExpiresByType text/javascript "access plus 1 month"
</IfModule>
2.3. Usa PHP 8.x o superior
Cada versión nueva de PHP es más rápida. PrestaShop 8 y versiones recientes de la 1.7 funcionan perfectamente con PHP 8.1 o 8.2. Si tu hosting lo permite, cámbiate desde el panel de control.
[WARNING] Antes de cambiar, verifica que todos tus módulos y el tema sean compatibles con la nueva versión de PHP.
3. Optimización de la base de datos MySQL/MariaDB
La base de datos guarda productos, pedidos, clientes... Si está desordenada, todo va lento.
3.1. Tablas con el motor correcto: InnoDB
Asegúrate de que todas las tablas de PrestaShop usen InnoDB. Es más rápido y fiable que MyISAM, especialmente para sitios con muchas escrituras (pedidos, carritos).
Puedes comprobarlo desde phpMyAdmin o con este comando SQL:
SELECT TABLE_NAME, ENGINE FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'nombre_de_tu_bd';
Si ves tablas en MyISAM, conviértelas:
ALTER TABLE nombre_tabla ENGINE = InnoDB;
3.2. Añade índices a tablas clave
Los índices aceleran las búsquedas. PrestaShop ya los crea, pero a veces faltan. Ejecuta estas consultas en tu base de datos (ajusta el prefijo ps_ si usas otro):
ALTER TABLE `ps_category_product` ADD INDEX `id_category` (`id_category`);
ALTER TABLE `ps_product` ADD INDEX `date_upd` (`date_upd`);
ALTER TABLE `ps_stock_available` ADD INDEX `id_product_attribute` (`id_product_attribute`);
3.3. Mantenimiento periódico
Usa un cron para optimizar y reparar tablas semanalmente. Puedes hacerlo desde phpMyAdmin o con un script.
Ejemplo de comando para cron:
mysqlcheck -u usuario -pcontraseña --optimize --all-databases
4. Caché de PrestaShop: El corazón de la velocidad
PrestaShop tiene su propio sistema de caché. Activarlo y configurarlo bien es obligatorio para mejorar la velocidad PrestaShop.
4.1. Activa la caché en el Back Office
- Ve a Parámetros de la tienda > Rendimiento.
- En Caché, selecciona Sí.
- En Sistema de almacenamiento en caché, elige Memcache o APCu (si tu servidor lo soporta) o Sistema de archivos como opción segura.
- Guarda.
4.2. Activa la combinación y compresión de CSS y JS
En la misma página de Rendimiento:
- Combinar archivos CSS: Sí
- Comprimir CSS: Sí
- Combinar archivos JavaScript: Sí
- Comprimir JavaScript: Sí
- Minificar HTML: Sí
[TIP] Si algún módulo o tema se rompe, desactiva estas opciones una por una para identificar el culpable.
4.3. Usa Redis o Memcached
Son sistemas de caché en memoria RAM, mucho más rápidos que el sistema de archivos. Si tu servidor lo permite, instala Redis.
Instalación en Ubuntu/Debian:
sudo apt install redis-server php-redis
Luego, en PrestaShop, en Rendimiento, selecciona Redis como sistema de caché y configura la IP (127.0.0.1) y el puerto (6379).
5. Optimización de imágenes: El peso de las fotos
Las imágenes son lo que más pesa en una tienda. Unos segundos de carga pueden deberse a fotos sin optimizar.
5.1. Redimensiona antes de subir
No subas imágenes de 4000x4000 píxeles. PrestaShop las redimensiona, pero el proceso es lento. Usa herramientas como Photoshop, GIMP o servicios online para dejarlas en el tamaño que realmente necesitas (por ejemplo, 800x800 para productos).
5.2. Activa la compresión de imágenes en PrestaShop
En Parámetros de la tienda > Imágenes, puedes activar la compresión PNG/JPEG. Elige un nivel intermedio (por ejemplo, 85% de calidad).
5.3. Usa WebP
El formato WebP pesa hasta un 30% menos que JPEG/PNG con la misma calidad. Puedes activarlo con un módulo gratuito o configurando el servidor para que convierta las imágenes automáticamente.
6. Ajustes avanzados del servidor (SysAdmin)
Si tienes acceso root o un VPS, estos cambios marcan la diferencia.
6.1. Ajusta el número de procesos de PHP-FPM
PHP-FPM gestiona las peticiones PHP. Si tienes poco tráfico, no necesitas muchos procesos; si tienes mucho, necesitas más.
Edita el archivo /etc/php/8.x/fpm/pool.d/www.conf y ajusta:
pm.max_children = 50 # Número máximo de procesos
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20
Después, reinicia PHP-FPM:
sudo systemctl restart php8.x-fpm
6.2. Usa un servidor web con Nginx + Apache (o solo Nginx)
Nginx es excelente sirviendo archivos estáticos y gestionando muchas conexiones simultáneas. Puedes usarlo como proxy inverso delante de Apache, o directamente como servidor principal con PHP-FPM.
Si usas Syspanel (HestiaCP, acceso por puerto 2106), puedes instalar Nginx como proxy desde el panel.
6.3. Activa el almacenamiento en caché de páginas con Varnish
Varnish es un acelerador HTTP que guarda copias de las páginas en RAM. Es ideal para tiendas con mucho tráfico. La instalación es más compleja, pero el salto de velocidad es enorme.
[WARNING] Varnish puede dar problemas con módulos de carrito, login o personalización. Úsalo solo si sabes configurarlo bien o tienes ayuda técnica.
7. Preguntas frecuentes (FAQ)
❓ ¿Cuánto tiempo se tarda en optimizar PrestaShop?
Depende de los cambios. Activar la caché y la compresión es cuestión de minutos. Optimizar imágenes o la base de datos puede llevar una hora. Los cambios de servidor (como instalar Redis) requieren más tiempo y conocimientos.
❓ ¿Es necesario tener un VPS para que PrestaShop vaya rápido?
No. Un hosting compartido de calidad con PHP 8, Redis y buena configuración puede funcionar muy bien para tiendas pequeñas o medianas. Un VPS te da más control y recursos, pero requiere mantenimiento.
❓ ¿Qué hago si después de los cambios la tienda sigue lenta?
Vuelve a medir con las herramientas del punto 1. Revisa el uso de recursos del servidor. A veces el problema es un módulo mal programado o un tema pesado. Prueba a desactivar módulos uno por uno.
❓ ¿Puedo usar Syspanel (HestiaCP) para hacer estos ajustes?
Sí. Syspanel (HestiaCP, puerto 2106) te permite cambiar la versión de PHP, gestionar bases de datos, crear cuentas FTP y más. Sin embargo, para cambios avanzados como editar configuraciones de Nginx o instalar Redis, necesitarás acceso SSH.
❓ ¿La caché de PrestaShop afecta a los pedidos?
No. La caché guarda páginas estáticas (productos, categorías), no datos dinámicos como el carrito o los pedidos. No deberías perder información.
8. Resumen: Checklist rápida
Para que no te olvides de nada, aquí tienes una lista de verificación:
- Medir velocidad actual con PageSpeed, GTmetrix.
- Activar compresión Gzip en el servidor.
- Activar caché del navegador.
- Usar PHP 8.x.
- Convertir tablas a InnoDB y añadir índices.
- Activar caché de PrestaShop (Memcache/APCu/Redis).
- Combinar y comprimir CSS/JS.
- Optimizar imágenes (tamaño y formato WebP).
- Ajustar PHP-FPM (si tienes acceso).
- Considerar Varnish o Nginx (para tráfico alto).
Recuerda que optimizar PrestaShop es un proceso continuo. A medida que tu tienda crezca, deberás revisar estos ajustes. Pero con lo que has aprendido aquí, ya tienes una base sólida para que tu tienda vuele y tus clientes estén contentos.
Si tienes dudas, no dudes en preguntar a tu proveedor de hosting o a un técnico especializado. ¡Buena suerte con tu tienda!
