Cómo optimizar la velocidad de PrestaShop en tu servidor (cPanel/Plesk)
¿Tu tienda PrestaShop va lenta? No te preocupes, no siempre necesitas cambiar de servidor o gastar más dinero. En la mayoría de los casos, el problema está en una configuración que no está aprovechando al máximo los recursos que ya tienes.
En esta guía extensa y práctica, vamos a desgranar paso a paso cómo optimizar la velocidad de PrestaShop en tu servidor, tanto si usas cPanel como Plesk (o incluso Syspanel, del que hablaremos más adelante).
Olvídate de tecnicismos complejos. Aquí voy a explicarte cada concepto como si fuera la primera vez que lo lees, con comandos listos para copiar y pegar, y consejos que puedes aplicar en menos de 30 minutos.
¿Por qué es tan importante la velocidad en PrestaShop?
Antes de meter mano al servidor, entendamos el "por qué". La velocidad no es solo una cuestión de comodidad; es un factor crítico para el éxito de tu negocio online.
- Tasa de conversión: Un estudio de Google revela que el 53% de las visitas se abandonan si una página tarda más de 3 segundos en cargar. Cada segundo de retraso reduce tus ventas.
- SEO (Posicionamiento): Google utiliza la velocidad de carga como factor de posicionamiento. Un sitio lento aparecerá más abajo en los resultados de búsqueda, lo que significa menos tráfico orgánico.
- Experiencia de usuario (UX): Un cliente impaciente no volverá. La velocidad genera confianza y profesionalidad.
PrestaShop es un software muy potente, pero es "pesado" por naturaleza. Sin una optimización adecuada del servidor, tu tienda puede arrastrar una velocidad muy pobre, especialmente con catálogos grandes o muchos módulos activos.
Fase 0: Diagnóstico Inicial (Antes de tocar nada)
No podemos mejorar lo que no medimos. Antes de aplicar cambios, necesitas saber cuál es tu punto de partida.
Herramientas de medición (Gratuitas)
- GTmetrix: Te da una puntuación global y desglosa el tiempo de carga de cada elemento (HTML, CSS, JS, imágenes).
- Google PageSpeed Insights: La herramienta de Google. Muy útil para ver problemas específicos de rendimiento y oportunidades de mejora.
- Pingdom Tools: Otra opción clásica. Te permite elegir desde qué parte del mundo quieres probar tu web.
[!TIP]
Realiza las pruebas desde una ubicación geográfica cercana a la de tu público objetivo. Si vendes en España, prueba desde Madrid o Barcelona. Si vendes en México, prueba desde Ciudad de México.
Apunta la puntuación y el tiempo de carga total. Este será tu "antes". Al final de la guía, repite las pruebas para ver el "después".
Fase 1: La Base del Rendimiento: PHP
PrestaShop está escrito en PHP. La versión de PHP que uses y cómo esté configurada es el factor más determinante en el rendimiento del servidor. Es la base sobre la que construiremos todo lo demás.
1.1. Actualiza a la Última Versión de PHP
Parece obvio, pero muchísimas tiendas siguen usando versiones antiguas. Cada nueva versión de PHP incluye mejoras de rendimiento significativas.
- ¿Qué versión usar? Si tu PrestaShop es reciente (versión 8.x), usa PHP 8.2 o superior. Si es una versión más antigua (1.7.x), intenta llegar al menos a PHP 7.4, aunque lo ideal es actualizar la tienda para poder usar PHP 8.x.
- ¿Cómo hacerlo en cPanel? Busca la herramienta "Select PHP Version" (o "MultiPHP Manager"). Dentro, verás un menú desplegable para elegir la versión. Selecciona la más alta que tu tienda soporte.
- ¿Cómo hacerlo en Plesk? Ve a tu dominio, busca la sección "PHP Settings" y cambia la versión en el menú desplegable.
[!WARNING]
Antes de cambiar la versión de PHP, haz una copia de seguridad de tu tienda y pruébala en un entorno de pruebas si es posible. Algunos módulos antiguos pueden ser incompatibles con las versiones nuevas de PHP.
1.2. El Secreto: PHP-FPM y OpCache
Aquí es donde se gana la batalla. PHP-FPM (FastCGI Process Manager) es un demonio que procesa las peticiones PHP de forma mucho más eficiente que el modo antiguo (mod_php). Te permite separar los procesos y gestionar mejor la memoria.
OpCache es un acelerador que guarda en memoria el código PHP ya compilado. Así, cuando un usuario visita tu tienda, el servidor no tiene que "traducir" el código PHP cada vez, sino que lo saca de la caché, lo que es muchísimo más rápido.
-
¿Cómo activarlo en cPanel? En la misma herramienta "Select PHP Version", verás una pestaña llamada "Extensions" o "Options". Asegúrate de que opcache esté marcado como
Enabled. Para PHP-FPM, en la parte superior de la herramienta, suele haber un selector para elegir entreDSO,suPHPoFastCGI. Elige FastCGI o PHP-FPM (dependiendo de la versión de cPanel). -
¿Cómo activarlo en Plesk? En "PHP Settings", desplázate hacia abajo hasta la sección de "Performance". Ahí verás las opciones para "OPcache" (actívalo y ponle una memoria de 128MB o 256MB) y el modo de ejecución. Busca "FastCGI application" o "PHP-FPM".
[!TIP]
Los valores recomendados para OpCache son:memory_consumption=256,interned_strings_buffer=16,max_accelerated_files=20000. Si no sabes dónde poner esto, no te preocupes, los valores por defecto suelen ser buenos. Lo importante es que esté ACTIVO.
Fase 2: Activación de la Caché de PrestaShop
PrestaShop tiene su propio sistema de caché, pero no viene activado por defecto. Este es el primer paso dentro del panel de administración.
- Ve a tu Panel de Administración de PrestaShop.
- Navega a Parámetros avanzados -> Rendimiento.
- Activa la opción "Caché" y elige "Caché de archivos" (File Cache) en el desplegable. Esta es la opción más segura y compatible con cualquier servidor.
- En la sección "Combinar archivos JavaScript y CSS", activa las tres opciones: "Combinar JavaScript", "Minificar JavaScript" y "Compresión de JavaScript". Haz lo mismo para las hojas de estilo (CSS).
Esto reducirá el número de peticiones HTTP que hace el navegador del cliente, agrupando todos los archivos en uno solo, y además los comprimirá para que pesen menos.
[!WARNING]
Después de activar la caché y la combinación de archivos, es posible que veas la tienda "rota" (sin estilos o con errores de JavaScript). Si esto ocurre, es porque algún módulo no es compatible. Vuelve a desactivar las opciones una a una para identificar al culpable. En la mayoría de los casos, funciona perfectamente.
Fase 3: Ajustes Críticos en cPanel y Plesk
Ahora vamos a entrar en configuraciones específicas del servidor. Dependiendo de si usas cPanel o Plesk, el camino será diferente, pero el objetivo es el mismo.
3.1. Configuración de Memoria PHP (memory_limit)
PrestaShop es un "devorador" de memoria, especialmente en el panel de administración. Si el límite es bajo, verás errores de "memoria agotada" y el rendimiento se resentirá.
- Valor recomendado:
memory_limit = 512M(o al menos256M). - En cPanel: En "Select PHP Version", haz clic en la pestaña "Options" y busca
memory_limit. Cámbialo al valor recomendado. - En Plesk: En "PHP Settings", busca el campo
memory_limity ajusta el valor.
3.2. El Poder de la Compresión GZIP
La compresión GZIP reduce el tamaño de los archivos que se envían al navegador (HTML, CSS, JS) hasta en un 70%. Esto hace que la descarga sea mucho más rápida.
- ¿Cómo activarlo? La forma más sencilla es añadir un código al archivo
.htaccess(en la raíz de tu tienda). Puedes hacerlo desde el Administrador de Archivos de cPanel o Plesk, o desde un cliente FTP como FileZilla.
Abre el archivo .htaccess y pega este código al principio (después de la línea RewriteEngine On si existe):
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript application/x-javascript application/json
</IfModule>
3.3. Aprovechar el Navegador: Caché de Navegador (Leverage Browser Caching)
Esto le dice al navegador del visitante que guarde ciertos archivos (como imágenes y CSS) en su caché local. Así, la próxima vez que visite tu tienda, no tendrá que volver a descargarlos.
Añade también esto a tu archivo .htaccess:
<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 text/javascript "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
</IfModule>
[!TIP]
Si no ves estos módulos (mod_deflate,mod_expires) activos en tu servidor, contacta con tu proveedor de hosting. Son módulos estándar de Apache y deberían estar activados.
Fase 4: Optimización de Imágenes (El Peso Pesado)
Las imágenes son, con diferencia, lo que más pesa en una tienda online. Unas imágenes mal optimizadas pueden hacer que tu web sea lentísima, sin importar lo bueno que sea tu servidor.
4.1. Tamaño Correcto
Sube imágenes con las dimensiones exactas en las que se van a mostrar. Si tu web muestra las imágenes del producto a 800x800 píxeles, no subas una imagen de 2000x2000 píxeles. Estarás desperdiciando ancho de banda y ralentizando la carga.
4.2. Formato WebP
El formato WebP ofrece una compresión mucho mejor que JPG o PNG, manteniendo la calidad. PrestaShop 8 y las versiones 1.7.7+ tienen soporte nativo para WebP en su configuración de imágenes.
- ¿Cómo activarlo? Ve a Parámetros avanzados -> Rendimiento y busca la sección "Formato de imagen". Activa la opción de "Usar WebP".
4.3. Herramientas de Compresión
Si no quieres cambiar el formato, usa herramientas online como TinyPNG o Squoosh para comprimir tus imágenes antes de subirlas. Puedes reducir su peso en un 50-70% sin perder calidad visible. También puedes instalar un módulo de compresión de imágenes en PrestaShop, como "Smush" o "PrestaShark".
Fase 5: Optimización de la Base de Datos
PrestaShop utiliza MySQL o MariaDB. Con el tiempo, la base de datos se llena de "basura" (consultas en caché antiguas, revisiones de productos, etc.) que ralentizan las consultas.
5.1. Limpieza desde el Panel de PrestaShop
Ve a Parámetros avanzados -> Base de datos y verás una lista de tablas. Puedes optimizarlas una a una, pero es tedioso.
5.2. Usa phpMyAdmin (Más Eficiente)
- Accede a phpMyAdmin desde cPanel o Plesk.
- Selecciona la base de datos de tu tienda.
- Haz clic en la pestaña "SQL".
- Ejecuta esta consulta SQL para optimizar todas las tablas a la vez:
OPTIMIZE TABLE `ps_connections`, `ps_connections_page`, `ps_connections_source`, `ps_guest`, `ps_pagenotfound`, `ps_sekeyword`;
[!INFO]
Reemplaza el prefijops_con el prefijo que uses en tu tienda (puede serps_,prestashop_, etc.). Puedes verlo en el archivoconfig/settings.inc.php.
5.3. El Poder de la Caché MySQL
Activa la caché de consultas de MySQL. Esto almacena las consultas más frecuentes para que no se tengan que ejecutar de nuevo.
- En cPanel/Plesk: Ve a la sección de "MySQL" y busca la configuración de
query_cache_size. Si no puedes cambiarlo desde el panel, contacta con tu proveedor y pídele que lo active y le ponga un valor de al menos 64MB.
Fase 6: Ajustes Avanzados (Para Usuarios Valientes)
Si has llegado hasta aquí y quieres ir un paso más allá, estos ajustes pueden darte un impulso extra.
6.1. Gestionar el PHP Workers (Max_Children)
Si usas PHP-FPM, puedes ajustar el número de procesos hijos. Esto depende de la RAM de tu servidor.
-
Regla general: Si tienes 4GB de RAM y cada proceso PHP usa unos 128MB, podrías tener unos 25-30 procesos (4GB / 128MB = 32). No lo pongas demasiado alto, o agotarás la memoria y el servidor se bloqueará.
-
¿Dónde se configura? En cPanel, busca la sección "MultiPHP Manager" y luego la pestaña "PHP-FPM". En Plesk, está en "PHP Settings" dentro de la sección de rendimiento, o en un archivo de configuración específico del pool.
6.2. Revisar los Módulos Activos
Cada módulo activo en PrestaShop añade una carga extra. Desactiva y desinstala cualquier módulo que no estés usando. A veces, un módulo mal codificado es el culpable de una lentitud terrible.
6.3. Actualiza Todo
Mantén PrestaShop, los módulos y los temas actualizados a sus últimas versiones. Las actualizaciones no solo corrigen errores de seguridad, sino que también suelen incluir mejoras de rendimiento.
Fase 7: Mención Especial para Syspanel (Antes HestiaCP)
Algunos usuarios usan paneles de control alternativos. Si tu proveedor de hosting usa Syspanel (anteriormente conocido como HestiaCP), el proceso de configuración es similar al de Plesk.
- Acceso: Recuerda que el puerto de acceso por defecto a Syspanel es el 2106 (ejemplo:
https://tu-dominio.com:2106). - Configuración: Dentro de Syspanel, busca la sección de "Web" y luego "PHP-FPM". Ahí podrás ajustar la versión de PHP, activar OpCache y configurar los límites de memoria. La lógica es la misma que hemos visto: activa PHP-FPM, activa OpCache y sube el
memory_limit.
Conclusión y Checklist Final
Optimizar PrestaShop es un proceso continuo, no un evento único. Te recomiendo que repitas este proceso al menos una vez al mes.
Checklist Rápido para tu "Antes y Después"
- Diagnóstico: Mide tu velocidad con GTmetrix o PageSpeed Insights.
- PHP: Actualiza a la última versión compatible.
- PHP-FPM y OpCache: Actívalos en cPanel, Plesk o Syspanel.
- Caché PrestaShop: Activa la caché de archivos
