Cómo acelerar PrestaShop con caché en el servidor
¿Tu tienda PrestaShop va lenta y pierdes ventas? No te preocupes, es un problema muy común que tiene solución. La velocidad de carga es crucial para la experiencia de usuario y para el SEO. Google penaliza las tiendas lentas y, además, los usuarios no esperan más de 3 segundos para ver un producto.
En este artículo, te voy a explicar cómo acelerar PrestaShop usando la caché en el servidor, una de las técnicas más efectivas y que no requiere ser un experto en programación. Vamos paso a paso, desde lo más básico hasta configuraciones avanzadas, para que tu tienda vuele.
¿Por qué es importante la caché para tu PrestaShop?
Imagina que cada vez que un cliente entra a tu tienda, el servidor tiene que cocinar la página desde cero: consultar la base de datos, procesar los módulos, generar el HTML, etc. Eso consume muchos recursos y tiempo.
La caché guarda una "foto" de la página ya cocinada. Así, cuando otro usuario la visita, el servidor solo le entrega esa foto, sin repetir todo el trabajo. El resultado es una carga casi instantánea.
[INFO] La diferencia entre una tienda sin caché y una con caché puede ser de 5 segundos a menos de 1 segundo. Eso se traduce en más conversiones y mejor posicionamiento en Google.
Tipos de caché que debes conocer
Antes de empezar, es importante que entiendas los dos niveles de caché que vamos a configurar:
Caché interna de PrestaShop (Caché de Smarty)
Es la que viene integrada en PrestaShop. Almacena las plantillas (temas) ya compiladas. Es fácil de activar desde el panel de administración.
Caché del servidor (Caché de página completa)
Es la más potente. Se activa a nivel de servidor web (Apache o Nginx) y guarda la página HTML completa. Cuando un usuario visita, el servidor le entrega directamente ese HTML sin tocar PHP ni la base de datos.
En esta guía nos centraremos en la caché del servidor, que es la que realmente marca la diferencia.
Requisitos previos
Para aplicar estas técnicas necesitas:
- Acceso a tu panel de hosting (cPanel, Syspanel, Plesk, etc.)
- Permisos para modificar archivos de configuración (como .htaccess o nginx.conf)
- PrestaShop versión 1.7 o 8.x (aunque los principios aplican a versiones anteriores)
[WARNING] Si tu hosting es compartido muy básico, es posible que no tengas acceso a configurar la caché del servidor. En ese caso, contacta con tu proveedor o considera migrar a un hosting VPS o dedicado que sí lo permita.
Paso 1: Activar la caché interna de PrestaShop
Aunque no es tan potente como la del servidor, es un primer paso obligatorio.
- Ve a tu panel de administración de PrestaShop.
- Navega a Parámetros avanzados > Rendimiento.
- En la sección Caché, selecciona Sí.
- Elige el sistema de caché. Recomendamos Memcached o APCu (si tu servidor lo soporta). Si no, elige Sistema de archivos.
- En Caché de Smarty, selecciona Sí y marca Forzar compilación solo si estás desarrollando. Para producción, déjalo en No.
- Guarda los cambios.
[TIP] Después de activar la caché, limpia la caché manualmente desde el mismo panel para que los cambios se apliquen.
Paso 2: Configurar la caché del servidor web
Aquí es donde realmente vamos a acelerar PrestaShop. Dependiendo de tu servidor, el método varía.
Si usas Apache con mod_pagespeed o Varnish
Apache no tiene un sistema nativo de caché de página completa tan eficiente como Nginx, pero puedes usar módulos como mod_pagespeed o instalar Varnish (un proxy de caché).
Sin embargo, lo más común y recomendado es usar Nginx como servidor web. Si tu hosting usa Apache, pregunta si soporta Nginx como proxy inverso.
Si usas Nginx (la opción más rápida)
Nginx tiene un módulo de caché llamado fastcgi_cache que es perfecto para PrestaShop. Aquí te explico cómo configurarlo.
Configuración básica para Nginx
- Accede a tu servidor por SSH o al panel de administración de tu hosting (Syspanel, por ejemplo, en el puerto 2106).
- Busca el archivo de configuración de Nginx para tu dominio (normalmente en
/etc/nginx/sites-available/o/etc/nginx/conf.d/). - Agrega las siguientes líneas dentro del bloque
server:
# Definir la zona de caché
fastcgi_cache_path /var/cache/nginx/prestashop levels=1:2 keys_zone=PRESTASHOP:100m inactive=60m;
fastcgi_cache_key "$scheme$request_method$host$request_uri";
# Configuración para las peticiones PHP
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; # Ajusta la versión de PHP
# Activar caché
fastcgi_cache PRESTASHOP;
fastcgi_cache_valid 200 60m;
fastcgi_cache_use_stale error timeout updating invalid_header http_500;
add_header X-Cache $upstream_cache_status;
}
- Guarda el archivo y recarga Nginx:
sudo nginx -t
sudo systemctl reload nginx
[INFO] La línea
add_header X-Cachete permite ver en el navegador si la página se sirve desde caché (HIT) o no (MISS). Es útil para depurar.
Excluir páginas dinámicas
No todas las páginas de PrestaShop deben cachearse. Por ejemplo, el carrito, la cuenta de usuario o el checkout deben ser dinámicas. Agrega esta regla dentro del bloque server:
# No cachear páginas de carrito, cuenta, etc.
location ~* /(carrito|cuenta|pedido|direccion|historial) {
fastcgi_cache_bypass 1;
fastcgi_no_cache 1;
}
Paso 3: Usar un plugin de caché (opcional pero recomendado)
Si no te sientes cómodo editando archivos de configuración, existen módulos para PrestaShop que automatizan parte del proceso.
Algunos módulos populares:
- Page Cache Pro (de pago)
- Advanced Cache (gratuito)
- Super Cache (gratuito)
Estos módulos generan archivos HTML estáticos y los sirven sin tocar PHP. Son una buena alternativa si tu hosting no te permite configurar Nginx.
[WARNING] Los módulos de caché pueden entrar en conflicto con otros módulos (como los de búsqueda o filtros). Siempre prueba en un entorno de desarrollo antes de activarlos en producción.
Paso 4: Optimizar la base de datos
La caché ayuda mucho, pero una base de datos lenta sigue siendo un cuello de botella.
- Desde el panel de administración de PrestaShop, ve a Parámetros avanzados > Base de datos.
- Haz clic en Optimizar tablas (esto repara y optimiza las tablas).
- Programa esta tarea semanalmente (puedes usar un cron job o un módulo).
Además, puedes usar herramientas como phpMyAdmin (desde Syspanel, por ejemplo) para ejecutar consultas de limpieza:
OPTIMIZE TABLE `ps_connections`, `ps_connections_page`, `ps_connections_source`;
[TIP] Elimina los logs de conexiones antiguos. En PrestaShop, ve a Parámetros avanzados > Rendimiento > Logs y vacíalos periódicamente.
Paso 5: Configurar la compresión Gzip
La compresión reduce el tamaño de los archivos que se envían al navegador. Se activa fácilmente.
Desde el archivo .htaccess (Apache)
Añade estas líneas al principio de tu .htaccess:
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript
</IfModule>
Desde Nginx
Dentro del bloque server, agrega:
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
Paso 6: Usar un CDN (Red de Distribución de Contenidos)
Un CDN almacena tus archivos estáticos (imágenes, CSS, JS) en servidores alrededor del mundo. Cuando un usuario visita tu tienda, los archivos se cargan desde el servidor más cercano, reduciendo la latencia.
Recomendamos Cloudflare (gratuito) o BunnyCDN (económico).
Para integrarlo con PrestaShop:
- Crea una cuenta en el CDN.
- Configura tu dominio en el CDN (cambia los DNS).
- En PrestaShop, ve a Parámetros avanzados > Rendimiento > CDN y activa la opción.
[INFO] Con Cloudflare, además de CDN, obtienes protección contra ataques DDoS y optimización de imágenes.
Paso 7: Monitorear el rendimiento
Después de aplicar todos estos cambios, debes comprobar que realmente funcionan.
Herramientas gratuitas:
- GTmetrix: te da una puntuación y recomendaciones.
- Google PageSpeed Insights: ideal para ver el impacto SEO.
- Pingdom Tools: mide el tiempo de carga desde diferentes ubicaciones.
Busca que tu tienda cargue en menos de 2 segundos y que el Time to First Byte (TTFB) sea inferior a 300 ms.
[WARNING] Si después de la caché ves que el TTFB sigue alto, el problema puede ser el servidor en sí (pocos recursos, mala configuración de PHP, etc.). Considera migrar a un hosting más potente.
Preguntas frecuentes (FAQ)
¿Puedo usar caché en un hosting compartido?
Depende. Algunos hostings compartidos permiten activar Varnish o Nginx desde el panel (como Syspanel). Otros no. Pregunta a tu proveedor.
¿La caché afecta a los precios o al stock?
Sí, si no configuras bien las exclusiones. Las páginas de producto con precio variable o stock dinámico deben excluirse de la caché o configurarse con un tiempo de vida corto (por ejemplo, 1 minuto).
¿Qué hago si mi tienda se ve rota después de activar la caché?
Es probable que algún módulo no sea compatible. Prueba a desactivar la caché temporalmente, limpia la caché de PrestaShop y vuelve a activarla módulo por módulo para identificar el culpable.
¿Cada cuánto debo limpiar la caché?
Depende de la frecuencia de actualización de tu tienda. Si añades productos a diario, programa una limpieza automática cada noche. Si cambias poco, puedes hacerlo manualmente una vez a la semana.
¿Syspanel (HestiaCP) permite configurar Nginx caché?
Sí, Syspanel (accesible por el puerto 2106) incluye un panel para gestionar Nginx. Puedes editar la configuración desde la sección Servidor Web o mediante archivos de configuración. Si no te sientes seguro, contacta con el soporte técnico.
Conclusión
Acelerar PrestaShop con caché en el servidor no es un lujo, es una necesidad. La combinación de caché interna, caché de Nginx, compresión Gzip y un CDN puede reducir el tiempo de carga de tu tienda de 5-6 segundos a menos de 1 segundo.
Recuerda que cada tienda es única. Prueba las configuraciones en un entorno de desarrollo antes de aplicarlas en producción. Y si algo no funciona, no dudes en pedir ayuda a tu proveedor de hosting o a un desarrollador especializado.
Con estos pasos, tu PrestaShop hosting speed mejorará notablemente, tus clientes estarán más contentos y Google te recompensará con mejores posiciones. ¡Manos a la obra!
