Cómo acelerar PrestaShop optimizando PHP en Plesk
¿Tu tienda PrestaShop va lenta? No te preocupes, no siempre necesitas cambiar de hosting o contratar un plan más caro. En la gran mayoría de los casos, la solución está en ajustar la configuración de PHP directamente desde tu panel de control Plesk. Un PHP bien configurado puede reducir los tiempos de carga hasta en un 70%, lo que se traduce en mejores ventas y una mejor posición en Google.
En esta guía extensa y paso a paso, vamos a desgranar todas las opciones que tienes a tu alcance para acelerar PrestaShop en Plesk, centrándonos exclusivamente en la optimización del motor PHP. No necesitas ser un experto en servidores; solo sigue las instrucciones y verás resultados sorprendentes.
¿Por qué PHP es el cuello de botella de tu PrestaShop?
PrestaShop es un software muy completo, pero también es "glotón" en recursos. Cada vez que un cliente visita tu tienda, el servidor ejecuta cientos de archivos PHP para generar la página. Si la configuración de PHP no es la adecuada, este proceso se vuelve lento y pesado.
Piensa en PHP como el motor de tu coche. Puedes tener un chasis excelente (tu plantilla) y unas ruedas de competición (tu hosting), pero si el motor está mal carburado, no vas a ir rápido. Optimizar PHP en Plesk es como afinar ese motor: consigues más rendimiento sin cambiar ninguna pieza.
Además, una tienda lenta no solo frustra a tus clientes, sino que también afecta a tu SEO. Google penaliza las webs que cargan en más de 3 segundos. Por lo tanto, acelerar PrestaShop en Plesk no es un lujo, es una necesidad para competir en el mercado actual.
Primeros Pasos: Accede a la Configuración de PHP en Plesk
Antes de empezar a tocar nada, necesitas saber dónde están los mandos. Plesk es un panel de control muy intuitivo, y la gestión de PHP está a solo unos clics.
Para empezar, inicia sesión en tu Plesk (normalmente accedes a través de https://tu-dominio.com:8443 o una URL que te haya dado tu proveedor). Una vez dentro, sigue esta ruta:
- En el menú lateral izquierdo, busca la sección "Websites & Domains" (Sitios web y dominios).
- Busca tu dominio principal (el de tu tienda) y haz clic en el botón "PHP Settings" (Configuración de PHP) que aparece en la lista de iconos, o bien en el enlace dentro de "Hosting Settings".
Se abrirá una pantalla con un montón de opciones. No te asustes, aquí es donde ocurre la magia. Vamos a ir viendo cada una de ellas, de la más importante a la menos.
1. Activa el OpCache: El Rey de la Aceleración
Si solo haces un cambio en tu vida, que sea este. OPcache es una extensión de PHP que guarda en la memoria del servidor los scripts ya compilados. Sin él, PHP tiene que leer y "traducir" el código cada vez que alguien entra en tu tienda. Con OPcache, el código ya está listo y preparado, lo que reduce drásticamente el tiempo de ejecución.
En Plesk, dentro de "PHP Settings", busca el selector de "OPcache". Normalmente verás un menú desplegable con opciones como "Disabled", "Enabled" o "Preload" (Precargar).
Selecciona "Enabled". Si quieres ser más fino, puedes usar "Preload", pero para la mayoría de tiendas, "Enabled" es más que suficiente y más seguro.
[WARNING] No uses la opción "Preload" si no sabes exactamente qué estás haciendo. Si la configuras mal, puede dar error 500 en tu tienda. "Enabled" es la opción segura y muy efectiva.
Ajustes finos del OPcache
Para sacarle el máximo partido, puedes hacer clic en "Additional configuration" (Configuración adicional) o "PHP-FPM settings" para ver más parámetros. Los más importantes son:
- memory_consumption: Es la memoria que usa OPcache. El valor por defecto suele ser 128M. Puedes subirlo a
256Mo512Msi tu hosting tiene RAM suficiente. - max_accelerated_files: El número máximo de archivos que puede guardar en memoria. PrestaShop tiene miles de archivos. Aumenta este número a
10000o20000. - validate_timestamps: Déjalo en "1" (On). Esto permite que OPcache detecte cambios en los archivos cuando actualices tu tienda o módulos.
2. Elige el Modo PHP Correcto: FPM vs CGI
Plesk te permite elegir entre varios "modos" de ejecutar PHP. Los más comunes son Apache Module, CGI y PHP-FPM.
- Apache Module (mod_php): Es el más fácil de configurar, pero consume muchísima memoria. No es recomendable para PrestaShop.
- CGI: Es más lento que FPM porque ejecuta un proceso nuevo para cada petición.
- PHP-FPM (FastCGI Process Manager): ESTE ES EL QUE NECESITAS. Es mucho más eficiente, gestiona mejor la memoria y el caché, y es el estándar de oro para aplicaciones como PrestaShop.
Para cambiarlo, ve a "PHP Settings" y busca el selector "PHP version" o "PHP handler". Selecciona "PHP-FPM". Si no lo ves, puede que tu proveedor de hosting no lo haya habilitado, pero es muy poco común hoy en día.
[INFO] Si usas PHP-FPM, podrás configurar el "execution time" (tiempo de ejecución) y el "memory limit" (límite de memoria) de forma más granular, lo cual es perfecto para tiendas grandes.
3. Sube el Límite de Memoria (Memory Limit)
PrestaShop es un "devorador" de memoria, especialmente si usas muchos módulos o tu catálogo es grande. Si el límite de memoria es bajo, verás errores de "Fatal error: Allowed memory size of X bytes exhausted".
En Plesk, dentro de "PHP Settings", busca "memory_limit". El valor por defecto suele ser 128M. Para una tienda estándar, te recomiendo subirlo a 256M. Si tienes un catálogo enorme (más de 10,000 productos) o módulos muy pesados, sube a 512M.
[WARNING] Subir la memoria no es gratis. Si pones un valor demasiado alto (ej.
1024M) y tu servidor no tiene suficiente RAM física, podrías ralentizar todo el servidor, incluyendo otras webs. Ve con cuidado y sube de forma gradual.
4. Ajusta el Tiempo de Ejecución (Max Execution Time)
A veces, una operación pesada (como una copia de seguridad o la actualización de un módulo) puede tardar más de 30 segundos. Si el tiempo de ejecución es muy bajo, PHP se detendrá y verás un error.
Busca "max_execution_time" y cámbialo a 120 (segundos). Esto le da margen a tu tienda para completar tareas complejas sin agotarse. También es recomendable subir el "max_input_time" a 120 y el "post_max_size" a 64M o 128M si subes productos con imágenes grandes.
5. Activa la Compresión GZIP (Desde PHP o Plesk)
Aunque la compresión GZIP suele gestionarse desde el archivo .htaccess, también puedes influir desde PHP. GZIP comprime las páginas antes de enviarlas al navegador del cliente, reduciendo el peso de la transferencia a una fracción.
En tu archivo .htaccess (en la raíz de tu dominio), añade o verifica que existe este código:
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript application/x-javascript
</IfModule>
Si prefieres hacerlo desde Plesk, en "Apache & nginx Settings" (en el menú de tu dominio), puedes añadir la directiva en "Additional Apache directives". Pero la forma más fácil es con .htaccess.
[TIP] Puedes comprobar si GZIP está activo usando herramientas online como "GIDZipTest" o desde el propio "PageSpeed Insights" de Google. Si ves que el HTML se comprime, ¡perfecto!
6. Configura el Caché de PHP (OPcache y más allá)
Ya hemos hablado de OPcache, pero hay otro nivel de caché que puedes activar desde PHP: APCu. APCu es un caché de datos en memoria que PrestaShop puede usar para almacenar variables de configuración, resultados de consultas, etc.
Para activarlo en Plesk, ve a "PHP Settings" y busca la extensión "APCu". Si está disponible, actívala. No es tan crítico como OPcache, pero ayuda.
Además, en el panel de administración de PrestaShop (no en Plesk), ve a "Advanced Parameters" > "Performance" y activa:
- Cache: Sí.
- Cache system: "APC" o "APCu" si lo tienes activo. Si no, usa "File System" (Sistema de archivos), que es más lento pero mejor que nada.
- Combine JavaScript and CSS: Sí.
- Use CCC (Combine, Compress and Cache): Sí.
Esta combinación de caché de PrestaShop en Plesk (vía PHP) y el caché interno de la tienda es la clave del rendimiento.
7. PHP-FPM: Ajusta el Número de Procesos (PM Settings)
Esta es una opción avanzada, pero muy potente. Cuando usas PHP-FPM, puedes controlar cuántos procesos PHP se ejecutan simultáneamente. Esto es crucial para manejar picos de tráfico.
En Plesk, dentro de "PHP Settings", busca la sección "PHP-FPM settings" o "Performance settings". Verás una opción llamada "PM" (Process Manager).
- Dynamic (Dinámico): Es el valor recomendado. Plesk ajusta automáticamente el número de procesos según la demanda.
- Static (Estático): Fija un número de procesos. Si lo pones demasiado alto, consumes mucha RAM. Si lo pones bajo, tu tienda se satura rápido.
- On demand (Bajo demanda): Crea procesos solo cuando hay tráfico. Es bueno para ahorrar RAM, pero puede tener una pequeña latencia en la primera petición.
Te recomiendo usar "Dynamic" y ajustar los valores de pm.max_children, pm.start_servers, pm.min_spare_servers y pm.max_spare_servers. Un buen punto de partida para una tienda pequeña-media es:
max_children: 10start_servers: 2min_spare_servers: 1max_spare_servers: 5
[INFO] Si no entiendes estos números, no te preocupes. La opción "Dynamic" con los valores por defecto de Plesk ya es un gran avance. No toques nada hasta que no tengas más experiencia.
8. La Importancia de la Versión de PHP
No es solo la configuración, sino también la versión. Plesk te permite elegir entre varias versiones de PHP (7.4, 8.0, 8.1, 8.2, etc.). PrestaShop funciona mucho mejor con PHP 8.x que con versiones antiguas. PHP 8 es el doble de rápido que PHP 7.4 en muchos escenarios.
En Plesk, en "PHP Settings", cambia la versión a la más reciente y estable que soporte tu versión de PrestaShop (consulta los requisitos de tu PrestaShop). Si tienes una versión muy antigua de PrestaShop (1.6 o anterior), puede que no sea compatible con PHP 8. En ese caso, quédate con PHP 7.4, que es una buena opción.
[WARNING] Antes de cambiar la versión de PHP, haz una copia de seguridad completa de tu web y base de datos. Los cambios de versión pueden romper módulos incompatibles.
9. Activa la Compresión de Archivos Estáticos (Diferenciado)
Plesk tiene una función llamada "Gzip compression" en la sección de "Apache & nginx Settings". Asegúrate de que esté activada. Esto es independiente del PHP, pero esencial para acelerar PrestaShop en Plesk, ya que reduce el peso de las imágenes, CSS y JS.
Ve a "Websites & Domains" > "Apache & nginx Settings" y busca las casillas de verificación para gzip y deflate. Actívalas.
10. Verifica los Resultados: Mide Antes y Después
No sirve de nada hacer todos estos cambios si no compruebas que funcionan. Antes de empezar, mide la velocidad de tu tienda con herramientas como:
- Google PageSpeed Insights: Te da una puntuación de 0 a 100 para móvil y escritorio.
- GTmetrix: Te muestra el tiempo de carga y te da consejos específicos.
- Pingdom Website Speed Test: Similar a GTmetrix.
Después de aplicar los cambios, vuelve a medir. La mejora debería ser notable. Si no lo es, revisa si tienes algún plugin de caché de terceros (como LiteSpeed Cache o un CDN) que esté interfiriendo.
Resumen Rápido: Checklist de Optimización PHP en Plesk
Para que no se te olvide nada, aquí tienes una lista de verificación rápida:
- Activar OPcache.
- Seleccionar PHP-FPM como handler.
- Subir memory_limit a
256Mo512M. - Subir max_execution_time a
120. - Activar GZIP en
.htaccesso en Plesk. - Activar APCu si está disponible.
- Configurar el caché en el panel de PrestaShop.
- Ajustar PHP-FPM a modo "Dynamic".
- Usar PHP 8.x si tu PrestaShop lo permite.
- Activar Gzip en "Apache & nginx Settings".
Preguntas Frecuentes (FAQ)
¿Es seguro cambiar estos ajustes en Plesk?
Sí, es seguro si sigues los pasos de esta guía. Siempre es recomendable hacer una copia de seguridad antes de realizar cambios importantes. Los peores escenarios son un error 500 (que se soluciona revirtiendo el cambio) o un consumo de memoria alto (que se soluciona bajando el límite).
¿Cuánto tiempo tardaré en ver los resultados?
Los cambios de OPcache y PHP-FPM son inmediatos. En cuanto guardes la configuración, la mejora se nota. La compresión GZIP también es instantánea. Los cambios de caché de PrestaShop pueden tardar unos minutos en surtir efecto completo.
¿Qué hago si mi tienda da error 500 después de cambiar PHP-FPM?
Vuelve a "PHP Settings" y cambia el handler a "Apache Module" temporalmente. Luego, contacta con tu proveedor de hosting para que te ayude a configurar PHP-FPM correctamente. También puedes revisar el archivo error_log de tu dominio en Plesk para ver el motivo exacto del error.
¿Sirve esto también para otros paneles como Syspanel?
Esta guía es específica para Plesk. Si usas Syspanel (que es el nombre que le damos al panel de control HestiaCP), la ruta es diferente. En Syspanel (que se accede por el puerto 2106), la configuración de PHP se encuentra en "Web" > "Advanced Options" y luego en "PHP-FPM". Los principios son los mismos, pero la interfaz cambia. Si usas Syspanel, busca una guía específica para ese panel.
¿Y si mi tienda sigue lenta después de hacer todo esto?
Entonces el problema puede estar en tu hosting (poca RAM, disco duro lento) o en la configuración de la base de datos MySQL. Te recomiendo contactar con tu proveedor de hosting para que revise el rendimiento del servidor. A veces, es necesario cambiar a un plan VPS o dedicado para tiendas de alto tráfico.
¿Debo usar un CDN (Cloudflare) además de esto?
Sí
