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

Optimización de rendimiento en PrestaShop 8.2: Caching y CDN avanzado

Actualizado el 27 de octubre de 2025

El desafío del rendimiento en PrestaShop 8.2

En el ecosistema del comercio electrónico, cada milisegundo cuenta. Un estudio de Google revela que el 53% de los usuarios abandonan un sitio móvil si tarda más de 3 segundos en cargar. Para una tienda basada en PrestaShop 8.2, la optimización no es un lujo, sino una necesidad estratégica. El motor de la tienda, aunque robusto, puede volverse lento si no se gestionan correctamente los recursos del servidor, las consultas a la base de datos y la entrega de contenido estático.

Aquí es donde entran en juego dos pilares fundamentales: el caching avanzado y una CDN (Content Delivery Network) bien configurada. No se trata solo de activar opciones por defecto; hablamos de técnicas de cacheo a nivel de aplicación, fragmentos de página, y una distribución geográfica inteligente de los assets. Este artículo está diseñado para administradores de sistemas y desarrolladores que quieren exprimir al máximo el rendimiento de PrestaShop 8.2.

Caching avanzado en PrestaShop 8.2: más allá de lo básico

PrestaShop incluye mecanismos de cacheo nativos, pero para alcanzar velocidades de vértigo necesitamos ir más allá. El caching avanzado implica almacenar en memoria (o en disco) partes críticas de la tienda para evitar reprocesar cada petición.

Tipos de cacheo que debes dominar

  1. Cacheo de Smarty (Plantillas): PrestaShop usa Smarty como motor de plantillas. Activar la compilación y el cacheo de plantillas es el primer paso. En Parámetros de la tienda > Rendimiento, asegúrate de tener:

    • Cachear plantillas: Sí.
    • Forzar compilación: No (en producción).
    • Cachear CSS/JS: Sí.
  2. Cacheo de MySQL (Query Cache): Las consultas repetitivas a la base de datos son un cuello de botella. Aunque MySQL 8+ ha mejorado, el query cache tradicional está obsoleto. La alternativa moderna es usar Redis o Memcached como sistema de cacheo de resultados de consultas.

  3. Cacheo de Páginas Completas (Full Page Cache - FPC): Es la técnica más agresiva. Consiste en almacenar la página HTML generada y servirla directamente sin ejecutar PHP ni consultar la BD. PrestaShop 8.2 no lo incluye nativamente, pero se puede implementar con módulos como Page Cache Ultimate o mediante Varnish a nivel de servidor.

Configuración de Redis para PrestaShop 8.2

Redis es la navaja suiza del caching. Puede almacenar sesiones, resultados de consultas, y fragmentos de página. Para configurarlo:

  1. Instala Redis en tu servidor: sudo apt install redis-server (Debian/Ubuntu).
  2. Instala la extensión PHP: sudo apt install php8.2-redis.
  3. Configura PrestaShop. En /app/config/parameters.php, añade:
'cache' => [
    'class' => 'CacheRedis',
    'host' => '127.0.0.1',
    'port' => 6379,
    'database' => 0,
    'password' => '',
],
'session' => [
    'handler' => 'redis',
    'redis' => [
        'host' => '127.0.0.1',
        'port' => 6379,
        'database' => 1,
        'maxlifetime' => 7200,
    ],
],

[TIP]
Usa bases de datos Redis separadas para cache (db0) y sesiones (db1) para evitar conflictos y facilitar la limpieza.

Fragment Caching vs. Full Page Caching

No todas las páginas se pueden cachear por completo. Por ejemplo, el carrito o la ficha de producto con stock variable requieren cierta dinámica. El Fragment Caching te permite cachear partes de la página (ej. el menú, el pie de página, bloques de productos destacados) mientras el resto se genera dinámicamente.

En PrestaShop, puedes implementarlo mediante hooks inteligentes:

// Ejemplo en un módulo personalizado
public function hookDisplayTop($params)
{
    $cacheId = 'menu_top_' . (int)$this->context->shop->id;
    if (!$this->isCached('module:modulename/views/templates/hook/top.tpl', $cacheId)) {
        $this->context->smarty->assign('menu_items', $this->getMenuItems());
    }
    return $this->display(__FILE__, 'top.tpl', $cacheId);
}

CDN PrestaShop: distribución global de contenido estático

Una CDN (Content Delivery Network) no acelera el servidor, sino que acerca el contenido al usuario. En lugar de que un cliente en Madrid descargue las imágenes desde un servidor en Nueva York, las obtiene de un nodo en Barcelona o París. Para PrestaShop, la CDN es crítica para assets como CSS, JavaScript e imágenes.

¿Qué assets debes servir desde la CDN?

  • Imágenes de producto: Suelen ser el 60-70% del peso de una página.
  • CSS y JS compilados: Los archivos theme.css y theme.js generados por PrestaShop.
  • Fuentes web: Si usas tipografías personalizadas.
  • Vídeos y banners: Cualquier recurso multimedia.

Configuración de CDN en PrestaShop 8.2

PrestaShop tiene un apartado específico para CDN en Parámetros de la tienda > Rendimiento > CDN. Aquí puedes definir hasta 3 servidores CDN para distintos tipos de recursos.

  1. Servidor CDN 1 (Imágenes): https://cdn.tudominio.com/img
  2. Servidor CDN 2 (CSS/JS): https://cdn.tudominio.com/themes
  3. Servidor CDN 3 (Otros assets): https://cdn.tudominio.com/modules

