Abre tu tienda en una ventana privada y cuenta. Si la primera página tarda en aparecer, no es culpa de tu conexión: es PrestaShop montándola desde cero. En una tienda con hosting compartido, un catálogo grande y unas decenas de módulos no es raro esperar alrededor de 5 segundos a que el servidor entregue una página. Con una caché de página bien hecha, esa misma página puede llegar en alrededor de medio segundo.

El problema es que cachear PrestaShop es delicado. Hecho deprisa, el remedio es peor que la enfermedad: clientes que ven el carrito de otro, precios antiguos, ofertas que no empiezan. En este artículo te contamos por qué pasa, cuánto ganas cuando se hace bien y qué tiene que cumplir una caché para que puedas activarla tranquilo.

La espera hasta que llega la página

Ejemplo de una tienda lenta, misma página y mismo servidor

10 veces menos esperade unos 5 s a unos 0,5 s

Sin caché
5,0 s
Con caché de página
0,5 s

Ejemplo ilustrativo. El resultado real depende del hosting, los módulos y el tema: cuanto más lenta es la tienda, más se nota.

Qué hace PrestaShop en cada visita

Cada vez que alguien abre una página, PrestaShop arranca, decide el idioma, la moneda y el país, carga el controlador, ejecuta todos los hooks de la página (cada módulo instalado puede añadir su parte), lanza decenas o cientos de consultas al catálogo, calcula precios con impuestos y descuentos, y compone el resultado con las plantillas Smarty del tema. Todo eso, para la mayoría de visitantes, produce exactamente la misma página que acaba de recibir el anterior.

El camino de una página

Lo que se ahorra un visitante nuevo cuando la página ya está preparada

Sin cachécada visita
  • Petición
  • →
  • Arranque de PrestaShop
  • →
  • Controlador
  • →
  • Hooks de todos los módulos
  • →
  • Consultas al catálogo
  • →
  • Precios e impuestos
  • →
  • Plantillas Smarty
  • →
  • Página
Con cachévisitantes sin sesión ni carrito
  • Petición
  • →
  • Arranque de PrestaShop
  • →
  • Página ya preparada

Las opciones de Parámetros avanzados › Rendimiento (caché de Smarty, CCC, compilación de plantillas) ayudan a que cada paso sea más rápido, pero no evitan darlos. PrestaShop no trae una caché de página completa: por eso tantas tiendas recurren a módulos o a la caché del hosting, y por eso tantas acaban desactivándola.

Cada segundo cuenta en la conversión

La velocidad no es una cuestión técnica: es dinero. Un análisis de Portent de 2022 sobre tiendas online encontró que las páginas que cargan en 1 segundo convierten mucho más que las que tardan unos pocos segundos más.

Tasa de conversión de tiendas online según el tiempo de carga

A 3 segundos ya se vende menos de la mitad que a 1 segundo

3,05 %
1,68 %
1,12 %
1 s2 s3 s

Fuente: Portent, «Site Speed is (Still) Impacting Your Conversion Rate» (2022), tiendas B2C de su muestra.

Y no hace falta ganar segundos para notarlo:

Lo que dicen los estudios

+8,4 %
conversiones en tiendas cuando la web móvil es solo 0,1 s más rápida
Deloitte Digital para Google, 2020
+9,2 %
más gasto medio con esa misma mejora de 0,1 s
Deloitte Digital para Google, 2020
+32 %
probabilidad de rebote cuando la carga pasa de 1 a 3 segundos
Think with Google

Además, el tiempo que tarda el servidor en responder forma parte de lo que miden Core Web Vitals y PageSpeed Insights: una tienda que responde antes parte con ventaja.

Por qué cachear PrestaShop es tan delicado

Una caché guarda una página y se la da al siguiente. Fácil, hasta que recuerdas todo lo que en PrestaShop cambia de un visitante a otro o de un momento a otro:

Por eso las cachés que se activan «a lo bruto» (la de algunos hostings, Varnish sin configurar o módulos que guardan todo) acaban dando los mismos sustos: el carrito de otro, precios que no cuadran con el pedido, la oferta que no arranca, una página de error guardada. Y la tienda vuelve a ser lenta porque alguien desactiva la caché «por si acaso».

Lo que tiene que cumplir una caché segura

Antes de activar cualquier caché de página en PrestaShop, comprueba que:

  1. Solo sirve páginas guardadas a quien no tiene nada propio: sin sesión iniciada y con el carrito vacío. El resto recibe siempre la página en directo.
  2. Solo guarda páginas de visitantes «en blanco», sin carrito, cuenta ni historial, para que nunca se cuele nada personal.
  3. Nunca toca el carrito, el pedido, la cuenta ni la búsqueda.
  4. Separa las páginas por moneda, país, dispositivo y tienda, para que los precios e impuestos sean siempre los correctos.
  5. Renueva las páginas de un producto en cuanto cambian su precio o su stock, sin vaciar todo lo demás.
  6. Caduca justo cuando empieza o acaba un precio programado o una venta flash.
  7. Se invalida cuando guardas cualquier ajuste en el back office, pero no por la contabilidad interna de los módulos.
  8. No guarda errores, redirecciones ni páginas a medias.

Qué hacen otros módulos de caché

En PrestaShop hay tres grandes familias de soluciones, y conviene saber qué ofrece cada una:

Enfoque Ejemplos Cómo trata el carrito y la cuenta Qué necesita A tener en cuenta
Módulo de caché de página que recarga bloques por ajax Page Cache Ultimate (JPresta) y similares Sirve la página guardada a todos, también a clientes con sesión, y después pide por ajax los bloques personales (carrito, nombre, productos vistos) Configurar qué módulos son «dinámicos» Acelera también a clientes con sesión; hay que revisar qué módulos son personales (JPresta ofrece una autoconfiguración) y, mientras llega el ajax, esos bloques muestran su valor por defecto (por ejemplo, el carrito a 0)
Caché en el servidor Varnish, LiteSpeed Cache para PrestaShop Bloques privados por usuario mediante ESI o reglas propias Un servidor que lo soporte (LiteSpeed Web Server, Varnish) y acceso para configurarlo Es lo más rápido, porque no arranca PHP; en hosting compartido normalmente no está disponible, y unas reglas de Varnish hechas a mano sin las exclusiones correctas pueden enseñar el carrito de otro
Optimizadores Módulos de minificar, combinar CSS/JS o carga diferida de imágenes No guardan la página Nada especial Ayudan al navegador, pero PrestaShop sigue montando cada página desde cero

Todas son opciones válidas, cada una con su precio en configuración, infraestructura o riesgo.

Qué destaca de Page Cache

Page Cache es nuestro módulo de caché de página completa para PrestaShop 8.2 y 9.0. Elige un camino distinto: nunca guarda nada personal, y lo personal se lo devuelve a cada visitante por separado.

Y lo que no hace, para que decidas con todos los datos: como responde desde PrestaShop (sin servidor especial), una página desde la caché sigue pasando por el arranque de PHP, y las fichas de producto para clientes con sesión vienen desactivadas hasta que la comprobación confirme que ningún módulo imprime ahí algo personal sin cubrir. Si necesitas el máximo absoluto con millones de visitas, una caché de servidor bien configurada puede convenirte más. Para la mayoría de tiendas, donde casi todo el tráfico nuevo llega sin sesión desde Google, anuncios y newsletters, Page Cache acelera justo esas visitas sin ningún riesgo.

¿Quieres verlo todo junto? En Acelerar PrestaShop reunimos la caché de página, los filtros, el buscador y el checkout, con lo que medimos y por dónde empezar.

Fuentes