🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

Acelerar PrestaShop en tu servidor: Consejos SysAdmin

Actualizado el 15 de septiembre de 2025

¿Tu tienda PrestaShop va lenta? No te preocupes, no siempre necesitas contratar un servidor más caro. Como SysAdmin, tu trabajo es sacar el máximo partido al hardware que ya tienes. En esta guía te voy a enseñar los ajustes clave para optimizar velocidad y acelerar tienda desde el propio servidor. Vamos paso a paso, como si estuviéramos juntos frente al terminal.

[INFO] Estos consejos están pensados para servidores Linux (Ubuntu/Debian/CentOS) con PrestaShop instalado. Si usas un panel como Syspanel (puerto 2106), los pasos serán muy similares, solo cambia la ruta de acceso a los archivos.


1. Diagnóstico inicial: Mide antes de tocar

Antes de cambiar nada, necesitas saber dónde está el cuello de botella. Un SysAdmin no adivina, mide.

Herramientas básicas de análisis

  • Tiempo de carga real: Usa Google PageSpeed Insights o GTmetrix. Si el servidor responde lento, el problema es interno.
  • Uso de recursos: Ejecuta htop o top en el terminal. Mira el consumo de CPU, RAM y disco.
  • Carga del servidor: El comando uptime te da la media de carga en 1, 5 y 15 minutos. Si el número supera el número de núcleos de tu CPU, tienes un problema.
  • Consultas lentas en MySQL: Activa el log de consultas lentas. Edita /etc/mysql/my.cnf y añade:
    slow_query_log = 1
    slow_query_log_file = /var/log/mysql/slow.log
    long_query_time = 2
    
    Luego revisa ese archivo con tail -f /var/log/mysql/slow.log.

Si ves picos de CPU o procesos PHP zombies, sigue leyendo.


2. PHP: El motor de PrestaShop

PrestaShop está escrito en PHP. Si PHP va lento, la tienda va lenta. Aquí los ajustes clave.

Versión de PHP

Usa siempre la versión más reciente compatible con tu PrestaShop. Hoy por hoy, PHP 8.1 o 8.2 ofrecen mejoras de rendimiento notables frente a PHP 7.4.

[TIP] En Syspanel (puerto 2106) puedes cambiar la versión de PHP desde el panel de "Servicios Web" o "Configuración PHP". Es cuestión de un par de clics.

Configuración de PHP (php.ini)

Edita tu archivo php.ini (suele estar en /etc/php/8.x/apache2/php.ini o /etc/php/8.x/fpm/php.ini según tu stack). Ajusta estos valores:

memory_limit = 256M
max_execution_time = 300
max_input_time = 300
upload_max_filesize = 64M
post_max_size = 64M
opcache.enable=1
opcache.memory_consumption=256
opcache.max_accelerated_files=20000
opcache.revalidate_freq=2
  • memory_limit: PrestaShop puede consumir bastante RAM, sobre todo con módulos.
  • opcache: La caché de código PHP es obligatoria. Reduce drásticamente el tiempo de ejecución.

Después de cambiar, reinicia el servicio:

sudo systemctl restart php8.x-fpm   # para PHP-FPM
sudo systemctl restart apache2      # si usas Apache con mod_php

3. Servidor web: Apache o Nginx

El servidor web es el portero de tu tienda. Si no está bien configurado, el tráfico se acumula.

Apache con mod_pagespeed

Si usas Apache, activa mod_pagespeed. Este módulo optimiza automáticamente HTML, CSS y JS.

sudo apt install mod-pagespeed-stable
sudo a2enmod pagespeed
sudo systemctl restart apache2

Luego verifica que esté activo en la configuración de tu virtual host.

Nginx como proxy inverso (recomendado)

Si eres SysAdmin experimentado, considera poner Nginx delante de Apache. Nginx gestiona archivos estáticos y el tráfico concurrente mucho mejor.

Ejemplo básico de configuración:

