Cómo optimizar la velocidad de PrestaShop en DirectAdmin (Guía práctica)
[INFO] Esta guía está pensada para que cualquier persona, incluso sin conocimientos técnicos avanzados, pueda seguir los pasos y notar una mejora significativa en la velocidad de su tienda PrestaShop alojada en un panel de control DirectAdmin. No necesitas ser un desarrollador, solo seguir las instrucciones con calma y en orden.
¿Tu tienda PrestaShop va lenta? ¿Los clientes se quejan de que las páginas tardan una eternidad en cargar? Si tu tienda está alojada en un servidor con DirectAdmin, has llegado al lugar correcto. Un PrestaShop lento en DirectAdmin no solo frustra a tus visitantes, sino que también daña tu posicionamiento en Google y reduce tus ventas.
La velocidad de carga es un factor crítico para el éxito de cualquier e-commerce. Los usuarios esperan que una página cargue en menos de 3 segundos, y si no es así, es muy probable que abandonen tu tienda y compren en la competencia. Además, Google penaliza a las webs lentas, por lo que optimizar la velocidad de PrestaShop es esencial para tu estrategia de SEO.
En esta guía práctica, vamos a desglosar, paso a paso, cómo puedes acelerar PrestaShop en tu servidor DirectAdmin. Abordaremos desde la configuración interna de la propia tienda hasta ajustes más profundos en el servidor, sin necesidad de ser un experto en sistemas.
Vamos a ello.
1. Diagnóstico Inicial: ¿Dónde está el cuello de botella?
Antes de tocar nada, es fundamental saber qué está causando que tu PrestaShop sea lento. Adivinar sin datos es perder el tiempo. Te propongo un método sencillo para empezar.
1.1. Herramientas para medir la velocidad
Utiliza herramientas gratuitas en línea como:
- Google PageSpeed Insights: Te dará una puntuación y sugerencias específicas para tu web.
- GTmetrix: Proporciona un análisis detallado de los tiempos de carga, el tamaño de las páginas y las peticiones.
- Pingdom Tools: Similar a las anteriores, con un desglose muy visual de los elementos que más tardan.
Realiza varias pruebas a lo largo del día y en diferentes páginas (home, producto, categoría). Anota los resultados. Esto te servirá de referencia para ver la mejora después de aplicar los cambios.
[TIP] No te obsesiones solo con la puntuación. Céntrate en las métricas de "Tiempo hasta el primer byte" (TTFB) y "Tiempo de carga total". Un TTFB alto (más de 1 segundo) suele indicar un problema de servidor o de configuración de PHP.
2. La Base de Todo: Configuración Interna de PrestaShop
Muchas veces, la solución a un PrestaShop lento en DirectAdmin está en la propia configuración del panel de administración de la tienda. Vamos a empezar por lo más fácil.
2.1. Activa el Modo de Mantenimiento y la Compilación de Plantillas
Es importante trabajar con la tienda "cerrada" para que los cambios no afecten a los visitantes reales.
- Ve a Preferencias > General.
- Activa el Modo de Mantenimiento.
- Guarda los cambios.
Ahora, ve a Preferencias > Rendimiento. Aquí es donde ocurre la magia.
- Combinar archivos JavaScript: Actívalo. Esto reduce el número de peticiones al servidor.
- Combinar archivos CSS: Actívalo. Al igual que el anterior, agrupa los estilos en un solo archivo.
- Usar compresión Apache para archivos CCC (CSS, JS, etc.): Actívalo si tu servidor lo permite (DirectAdmin normalmente sí).
- Migrar el almacenamiento de archivos combinados a una base de datos: No lo actives. Es mejor dejarlo en el sistema de archivos para no sobrecargar la base de datos.
2.2. Activa la Cache de Smarty
En la misma página de Preferencias > Rendimiento, busca la sección de Cache de plantillas.
- Usar cache: Actívala.
- Cache de SMTP: Déjalo en "No" si no usas un servidor SMTP externo para el envío de correos.
- Nivel de recompilación de cache: Elige "Nunca recopilar los archivos de plantilla" si ya has terminado de hacer cambios en el diseño. Si estás en pleno desarrollo, usa "Fuerza la compilación".
2.3. Activa la Cache de Consultas a la Base de Datos
En la misma página, verás la opción Cache de consultas a la base de datos.
- Usar cache de consultas a la base de datos: Actívala.
- Motor de cache de consultas: Elige "Memcached" o "APCu" si están disponibles en tu servidor. Si no lo tienes claro, selecciona "Sistema de archivos" para empezar, que también es una mejora notable.
[INFO] La cache de consultas guarda los resultados de las consultas a la base de datos para no tener que repetirlas en cada visita. Esto reduce drásticamente la carga del servidor.
2.4. Desactiva Funciones Innecesarias y Limpia
- Ve a Módulos > Módulos y Servicios y desactiva todos los módulos que no estés usando. Cada módulo activo consume recursos.
- En Catálogo > Productos, revisa si tienes productos sin stock o desactivados y elimínalos o archívalos.
- Ve a Clientes > Servicios y elimina las "Carretas" (carts) antiguas que estén sin finalizar. Hay módulos para hacer esto automáticamente.
3. Ajustes en DirectAdmin: Potenciando el Servidor
Ahora vamos a bajar un nivel y tocar la configuración del servidor a través de DirectAdmin. Estos cambios son más técnicos, pero son vitales para lograr el máximo rendimiento PrestaShop.
3.1. Configuración de PHP (PHP Settings)
DirectAdmin te permite ajustar la configuración de PHP fácilmente.
- Accede a tu panel de DirectAdmin.
- Busca la sección "Configuración de PHP" o "PHP Settings".
- Aquí puedes ajustar el límite de memoria (
memory_limit). Para PrestaShop, se recomienda un mínimo de 256 MB. Si tienes una tienda grande, sube a 512 MB o incluso 1024 MB. - Ajusta el tiempo máximo de ejecución (
max_execution_time) a 300 segundos o más para evitar errores en tareas pesadas. - Ajusta el límite de subida de archivos (
upload_max_filesize) y el límite de datos POST (post_max_size) a al menos 64 MB para poder subir imágenes y módulos sin problemas.
[WARNING] No subas el límite de memoria a valores extremos si no es necesario. Un valor demasiado alto puede sobrecargar el servidor si tienes otros sitios web.
3.2. Activar y Configurar PHP-FPM
DirectAdmin suele usar PHP-FPM (FastCGI Process Manager) para procesar las peticiones PHP. Es mucho más rápido que el modo CGI clásico.
- En DirectAdmin, busca "Administrador de PHP" o "PHP Manager".
- En la configuración de tu dominio, asegúrate de que el modo de PHP sea "php-fpm" en lugar de "suphp" o "cgi".
- En la configuración de PHP-FPM, puedes ajustar el número de procesos
pm.max_children. Un valor inicial seguro es calcular la memoria RAM del servidor y dividirla entre el límite de memoria de PHP. Por ejemplo, si tienes 8GB de RAM y un límite de memoria de 256MB, puedes ponermax_childrenen 20-25.
3.3. Activar la Compresión Gzip o Brotli
La compresión reduce el tamaño de los archivos que se envían al navegador del usuario, acelerando la descarga.
- En DirectAdmin, busca "Apache Manager" o "Configuración de Apache".
- Aunque es más seguro hacerlo a través del archivo
.htaccess, DirectAdmin a veces tiene una opción para ello. Te recomiendo hacerlo en el.htaccess.
3.4. Usar el .htaccess para la Compresión y Cache del Navegador
El archivo .htaccess es un archivo de configuración poderoso. Puedes editarlo desde el Administrador de Archivos de DirectAdmin (muestra los archivos ocultos) o desde la sección de "Configuración de Apache".
Añade estas líneas al final del archivo .htaccess de la raíz de tu PrestaShop:
# COMPRESIÓN GZIP
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
</IfModule>
# CACHE DEL NAVEGADOR
<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 application/pdf "access plus 1 month"
ExpiresByType text/javascript "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
ExpiresByType application/x-javascript "access plus 1 month"
ExpiresByType image/x-icon "access plus 1 year"
ExpiresByType application/x-shockwave-flash "access plus 1 month"
ExpiresByType text/html "access plus 0 seconds"
</IfModule>
[WARNING] Antes de modificar el .htaccess, haz siempre una copia de seguridad. Un error puede dejar tu tienda inaccesible.
4. Optimización de Imágenes y Base de Datos
Las imágenes son el elemento que más peso suele tener en una página. Optimizarlas es una de las acciones más efectivas para acelerar PrestaShop.
4.1. Optimiza tus Imágenes
- Usa el formato WebP: PrestaShop 1.7 y 8 tienen soporte nativo para WebP. Si tu versión no lo tiene, usa un módulo para convertirlas automáticamente.
- Comprime las imágenes: Antes de subirlas, pásalas por una herramienta de compresión como TinyPNG o Compressor.io.
- Ajusta el tamaño: No subas una imagen de 4000px de ancho si tu tienda solo la muestra a 800px. Redimensiona a la medida máxima que vayas a usar.
4.2. Limpia y Optimiza la Base de Datos
Con el tiempo, la base de datos se llena de basura (revisiones, carritos abandonados, datos de seguimiento, etc.).
- Accede a phpMyAdmin desde DirectAdmin.
- Selecciona la base de datos de tu PrestaShop.
- Haz clic en la pestaña "SQL" y ejecuta las siguientes consultas (¡haz una copia de seguridad antes!):
-- Limpiar carritos abandonados (más de 30 días)
DELETE FROM ps_cart WHERE date_add < DATE_SUB(NOW(), INTERVAL 30 DAY);
-- Limpiar conexiones antiguas (más de 30 días)
DELETE FROM ps_connections WHERE date_add < DATE_SUB(NOW(), INTERVAL 30 DAY);
-- Limpiar páginas vistas antiguas
DELETE FROM ps_connections_page WHERE time_start < DATE_SUB(NOW(), INTERVAL 30 DAY);
-- Optimizar todas las tablas
OPTIMIZE TABLE `ps_access`, `ps_address`, `ps_alias`, ... (o usa la opción de "Optimizar tablas" en la vista de estructura)
[INFO] En phpMyAdmin, puedes seleccionar todas las tablas y en el menú desplegable elegir "Optimizar tablas". Esto es más seguro y fácil que escribir la consulta manualmente.
5. Herramientas Avanzadas: Cache de Aplicación y CDN
Para llevar el rendimiento al siguiente nivel, podemos implementar soluciones más potentes.
5.1. Configurar Memcached o Redis
Estos son sistemas de cache en memoria que son mucho más rápidos que la cache en archivos.
- En tu servidor (a través de DirectAdmin o SSH), asegúrate de que Memcached o Redis estén instalados.
- En la configuración de PHP de DirectAdmin, habilita las extensiones
memcachedoredis. - En PrestaShop, en Preferencias > Rendimiento, cambia el motor de cache de consultas a "Memcached" o "Redis" e introduce la IP del servidor (normalmente
127.0.0.1) y el puerto (normalmente11211para Memcached y6379para Redis).
5.2. Implementar una CDN (Red de Distribución de Contenidos)
Una CDN almacena una copia de tu tienda (fotos, CSS, JS) en servidores de todo el mundo. Cuando un usuario visita tu web, se le sirve el contenido desde el servidor más cercano, reduciendo la latencia.
- Cloudflare es una opción gratuita y muy popular. Solo tienes que crear una cuenta, añadir tu dominio y cambiar los servidores DNS en tu registrador de dominios.
- Cloudflare también ofrece protección contra ataques DDoS y minificación de archivos.
[TIP] Configurar Cloudflare es una de las acciones con mejor relación calidad/esfuerzo para acelerar PrestaShop. No requiere conocimientos técnicos avanzados y los resultados son inmediatos.
Conclusión: Un Proceso Continuo
Optimizar la velocidad de PrestaShop en DirectAdmin no es una tarea de una sola vez, sino un proceso continuo. Debes monitorizar el rendimiento regularmente y ajustar la configuración según el crecimiento de tu tienda.
Recuerda estos puntos clave:
- Diagnostica siempre antes de actuar.
- Empieza por la configuración interna de PrestaShop (cache, compilación).
- Ajusta el servidor en DirectAdmin (PHP-FPM, compresión).
- Optimiza tus imágenes y limpia la base de datos.
- Considera soluciones avanzadas como Redis y una CDN para un rendimiento óptimo.
[WARNING] Si tu tienda es muy grande o tienes poco tráfico, algunos de estos cambios pueden ser contraproducentes. Por ejemplo, una cache de consultas en archivos puede ralentizar si la base de datos es enorme. La clave está en probar y medir.
Esperamos que esta guía te haya sido de gran ayuda. Si tienes alguna duda, no dudes en contactar con nuestro equipo de soporte. Estamos aquí para ayudarte a que tu tienda vuele.
Preguntas Frecuentes (FAQ)
¿Por qué mi PrestaShop es tan lento en DirectAdmin?
Puede deberse a múltiples factores: una configuración de PHP inadecuada, falta de cache, imágenes sin optimizar, una base de datos sucia o un servidor con recursos limitados. Esta guía aborda todos estos puntos.
¿Qué es el TTFB y por qué es importante?
TTFB significa "Time To First Byte" (Tiempo hasta el primer byte). Es el tiempo que tarda el servidor en empezar a enviar la respuesta al navegador. Un TTFB alto indica que el servidor o la aplicación están tardando en procesar la petición.
¿Es seguro modificar el archivo .htaccess?
Sí, es seguro si haces una copia de seguridad antes. Un error en el .htaccess puede provocar un error 500, pero puedes restaurar la copia de seguridad desde el Administrador de Archivos de DirectAdmin.
¿Qué es mejor, Memcached o Redis?
Ambos son excelentes. Redis es más moderno y ofrece más funcionalidades, pero Memcached es más simple y suficiente para la mayoría de las tiendas. Si tu servidor lo soporta, te recomendaría Redis.
¿Necesito una CDN para mi tienda?
Si tu audiencia es local, puede que no sea imprescindible. Pero si tienes clientes en diferentes países o regiones
