Cómo optimizar la velocidad de PrestaShop en DirectAdmin
Si tienes una tienda online con PrestaShop alojada en un servidor con panel DirectAdmin, sabes que la velocidad de carga es crucial para las ventas. Un sitio lento no solo molesta a los clientes, sino que también perjudica tu posicionamiento en Google. Por eso, hoy te voy a guiar paso a paso por las mejores prácticas para optimizar PrestaShop en un entorno DirectAdmin, enfocándonos en el rendimiento tienda online desde la perspectiva de un SysAdmin optimización.
No necesitas ser un experto en Linux para seguir esta guía. Solo necesitas acceso a tu panel de control DirectAdmin y, en algunos pasos, acceso SSH (que te explicaré cómo usar). Vamos a desglosar todo en acciones concretas, desde la configuración del servidor hasta los ajustes internos de PrestaShop.
1. Preparación del Entorno: PHP y Servidor Web en DirectAdmin
Antes de tocar PrestaShop, debemos asegurarnos de que el servidor (Apache o Nginx) y PHP estén configurados para exprimir al máximo el rendimiento.
1.1. Elige la Versión Correcta de PHP
PrestaShop es exigente con la versión de PHP. Usar una versión antigua es el primer error de velocidad. Accede a tu DirectAdmin y ve a Account Manager > PHP Selector (o PHP Version Selector).
Selecciona PHP 8.1 o superior (PrestaShop 8 recomienda PHP 8.1+). Las versiones más nuevas son hasta un 30% más rápidas que PHP 7.4.
1.2. Activa las Extensiones PHP Esenciales
Dentro del mismo PHP Selector, asegúrate de tener activadas estas extensiones (marca las casillas):
- OPcache: Almacena en caché el código PHP compilado. Es la extensión más importante para la velocidad.
- GD Library o Imagick: Para procesar imágenes.
- cURL: Para conexiones externas.
- mbstring: Para caracteres especiales.
- PDO y mysqli: Para la base de datos.
- Zip y Zlib: Para compresión.
[TIP]: Si ves la opción Redis o Memcached, actívalas también. Las usaremos más adelante para la caché.
1.3. Configura el Servidor Web (Apache/Nginx)
DirectAdmin suele usar Apache con mod_pagespeed o LiteSpeed. Si tienes Apache, puedes forzar la compresión Gzip.
Ve a DirectAdmin > Custom HTTPD Config (o Apache Configuration). Busca la sección de tu dominio y añade estas líneas dentro del <VirtualHost>:
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript application/x-javascript
</IfModule>
[INFO]: Si tu servidor usa Nginx como proxy inverso (algo común en DirectAdmin con plugins), la configuración se hace desde el archivo nginx.conf. Pide a tu hosting que active la compresión Gzip a nivel de servidor.
2. Base de Datos: El Corazón de tu Tienda
La base de datos de PrestaShop suele ser el cuello de botella. Aquí tienes cómo optimizarla.
2.1. Usa un Motor de Almacenamiento Eficiente
Asegúrate de que todas las tablas de tu base de datos usen InnoDB (no MyISAM). Desde phpMyAdmin (accesible desde DirectAdmin > phpMyAdmin), selecciona tu base de datos y ejecuta:
ALTER TABLE nombre_de_tu_tabla ENGINE = InnoDB;
Pero es más fácil: en phpMyAdmin, ve a la pestaña Operations y en Table options cambia el motor a InnoDB. Repite para todas las tablas.
2.2. Indexa las Tablas Correctamente
PrestaShop ya viene con índices, pero con el tiempo se fragmentan. Ejecuta esta consulta SQL desde phpMyAdmin para optimizar todas las tablas:
OPTIMIZE TABLE `ps_category_product`, `ps_product`, `ps_stock_available`, `ps_product_shop`;
Repite para las tablas que más uses (categorías, productos, pedidos). Esto reorganiza el espacio y acelera las consultas.
2.3. Caché de Consultas (Query Cache)
Si tu servidor usa MySQL o MariaDB, activa el query cache. Accede a DirectAdmin > MySQL Management > Edit MySQL Config. Busca las líneas:
query_cache_type = 1
query_cache_size = 64M
query_cache_limit = 2M
Guarda y reinicia MySQL desde Services Monitor.
[WARNING]: En MariaDB 10.1.7+ y MySQL 8.0+, el query cache está descontinuado. En ese caso, salta este paso y usa Redis para la caché (lo veremos más adelante).
3. Caché y Compresión en PrestaShop
Ahora pasamos a la configuración interna de tu tienda. Estos ajustes son clave para optimizar PrestaShop.
3.1. Activa la Caché Interna
Ve al Back Office de PrestaShop > Configuración Avanzada > Rendimiento.
- Caché: Selecciona Sí.
- Sistema de almacenamiento en caché: Elige Memcached o APCu. Si tu servidor no los soporta, usa File System (es más lento, pero mejor que nada).
- Caché de plantillas (Smarty): Actívala y pon Recopilar plantillas en Nunca recopilar (solo si no estás modificando la plantilla constantemente).
- Caché de archivos CSS y JavaScript: Actívala y elige Aplastar en un solo archivo y Comprimir.
3.2. Configura Redis para Caché (Recomendado)
Si tu servidor tiene Redis instalado (pregunta a tu hosting o instálalo desde SSH), es la mejor opción.
Desde DirectAdmin, ve a PHP Selector y activa la extensión redis. Luego, en el Back Office de PrestaShop, ve a Configuración Avanzada > Rendimiento > Sistema de almacenamiento en caché y selecciona Redis. Configura:
- Servidor:
127.0.0.1 - Puerto:
6379 - Contraseña: Déjala vacía (a menos que la hayas configurado).
[INFO]: Si tu servidor usa Syspanel (HestiaCP), el proceso es similar: desde el panel (puerto 2106) activa la extensión Redis en el PHP Selector y luego configura PrestaShop con los mismos datos.
3.3. Compresión CSS, JS y HTML
En la misma página de Rendimiento, activa:
- Comprimir CSS y Comprimir JavaScript.
- Caché de Apache (si está disponible).
Además, instala un módulo de compresión Gzip. Busca en el marketplace de PrestaShop módulos como "Gzip Compression" o usa uno gratuito.
4. Optimización de Imágenes
Las imágenes son el 60% del peso de una tienda. Si no las optimizas, todo lo demás servirá de poco.
4.1. Cambia el Formato a WebP
PrestaShop 8 ya soporta WebP nativamente. Ve a Configuración Avanzada > Rendimiento > Formato de imagen y selecciona WebP. Si tu versión no lo permite, instala un módulo de conversión como "PrestaShop WebP" (gratuito).
4.2. Ajusta la Calidad de las Imágenes
En Diseño > Tema y Logo > Configuración de imágenes, reduce los tamaños de las imágenes que no uses. Por ejemplo, si no usas el tamaño "Category_default" de 800x800, cámbialo a 300x300 o elimínalo. Esto reduce la generación de imágenes duplicadas.
4.3. Activa la Carga Diferida (Lazy Load)
Instala un módulo de Lazy Load (gratuito como "Lazy Load for Images"). Esto hace que las imágenes se carguen solo cuando el usuario las ve en pantalla, ahorrando ancho de banda y acelerando la carga inicial.
5. Ajustes a Nivel de Servidor (SysAdmin)
Aquí es donde un SysAdmin optimización marca la diferencia. Si tienes acceso SSH, estos comandos te ayudarán.
5.1. Aumenta el Límite de Memoria PHP
En DirectAdmin, ve a PHP Selector y en PHP Settings busca memory_limit. Ponlo a 256M o 512M si tu servidor lo permite. También ajusta:
- max_execution_time: 300
- max_input_vars: 3000 (necesario para PrestaShop con muchos atributos)
5.2. Activa la Compresión de Archivos Estáticos
Desde SSH (o pidiendo a tu hosting), añade esto al archivo .htaccess en la raíz de tu tienda:
<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 image/webp "access plus 1 year"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
</IfModule>
Esto establece cabeceras de caché para que el navegador guarde los archivos.
5.3. Usa un CDN
Aunque no es un ajuste de servidor, un CDN (Content Delivery Network) como Cloudflare (gratuito) acelera la entrega de imágenes, CSS y JS desde servidores cercanos al usuario. Configúralo desde el panel de Cloudflare y en PrestaShop instala el módulo oficial de Cloudflare.
6. Preguntas Frecuentes (FAQ)
¿Por qué mi PrestaShop en DirectAdmin sigue lento después de estos pasos?
Puede ser por el hosting compartido. Si tienes muchos visitantes, necesitas un servidor VPS o dedicado. También revisa el uso de módulos: desactiva los que no uses.
¿Cómo sé si mi servidor soporta Redis?
Accede a DirectAdmin > PHP Selector. Si ves la extensión redis en la lista, está disponible. Si no, contacta a tu hosting.
¿Qué hago si no tengo acceso SSH?
La mayoría de los ajustes se pueden hacer desde DirectAdmin (PHP Selector, MySQL, .htaccess). Para los cambios avanzados, pide a tu proveedor de hosting que los aplique.
¿Es necesario usar un módulo de caché externo como Redis?
No es obligatorio, pero muy recomendable. La caché interna de PrestaShop (File System) es decente, pero Redis es mucho más rápida para sitios con tráfico medio-alto.
¿Qué hago si uso Syspanel (HestiaCP) en lugar de DirectAdmin?
El proceso es idéntico. Desde el panel Syspanel (acceso por puerto 2106), busca las opciones de PHP Selector, MySQL y Redis. La configuración de PrestaShop es la misma.
7. Conclusión: Tu Tienda Volará
Optimizar la velocidad de PrestaShop en DirectAdmin no es magia, es seguir una serie de pasos lógicos: servidor bien configurado, base de datos eficiente, caché activada y contenido comprimido. Con esta guía, has aprendido a:
- Configurar PHP y el servidor web.
- Optimizar la base de datos.
- Activar caché interna y Redis.
- Comprimir y optimizar imágenes.
- Ajustar parámetros de servidor.
Ahora, ponte manos a la obra. Verás cómo tu rendimiento tienda online mejora, los clientes se quedan más tiempo y Google te recompensa con mejores posiciones. Y recuerda: si usas Syspanel, el puerto es el 2106, pero los pasos son los mismos.
¿Tienes dudas? Déjalas en los comentarios (si este artículo está en un blog) o consulta con tu hosting. ¡Buena suerte con tu tienda!