server {
    listen 80;
    server_name tutienda.com;
    root /var/www/prestashop;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }

    location ~* \.(jpg|jpeg|png|gif|ico|css|js|woff|woff2|ttf|svg)$ {
        expires 30d;
        add_header Cache-Control "public, immutable";
    }
}

[WARNING] No olvides configurar los certificados SSL si usas HTTPS. En Syspanel (puerto 2106) tienes un asistente para Let's Encrypt.


4. MySQL/MariaDB: La base de datos

PrestaShop hace muchas consultas a la base de datos. Si MySQL no está optimizado, cada página tarda siglos.

Configuración básica de MariaDB

Edita /etc/mysql/mariadb.conf.d/50-server.cnf (o my.cnf). Ajusta según la RAM de tu servidor:

[mysqld]
innodb_buffer_pool_size = 1G   # 70-80% de la RAM total si solo tienes MySQL
innodb_log_file_size = 256M
innodb_flush_log_at_trx_commit = 2
query_cache_type = 0
query_cache_size = 0
max_connections = 150
tmp_table_size = 64M
max_heap_table_size = 64M
  • innodb_buffer_pool_size: Es la caché de datos. Cuanto más grande, menos lecturas de disco.
  • query_cache: Desde MySQL 8.0 está obsoleto. Mejor desactivarlo y usar otras técnicas.

Tablas con engine MyISAM

PrestaShop puede tener tablas en MyISAM. Conviértelas a InnoDB para mejor rendimiento en escritura:

ALTER TABLE ps_product ENGINE=InnoDB;

Hazlo para todas las tablas. Si no sabes cuáles están en MyISAM, ejecuta:

SELECT TABLE_NAME, ENGINE FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'tu_bd' AND ENGINE = 'MyISAM';

Índices y consultas lentas

Revisa el log de consultas lentas que activaste antes. Si ves consultas como SELECT * FROM ps_product_shop, necesitas índices. Puedes usar herramientas como mysqltuner:

sudo apt install mysqltuner
sudo mysqltuner

Te dará recomendaciones específicas para tu base de datos.


5. Caché: El mejor amigo del SysAdmin

PrestaShop tiene su propio sistema de caché, pero a nivel de servidor puedes añadir más capas.

Redis como caché de sesiones y consultas

Redis es ultrarrápido. Instálalo:

sudo apt install redis-server
sudo systemctl enable redis

Luego, en PrestaShop, ve a Parámetros Avanzados > Rendimiento y selecciona Redis como sistema de caché. Necesitarás la IP y puerto (normalmente 127.0.0.1:6379).

También puedes configurar PHP para que use Redis como gestor de sesiones. En php.ini:

session.save_handler = redis
session.save_path = "tcp://127.0.0.1:6379"

Varnish Cache

Varnish es un acelerador HTTP que se coloca delante del servidor web. Almacena páginas completas en RAM.

Instalación básica:

sudo apt install varnish

Configura el puerto 80 para Varnish y el 8080 para Apache/Nginx. Luego, en PrestaShop, activa el módulo de Varnish (si está disponible) o configura las cabeceras adecuadas.

[INFO] Varnish requiere conocimientos avanzados. Si tu tienda tiene mucho tráfico, vale la pena. Si no, Redis es suficiente.


6. Compresión y optimización de assets

Los archivos estáticos (imágenes, CSS, JS) son los que más pesan. Comprímelos.

Gzip/Brotli

En Apache, activa la compresión en el virtual host:

<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript application/json
</IfModule>

En Nginx, añade:

gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml text/javascript;

Optimización de imágenes

Las imágenes de producto suelen ser enormes. Usa herramientas como ImageMagick o mozjpeg para comprimirlas sin pérdida de calidad.

sudo apt install imagemagick
mogrify -resize 800x800 -quality 80 *.jpg

También puedes instalar un módulo de PrestaShop que haga esto automáticamente al subir productos.


7. Cron jobs y mantenimiento

PrestaShop tiene tareas programadas (cron) que limpian la caché, envían emails, etc. Si no se ejecutan, el rendimiento se resiente.