Para que funcione, debes configurar tu CDN (Cloudflare, BunnyCDN, KeyCDN, etc.) para que sirva el contenido desde tu dominio de origen. Por ejemplo, con Cloudflare:

  1. Activa Proxy DNS (naranja) en tu registro CNAME.
  2. Configura Page Rules para cachear todo excepto la URL de la tienda (/index.php?*).
  3. Activa Auto Minify para CSS, JS y HTML.

[WARNING]
No cachees nunca la página principal ni las URLs dinámicas (carrito, cuenta) en la CDN a nivel de edge. Usa las Page Rules de Cloudflare para excluirlas: *tudominio.com/*carrito* -> Cache Level: Bypass.

Integración avanzada con Cloudflare APO

Cloudflare Automatic Platform Optimization (APO) es un servicio de pago que permite cachear páginas HTML dinámicas de PrestaShop en el edge. Aunque está diseñado para WordPress, se puede adaptar. La clave es que PrestaShop debe enviar las cabeceras Cache-Control: public, s-maxage=3600 en páginas estáticas (categorías, CMS) y Cache-Control: private, no-store en páginas dinámicas.

Puedes forzar estas cabeceras desde el archivo config/defines.inc.php o mediante un módulo personalizado que enganche en actionDispatcher.

Optimización de imágenes y lazy loading

Las imágenes son el principal lastre para la velocidad. PrestaShop 8.2 incluye WebP y lazy loading nativo, pero hay que configurarlo correctamente.

WebP automático con módulos

Activa el formato WebP para reducir el peso de las imágenes un 30-50%. Usa módulos como PrestaShop WebP o Speed Booster. Asegúrate de que el servidor tenga la librería GD con soporte WebP:

php -m | grep gd
# Debe mostrar 'gd' con WebP support

Lazy Loading nativo

En PrestaShop 8.2, activa el lazy loading desde Parámetros de la tienda > Productos > Imágenes > Carga diferida de imágenes. Esto añade el atributo loading="lazy" a todas las imágenes, haciendo que el navegador solo cargue las que están visibles en el viewport.

Configuración de tamaños de imagen

Cada imagen en PrestaShop genera múltiples versiones (small, medium, large, etc.). Si no usas todos los tamaños, elimínalos desde Diseño > Tamaños de imagen. Menos versiones = menos procesamiento y menos peticiones.

Herramientas de monitoreo y diagnóstico

No puedes optimizar lo que no mides. Implementa estas herramientas para evaluar el impacto de tus cambios:

  1. Google PageSpeed Insights: Te da métricas de LCP, FID, CLS.
  2. GTmetrix: Muestra cómo se carga la página en distintos dispositivos.
  3. WebPageTest: Permite pruebas desde ubicaciones globales.
  4. Monitor interno de PrestaShop: En Parámetros avanzados > Rendimiento, activa el Debug Profiler para ver tiempos de ejecución de módulos y consultas.

Interpretación de métricas clave

MétricaValor deseadoAcción si es lento
LCP (Largest Contentful Paint)< 2.5sOptimizar imagen principal, cachear hero
TTFB (Time to First Byte)< 200msCacheo de página, Redis, CDN
First Input Delay (FID)< 100msReducir JS bloqueante, lazy loading
Cumulative Layout Shift (CLS)< 0.1Fijar dimensiones de imágenes, fuentes

[INFO]
El TTFB es el indicador más directo del rendimiento del servidor. Si tu TTFB es alto incluso con CDN, revisa la configuración de PHP-FPM (pm.max_children) y la base de datos.

Buenas prácticas finales para mantener el rendimiento

Una vez que hayas aplicado caching avanzado y CDN, el mantenimiento es clave. Sigue estas reglas:

  • Actualiza módulos y núcleo: Las versiones nuevas suelen incluir parches de rendimiento.
  • Elimina módulos no utilizados: Cada módulo inactivo consume memoria y puede ejecutar hooks innecesarios.
  • Programa tareas de limpieza: Usa cron para vaciar la cache de Smarty y la de MySQL periódicamente.
  • Monitoriza el uso de Redis: Con redis-cli info stats puedes ver el ratio de aciertos/caídas. Un ratio bajo indica que necesitas más memoria o ajustar la expiración.
  • Usa HTTP/2 o HTTP/3: Esto permite multiplexar peticiones, reduciendo la latencia. Asegúrate de que tu CDN y servidor lo soporten.

Conclusión

La optimización de PrestaShop rendimiento en la versión 8.2 es un proceso continuo que combina caching avanzado (Redis, Varnish, fragment caching) con una CDN PrestaShop bien segmentada (Cloudflare, BunnyCDN). No hay una bala de plata; cada tienda tiene su perfil de tráfico y contenido. Sin embargo, aplicando las técnicas descritas —desde la configuración de Redis hasta el lazy loading con WebP—, puedes reducir el tiempo de carga en un 60% o más.

Recuerda: la velocidad tienda online impacta directamente en la tasa de conversión, el SEO y la experiencia de usuario. Invertir tiempo en estas configuraciones no es un gasto, es una de las mejores decisiones de negocio que puedes tomar.

¿Listo para ponerlo en práctica? Empieza por activar Redis, configura tu CDN y ejecuta un PageSpeed Insights. El camino hacia una tienda ultrarrápida comienza con un solo paso técnico, pero bien dado.

¿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