Por qué un PrestaShop va lento

Un PrestaShop lento casi nunca lo es por una sola cosa. Es trabajo que se repite para cada visitante: montar la página, responder a cada filtro, buscar en cada pausa al escribir. Con pocas visitas no se nota; con tráfico, cada una de esas peticiones hace cola detrás de las demás, y la base de datos se convierte en el cuello de botella.

Lo medimos en una tienda de 20.000 productos con 50 visitantes a la vez en un servidor de 4 núcleos y 8 GB: sin optimizar, la base de datos ocupaba 3 de los 4 núcleos y una de cada diez sugerencias del buscador tardaba más de 2 segundos. Te lo contamos, con todos los gráficos, en Filtros y buscador que no esperan al servidor.

Las tres cosas que más hace un visitante

Para acelerar PrestaShop de verdad, hay que acelerar lo que más usan los clientes:

  • La página. Una caché de página bien hecha sirve la página ya preparada a quien llega desde Google, anuncios o la newsletter. Por qué es delicado y cómo hacerlo bien: La caché de PrestaShop.
  • Los filtros. Pasar los filtros al navegador quita una consulta por clic y hace que filtrar sea instantáneo.
  • La búsqueda. Igual que los filtros: el buscador responde en cada tecla sin tocar la base de datos.

Y cuando el cliente ya ha elegido, que el checkout no lo eche atrás: 7 formas de acelerar el checkout de PrestaShop.

Por dónde empezar

  1. Activa las opciones de Parámetros avanzados › Rendimiento (caché de Smarty, CCC) si no lo están.
  2. Si tu tráfico llega sobre todo sin sesión (Google, anuncios, newsletter), empieza por la caché de página.
  3. Si tienes muchos productos o muchos filtros, pasa los filtros al navegador.
  4. Si tus clientes buscan mucho, haz lo mismo con el buscador.
peticiones al servidor al buscar y al filtrar, con Instant Search e Instant Filters
0
de trabajo de la base de datos con 50 visitantes a la vez, en una tienda de 20.000 productos
−89 %
por sugerencia del buscador, del servidor al navegador
0,45 s → 6 ms

Qué frena un PrestaShop, y cómo quitarlo de en medio

  1. 1

    La página se monta en cada visita

    PrestaShop arranca, ejecuta los hooks de todos los módulos, consulta el catálogo y pinta las plantillas para cada visitante. Una caché de página segura le da a los visitantes nuevos la página ya preparada, sin riesgos con carritos ni precios.

  2. 2

    Cada clic en un filtro es una consulta

    La búsqueda por facetas pregunta al servidor en cada clic, y esas respuestas no se pueden cachear. Con los filtros en el navegador, filtrar, contar y ordenar tarda milisegundos y no cuesta nada al servidor.

  3. 3

    El buscador pregunta en cada pausa

    Las sugerencias del buscador estándar lanzan una búsqueda en la base de datos cada vez que el cliente se para al escribir. En el navegador responden en cada tecla, con erratas incluidas.

  4. 4

    El checkout pierde carritos

    Pasos de más, formularios largos y cálculos lentos de envío hacen que el cliente se vaya en el último momento. Hay arreglos rápidos que no exigen cambiar de checkout.

  5. 5

    Medido, no prometido

    Medimos cada mejora en una tienda real de 20.000 productos con 50 visitantes a la vez, antes y después, y publicamos los números y cómo los obtuvimos.

  6. 6

    Sin tocar el theme ni el servidor

    Los tres módulos funcionan en PrestaShop 8.2 y 9.0, con cualquier theme, sin overrides ni extensiones de PHP, y se mantienen al día solos con los hooks de PrestaShop.

Preguntas frecuentes

¿Por qué mi PrestaShop es lento?

Casi siempre por trabajo que se repite: PrestaShop monta cada página desde cero, la búsqueda por facetas consulta la base de datos en cada clic y el buscador lo hace cada vez que el cliente se para al escribir. Con tráfico, esas consultas compiten entre ellas. Un hosting más grande ayuda, pero quitar el trabajo repetido ayuda más.

¿Cómo acelero el buscador de PrestaShop?

Sacando la búsqueda del servidor. Instant Search escribe el catálogo en archivos estáticos y el navegador busca en ellos: cada búsqueda tarda milisegundos, perdona erratas y no hace ninguna consulta a la base de datos.

¿Los filtros de PrestaShop ralentizan la tienda?

Con catálogos grandes y tráfico, sí: cada clic en un filtro es una consulta pesada que no se puede cachear. Instant Filters filtra, cuenta y ordena en el navegador, sin peticiones al servidor.

¿Una caché de página es segura con el carrito y los precios?

Depende de cómo esté hecha. Page Cache solo guarda páginas de visitantes sin carrito ni sesión, separa por moneda, país y dispositivo y renueva las páginas de un producto en cuanto cambia su precio o su stock.

¿Funciona en un hosting compartido?

Sí. Ninguno de los tres módulos necesita acceso al servidor, Varnish ni extensiones de PHP: se instalan desde el back office como cualquier módulo.

Encuentra el addon que tu tienda necesita

Ver addons