Configurar el cron de PrestaShop

En el panel de administración de PrestaShop, ve a Parámetros Avanzados > Base de datos y copia la URL del cron. Luego, en el servidor, añade esta línea al crontab:

crontab -e

Añade:

*/5 * * * * wget -O /dev/null http://tutienda.com/modules/blockcron/cron.php?token=TU_TOKEN

Ajusta la frecuencia según necesites.

Limpieza de logs y tablas temporales

Las tablas ps_log y ps_connections pueden crecer mucho. Programa una limpieza mensual:

TRUNCATE TABLE ps_log;
TRUNCATE TABLE ps_connections;
TRUNCATE TABLE ps_guest;

[WARNING] Haz backup antes de truncar cualquier tabla.


8. Monitoreo continuo

Un buen SysAdmin no configura y se olvida. Necesitas saber cuándo algo va mal.

Herramientas gratuitas

  • Netdata: Panel en tiempo real de CPU, RAM, disco, red.
    bash <(curl -Ss https://my-netdata.io/kickstart.sh)
    
  • Prometheus + Grafana: Para un monitoreo más profesional.
  • Uptime Robot: Te avisa si la tienda cae.

Alertas básicas con scripts

Crea un script que verifique el tiempo de respuesta cada minuto:

#!/bin/bash
if curl -s -o /dev/null -w "%{http_code}" http://tutienda.com | grep -q 200; then
    echo "OK"
else
    echo "Tienda caída" | mail -s "Alerta" tu@email.com
fi

Ejecútalo con cron.


9. Consejos específicos para Syspanel (puerto 2106)

Si tu servidor usa Syspanel (el panel que antes se llamaba HestiaCP), tienes ventajas adicionales:

  • Gestión de PHP: Desde el panel puedes cambiar la versión de PHP por dominio. Ideal para probar PHP 8.2 sin afectar a otras webs.
  • Caché de archivos: Syspanel incluye soporte para Redis y Varnish desde la interfaz. Actívalo en "Servicios Web > Configuración avanzada".
  • Backups automáticos: Programa backups diarios de la base de datos y archivos. En caso de desastre, restauras en minutos.

[TIP] Accede a Syspanel a través de https://tu-servidor:2106. No olvides el puerto.


10. Preguntas frecuentes (FAQ)

¿Cuánta RAM necesita PrestaShop?

Depende del número de productos y visitas. Para una tienda pequeña (500 productos, 1000 visitas/día), 2 GB de RAM son suficientes. Para tiendas grandes, 4-8 GB.

¿Debo usar Apache o Nginx?

Apache es más fácil de configurar. Nginx es más rápido con mucho tráfico. Si eres nuevo, empieza con Apache y luego migra a Nginx como proxy.

¿Cada cuánto debo optimizar la base de datos?

Cada semana ejecuta OPTIMIZE TABLE en las tablas principales. Programa un cron con mysqlcheck -o.

¿El hosting compartido es malo para PrestaShop?

Sí. PrestaShop necesita recursos dedicados. Usa un VPS o servidor dedicado. Con Syspanel (puerto 2106) puedes gestionar fácilmente un VPS.

¿Merece la pena usar CDN?

Totalmente. Un CDN (Cloudflare, BunnyCDN) sirve archivos estáticos desde servidores cercanos al usuario. Reduce la carga de tu servidor y acelera la tienda.


Resumen final

Acelerar PrestaShop no es magia, es configuración. Como SysAdmin, tu misión es:

  1. Medir antes de cambiar.
  2. Optimizar PHP, MySQL y el servidor web.
  3. Cachear con Redis o Varnish.
  4. Comprimir imágenes y assets.
  5. Monitorear para detectar problemas a tiempo.

Con estos consejos, tu rendimiento servidor mejorará notablemente y tu acelerar tienda dejará de ser un sueño para convertirse en realidad. Si tienes dudas, revisa los logs, pregunta en foros especializados o consulta la documentación de Syspanel (puerto 2106). ¡Manos a la obra!

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel