Hay errores que no rompen nada a la vista y por eso pueden pasar desapercibidos mucho tiempo. Este es uno de ellos. En velasdeolor.es, una tienda PrestaShop con caché de página completa, el consentimiento de cookies se perdía en algunas páginas: una clienta aceptaba o rechazaba las cookies, seguía navegando y, de repente, el banner volvía a salir. Lo contamos con detalle porque la combinación de módulos es muy habitual y probablemente le esté pasando a más tiendas.
Los síntomas
- El banner reaparecía en algunas páginas aunque la clienta ya hubiera elegido. No en todas, y no siempre en las mismas, lo que lo hacía difícil de reproducir.
- El modo de consentimiento de Google volvía a «denegado». Esto no se ve, pero es lo más caro: si una clienta había aceptado las cookies y en la página siguiente su consentimiento se borraba, Google Analytics y Google Ads dejaban de medir esa visita. Conversiones que no se registran son campañas que se optimizan con datos incompletos.
- Y, claro, una mala experiencia: que te pregunten dos veces lo mismo da sensación de web descuidada.
El diagnóstico
La pista estaba en el «no siempre». La tienda usa JPresta Page Cache (en el paquete JPresta Speed Pack), una caché de página completa de la que ya hablamos en este caso real. Con ella, la mayoría de las páginas se sirven ya generadas, pero de vez en cuando una página no está en caché y PrestaShop la genera de nuevo.
Probamos a forzar páginas sin caché (añadiendo un parámetro a la URL para que la caché no las reconozca) y el fallo se reproducía siempre: solo pasaba en las páginas que se generaban en ese momento.
Revisando el código de los dos módulos implicados (JPresta Speed Pack 11.5.1 y el módulo de cookies cookiesplus 1.9.1) encontramos la secuencia:
- Cuando JPresta va a generar una página para guardarla en la caché, elimina de la petición la cookie del consentimiento. Tiene sentido: la página guardada se va a servir a todo el mundo y no debe depender de lo que haya elegido un visitante concreto.
- Acto seguido vuelve a ejecutar una fase de la carga de PrestaShop en la que también se ejecuta el módulo de cookies.
- El módulo de cookies, al no ver su cookie, cree que es una primera visita y la vuelve a escribir con el valor por defecto, que se envía al navegador de la clienta y sustituye a la que tenía.
Resultado: en cada página que no estaba en caché, la clienta perdía su elección. Ninguno de los dos módulos hace nada «mal» por separado; el problema aparece al combinarlos.
La solución
Buscamos la corrección más pequeña posible y fácil de quitar en el futuro. PrestaShop permite sobrescribir el comportamiento de un módulo con un override sin editar sus archivos, así que añadimos uno al módulo de cookies con una sola regla:
Si la petición original del navegador ya trae la cookie de consentimiento, no hagas nada en esa fase.
Es decir, el módulo de cookies ya no reescribe el consentimiento cuando la cookie existe de verdad en el navegador, aunque otro módulo la haya ocultado temporalmente. Después vaciamos la caché para que todas las páginas se regeneraran con el arreglo.
Cómo lo comprobamos
- Aceptando todas las cookies y navegando por páginas sin caché: el banner ya no vuelve.
- Rechazándolas y repitiendo la prueba: la elección también se respeta.
- En móvil y en escritorio.
- Y en una primera visita, sin cookie previa, el banner sigue apareciendo como debe.
Además documentamos el caso con todos los detalles para el soporte de JPresta, por si quieren corregirlo en su módulo. Si lo hacen, el override se podrá eliminar sin más.
Qué hay que vigilar a partir de ahora
- Al actualizar JPresta o el módulo de cookies, repetir la prueba. Un override depende del código que sobrescribe: si el módulo cambia, puede dejar de ser necesario o dejar de funcionar.
- Revisar el orden de los módulos que modifican la página final. En esta tienda hay varios (la caché, el banner de cookies y un módulo propio de rendimiento) y el orden importa.
- Medir el consentimiento, no solo el banner. El banner puede parecer correcto y, aun así, el modo de consentimiento de Google estar enviando la señal equivocada.
Lecciones para cualquier tienda con caché de página
- Una caché de página completa cambia cómo se ejecutan los módulos. Cualquier módulo que lea o escriba cookies (consentimiento, carrito, idioma, moneda) merece una prueba específica con páginas sin caché.
- Para reproducir errores intermitentes, fuerza el caso «sin caché» con una URL que la caché no conozca.
- Antes de tocar nada, entiende la secuencia completa: aquí el fallo no estaba en ningún módulo concreto, sino en el encaje entre los dos.
- Prefiere arreglos pequeños, reversibles y documentados.
Conclusión
El cumplimiento del RGPD no termina al instalar un banner de cookies: hay que comprobar que la elección de cada visitante se respeta en toda la navegación y que llega bien a las herramientas de medición. En el rediseño de la tienda también dejamos «Aceptar» y «Rechazar» con el mismo estilo, para que rechazar sea tan fácil como aceptar. Si quieres saber más sobre el tema, tenemos una guía sobre RGPD y cookies en la web de tu pyme.
¿Tu tienda PrestaShop tiene algún comportamiento extraño que nadie ha sabido explicar? Contacta con nosotros y lo investigamos.
Más casos reales de velasdeolor.es
Este artículo forma parte de una serie sobre las mejoras que hemos hecho en la tienda en octubre de 2026:
- Un buscador a medida para PrestaShop
- Asistente con inteligencia artificial para una tienda PrestaShop
- Rediseño de una tienda PrestaShop sin tocar la plantilla
- Productos relacionados automáticos: el mismo aroma en otros formatos
- Acceso con Google y con código por email en PrestaShop
- Precio anterior en las ofertas (norma Omnibus) en PrestaShop
- Previsión de compras en PrestaShop
- Error 500 en el blog de PrestaShop tras actualizar el módulo
