Cómo optimizar la velocidad de PrestaShop en Plesk (caché y ajustes)
[INFO] Este artículo está pensado para usuarios de Plesk que quieren que su tienda PrestaShop vuele. No necesitas ser un experto en servidores; solo sigue los pasos y verás una mejora notable en el rendimiento. Vamos a ello.
¿Tu tienda PrestaShop va lenta? ¿Los clientes se quejan de que las páginas tardan en cargar? No te preocupes, es un problema muy común, pero tiene solución. La velocidad de tu tienda online no solo afecta a la experiencia del usuario, sino que también es un factor clave para el SEO y, por tanto, para tus ventas.
En este artículo, te voy a guiar paso a paso para optimizar PrestaShop cuando está alojado en un servidor con Plesk. Veremos desde los ajustes internos de la tienda hasta la configuración del servidor, centrándonos en la Plesk caché y otros trucos de rendimiento tienda. El objetivo es que, al final, tengas una guía clara y práctica para acelerar PrestaShop sin necesidad de ser un gurú de la línea de comandos.
Entendiendo el Cuello de Botella: ¿Por Qué es Lenta tu Tienda?
Antes de lanzarnos a tocar botones, es importante entender de dónde viene la lentitud. Una tienda online es una aplicación compleja que necesita recursos del servidor para funcionar. Cada vez que un usuario visita una página, el servidor tiene que ejecutar código PHP, consultar la base de datos (MySQL/MariaDB) y enviar archivos estáticos (imágenes, CSS, JavaScript).
Cuando el tráfico aumenta o la configuración no es la adecuada, el servidor se satura y tarda más en responder. Los principales culpables suelen ser:
- PHP sin optimizar: La configuración de PHP (límites de memoria, ejecución, etc.) puede ser demasiado restrictiva o ineficiente.
- Caché desactivada o mal configurada: PrestaShop y el servidor generan las páginas dinámicamente. Sin caché, esto ocurre en cada visita, lo cual es un gasto enorme de recursos.
- Imágenes descomunales: Imágenes en PNG o JPG de varios megas sin comprimir son un lastre para la carga.
- Base de datos desorganizada: Con el tiempo, la base de datos acumula basura y registros que ralentizan las consultas.
- Archivos estáticos sin comprimir: El CSS y el JavaScript se pueden "minificar" y combinar para que pesen menos y se descarguen más rápido.
Vamos a atacar cada uno de estos puntos de forma práctica. No te asustes; todo es más fácil de lo que parece.
Primera Parada: Ajustes Internos de PrestaShop (El Panel de Control)
Tu tienda tiene un panel de administración donde podemos activar varias opciones de rendimiento sin tocar el servidor. Accede a tu back-office de PrestaShop y sigue estos pasos.
1. Activa el Modo Mantenimiento (Temporalmente)
Antes de hacer cambios importantes, es una buena práctica poner la tienda en modo mantenimiento. Así, si algo sale mal, los clientes no verán errores. Ve a Preferencias -> Mantenimiento y actívalo. No olvides desactivarlo al final.
2. Configura el Caché de Rendimiento de PrestaShop
PrestaShop tiene su propio sistema de caché. Vamos a activarlo y configurarlo para que sea efectivo.
Ve a Parámetros Avanzados -> Rendimiento.
- Caché de plantillas: Actívala y selecciona "Recompilar las plantillas si se han actualizado" solo si estás en desarrollo. Para una tienda en producción, lo mejor es "Forzar la compilación" o "No recompilar las plantillas". Esto evita que el sistema tenga que comprobar si las plantillas han cambiado en cada visita.
- Caché de combinación (CCC - Combine, Compress and Cache): Esta es una de las opciones más importantes. Activa todas las casillas:
- Combinar archivos JavaScript: Une todos los archivos JS en uno solo, reduciendo el número de peticiones.
- Combinar archivos CSS: Igual que el anterior, pero con las hojas de estilo.
- Comprimir archivos JavaScript y CSS con GZIP: Reduce el peso de los archivos antes de enviarlos al navegador.
- Minificar archivos JavaScript y CSS: Elimina espacios y comentarios innecesarios del código.
[TIP] Combina, comprime y minifica. Esta triple acción es el "santo grial" para reducir el tiempo de carga de los elementos estáticos. Es un cambio que se nota muchísimo.
-
Caché de consultas a la base de datos: Actívala. PrestaShop guardará los resultados de las consultas SQL más comunes para no tener que ejecutarlas de nuevo en cada visita.
-
Caché de resultados de Smarty: Actívala. Es similar a la anterior, pero para las plantillas.
3. Optimiza el Manejo de Sesiones
En el mismo menú de Rendimiento, busca la sección de "Gestión de sesiones". Asegúrate de tener "Permitir las sesiones en la base de datos" desactivado. Es preferible usar el sistema de archivos del servidor para esto, ya que es más rápido y pone menos presión en la base de datos.
4. Ajusta los Límites de Memoria y Tiempo de Ejecución
Esto es crucial. Si tu PHP no tiene suficiente memoria, la tienda se quedará bloqueada.
En Parámetros Avanzados -> Rendimiento, busca la sección "Parámetros de ejecución". Ajusta los siguientes valores:
- Límite de memoria: Al menos 256M (256 megabytes). Si tu tienda es grande, considera subirlo a 512M.
- Tiempo máximo de ejecución: Al menos 60 segundos. Esto evita que procesos largos (como importaciones) se corten a mitad de camino.
- Tiempo máximo para el envío de archivos: 120 segundos. Útil para subir imágenes o temas.
[WARNING] No pongas valores extremadamente altos si no son necesarios. Un límite de memoria de 1GB para una tienda pequeña es un desperdicio de recursos que podría afectar a otros sitios en el servidor.
Segunda Parada: Configuración de PHP en Plesk (El Panel del Servidor)
Ahora pasamos al panel de control de tu hosting, Plesk. Aquí controlamos la configuración del servidor web y de PHP.
1. Elige el Manejador de PHP Correcto
Plesk te permite elegir cómo se ejecuta PHP. Esta es una decisión crítica.
En Plesk, ve a tu dominio y entra en "Configuración de PHP". Busca la opción "Procesamiento PHP por".
- Módulo de Apache (mod_php): Es el más simple, pero no el más eficiente. Ejecuta PHP dentro del propio servidor Apache.
- CGI/FastCGI: Ejecuta PHP como un proceso separado. Es más seguro y estable.
- PHP-FPM: Esta es la opción recomendada para optimizar PrestaShop. Es mucho más rápida y escalable que las anteriores. Gestiona los procesos PHP de forma más eficiente.
[TIP] Si tu Plesk te ofrece PHP-FPM, selecciónalo sin dudar. Es la mejor opción para un rendimiento óptimo.
2. Ajusta los Parámetros de PHP-FPM
Una vez que hayas seleccionado PHP-FPM, puedes ajustar sus parámetros. En Plesk, esto suele estar en la sección "Configuración de PHP-FPM" o "Configuración del grupo de procesos".
- Modo de ejecución: Busca la opción "Modo dinámico" o "On-demand". Esto permite que el servidor cree procesos PHP solo cuando hay tráfico, ahorrando memoria.
- Número máximo de procesos (pm.max_children): Este es un valor importante. Depende de la memoria de tu servidor. Una regla general es dividir la memoria total del servidor entre la memoria que usa cada proceso PHP (suele ser unos 50-100MB). Si tienes 4GB de RAM y cada proceso usa 100MB, podrías poner 40.
- Número inicial de procesos (pm.start_servers): Un valor bajo, como 2 o 3, es suficiente.
- Máximo de peticiones por proceso (pm.max_requests): Establece un valor como 500 o 1000. Esto evita que los procesos se ejecuten para siempre y tengan fugas de memoria.
[INFO] No te obsesiones con los números exactos. Empieza con valores conservadores y ve monitorizando el uso de memoria de tu servidor. Plesk tiene herramientas de monitoreo que te ayudarán.
3. Ajusta memory_limit y max_execution_time en Plesk
En la misma pantalla de "Configuración de PHP", busca las opciones:
memory_limit: Asegúrate de que sea al menos 256M.max_execution_time: Al menos 60.upload_max_filesizeypost_max_size: Configúralos a un valor razonable, como 64M o 128M, para poder subir temas y módulos sin problemas.
Tercera Parada: Configuración de Caché a Nivel de Servidor (La Clave)
Ahora es el momento de hablar de la Plesk caché. Esto es lo que realmente marcará la diferencia.
1. Activa Varnish Cache (Si Está Disponible)
Varnish es un acelerador de aplicaciones web que se coloca delante de tu servidor web (Apache/Nginx) y guarda una copia de las páginas en memoria. Cuando un usuario pide una página, Varnish se la sirve al instante sin tener que ejecutar PHP ni consultar la base de datos.
En Plesk, ve a "Herramientas y Configuración" (en la esquina superior izquierda) y busca "Varnish Cache".
- Activa Varnish para tu dominio.
- Configura el TTL (Time To Live): Este es el tiempo que Varnish mantiene una página en caché. Para una tienda, un TTL de 120 segundos es un buen punto de partida. Puedes ajustarlo más tarde.
[WARNING] Varnish puede dar problemas si tu tienda tiene funciones muy dinámicas (como un carrito de compra). Sin embargo, PrestaShop está preparado para funcionar con Varnish y lo maneja bien. Eso sí, no olvides purgar la caché de Varnish después de hacer cambios en tu tienda (como modificar un producto). Plesk te permite hacerlo desde el panel.
2. Activa el Caché de Nginx
Nginx es un servidor web muy rápido que puede funcionar como proxy inverso (delante de Apache). Plesk tiene una opción para activar el caché de Nginx.
En Plesk, ve a tu dominio -> "Apache y Nginx".
- Busca la sección "Nginx" y asegúrate de que "Activar proxy" esté marcado.
- Localiza la sección "Caché" y activa "Activar el almacenamiento en caché".
- Puedes configurar el "Tiempo de vida de la caché" (por ejemplo, 120 segundos).
[TIP] Combina Varnish y Nginx para obtener el máximo rendimiento. Varnish se encarga de las páginas dinámicas y Nginx de los archivos estáticos. Es una combinación ganadora.
3. Optimiza Apache (Si lo Usas)
Si tu servidor usa Apache, hay algunos ajustes que puedes hacer en Plesk.
-
Activa la compresión GZIP: En "Apache y Nginx", busca la sección de "Directivas" o "Configuración adicional". Puedes añadir lo siguiente al archivo de configuración
.htaccessde tu tienda:<IfModule mod_deflate.c> AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript application/x-javascript </IfModule>Esto le dice a Apache que comprima los archivos antes de enviarlos.
-
Activa el Caché de Archivos Estáticos (mod_expires): Añade esto a tu
.htaccess:<IfModule mod_expires.c> ExpiresActive On ExpiresByType image/jpg "access plus 1 month" ExpiresByType image/jpeg "access plus 1 month" ExpiresByType image/gif "access plus 1 month" ExpiresByType image/png "access plus 1 month" ExpiresByType text/css "access plus 1 month" ExpiresByType application/javascript "access plus 1 month" </IfModule>Esto le dice al navegador del usuario que guarde los archivos estáticos en su caché local durante un mes, evitando descargarlos de nuevo en cada visita.
Cuarta Parada: Optimización de Imágenes y Base de Datos
Una vez que el servidor está optimizado, es hora de afinar el contenido.
1. Compresión de Imágenes
Las imágenes son, probablemente, el mayor lastre para la velocidad de una web.
- Usa el formato WebP: PrestaShop 1.7+ tiene soporte nativo para WebP. Este formato es mucho más ligero que PNG o JPG. Si tu versión no lo soporta, hay módulos gratuitos que lo hacen.
- Comprime las imágenes antes de subirlas: Utiliza herramientas como TinyPNG o Squoosh para reducir el peso de tus imágenes sin perder calidad visible.
- Configura el tamaño de las imágenes en PrestaShop: Ve a Parámetros Avanzados -> Imágenes. Regenera las miniaturas con los tamaños correctos para tu tema. Usar imágenes de 1000x1000 cuando tu tienda las muestra a 300x300 es un desperdicio.
2. Limpieza y Optimización de la Base de Datos
Con el tiempo, tu base de datos se llena de "basura" (sesiones caducadas, carritos abandonados, etc.).
- Usa el módulo nativo de PrestaShop: En el back-office, ve a Parámetros Avanzados -> Base de Datos. PrestaShop tiene una herramienta para optimizar las tablas.
- Limpia las sesiones caducadas: En el mismo menú, puedes eliminar las sesiones antiguas.
- Usa un módulo de limpieza: Hay módulos de terceros (gratuitos y de pago) que hacen una limpieza más profunda, eliminando tablas huérfanas y datos innecesarios.
[TIP] Haz una copia de seguridad de tu base de datos antes de ejecutar cualquier mantenimiento. Es una regla de oro que te puede salvar de un susto.
Quinta Parada: Monitorización y Pruebas
Después de todos estos cambios, es hora de ver los resultados.
1. Usa Herramientas de Testeo de Velocidad
- Google PageSpeed Insights: Te dará una puntuación y consejos específicos para mejorar.
- GTmetrix: Proporciona un análisis detallado de los tiempos de carga y los elementos que más tardan.
- Pingdom Website Speed Test: Otra excelente opción para ver el tiempo de carga desde diferentes ubicaciones.
2. Purgar Cachés
Después de los cambios, es fundamental purgar todas las cachés para que los ajustes se apliquen.
- En PrestaShop: Ve a Parámetros Avanzados -> Rendimiento y pulsa el botón "Vaciar la caché".
- En Plesk: Si has activado Varnish, ve a su panel y pulsa el botón de purgar. También puedes reiniciar Apache y Nginx desde "Herramientas y Configuración" -> "Servicios".
3. Monitoriza el Servidor
Plesk tiene herramientas de monitorización en "Herramientas y Configuración" -> "Monitorización del servidor". Presta atención al uso de CPU y memoria. Si el uso de memoria está cerca del 100%, necesitas ajustar los parámetros de PHP-FPM o aumentar la RAM del servidor.
Preguntas Frecuentes (FAQ)
¿Cuánto tiempo se tarda en notar la mejora?
Inmediatamente después de purgar las cachés y realizar los ajustes, notarás una mejora. Pued
