Cache Pro โ Full Page Cache with Brotli, Warm-Up & AJAX
Full page cache: stored pages are sent before PrestaShop builds them, with no database query from the module,...
Consent that is useful to the visitor and defensible for you: scripts wait for the choice, the log keeps the record and the policy follows the inventory.
Scripts, iframes (YouTube, Vimeo, Google Maps), pixels and third-party resources are neutralized in the served HTML, then loaded again by accepted category. Without JavaScript, nothing non-essential runs; a run-time guard also catches late additions.
GA4, GTM, Google Ads, Meta, TikTok, LinkedIn, Hotjar, Matomo, HubSpot, YouTube, Vimeo, Google Maps and more, with their category and usual cookies. Custom services by domain or pattern, and unknown domains turned into a service.
Three positions, contrast-checked colors, logo, texts per language and a live preview. โAccept allโ, โReject allโ and โCustomizeโ buttons of equal weight, no pre-ticked box, per-category choice and one-click withdrawal.
Unique reference, UTC date, action, categories, versions, country and signals: an append-only log, filterable, exportable to CSV and JSON, chained with a SHA-256 fingerprint and checked by the module. Automatic purge according to the retention period.
Google signals sent before any tag, denied by default in the EU, the EEA, the UK and Switzerland, updated on every choice and a single sender. Cookie policy generated from the inventory, CMS page in every language and a table reusable through a shortcode.
Acceptance, rejection and customization rates, most blocked services, unknown domains, log integrity and configuration alerts. Scan of the six key pages, an employee control page, test mode and an A/B test.
Many PrestaShop shops show a consent banner, yet Google Analytics, Google Ads, Meta or TikTok scripts still load as soon as the page opens. The visitor's choice changes what is displayed, not what is tracked. And when someone asks what they accepted, on which date and under which version of the text, you have to search server logs with no guarantee of finding a reliable record.
GDPR Cookie Banner handles both problems in the back office: third-party scripts, iframes and pixels are neutralized in the HTML PrestaShop sends, the visitor chooses in an accessible banner, scripts of accepted categories are loaded by the browser, and every decision is written to an append-only log with a reference and a chained fingerprint. The module also generates your cookie policy and sends Google Consent Mode v2 signals. Everything runs inside your shop: no account, no API key, no external service.
It is an aid to collecting and documenting consent. The module does not certify that your shop is compliant, does not replace legal advice and does not turn your cookie policy into a lawyer-approved document: it gives you the means to block, to inform and to keep a record of your choices.
When a page is served, the module rewrites the HTML on the server. A known third-party script is neutralized: its address is kept but it does not run. A YouTube, Vimeo or Google Maps iframe is replaced by a block that names the blocked service and offers to load it by accepting the matching category. Tracking pixels and third-party resources announced in the head are handled the same way. When the visitor accepts a category, the browser recreates the allowed elements in page order, with their original attributes.
Without JavaScript, nothing non-essential loads: neutralized elements stay inert. A run-time guard also intercepts scripts and iframes added after page load by another script, and releases them when the matching category is accepted.
The module cannot stop requests that an already allowed script makes itself (fetch, sendBeacon, new Image()), server-side conversions or a script evaluated by eval. A tag manager must therefore be classified in the category of the tags it loads, or rely on Consent Mode. The documentation states this limit so your configuration stays honest.
The banner sits as a bottom bar, a centred card or a side panel. You set the colors, the logo, the texts in every language and the button order, with a live preview on desktop and mobile. The "Accept all", "Reject all" and "Customize" buttons carry the same visual weight, no box is pre-ticked and scrolling the page never records consent.
The preference panel details the four categories: strictly necessary (always active), audience measurement, advertising and remarketing, and functional. For each service the visitor sees its purpose, its usual cookies and their duration, the recipient and a link to the provider's privacy policy. Each category is saved separately. A floating tab, a footer link and a shortcode let visitors return to their choice from any page, as easily as they accepted. After the period you set โ 12 months by default โ the banner asks again and non-essential categories are blocked again.
Every decision creates a row in an append-only log: a unique reference in the CC-XXXX-XXXX-XXXX format, UTC date, shop, language, page, action (accept, reject, customize, withdraw, refusal by browser signal), categories, banner, policy and consent versions, country, GPC and DNT signals. The IP address is stored as an HMAC-SHA256 keyed hash by default; you can truncate it or not store it at all. The reference is shown to the visitor after the choice.
Rows are chained by a SHA-256 fingerprint: each row contains the fingerprint of the previous one, and the module's integrity check reports a row that was changed or deleted. This is technical evidence: it shows that a row was changed without the chain being recomputed, but it is not a qualified timestamp and it does not detect someone who recomputes the whole chain with database access. The log exports to CSV and JSON, filters by period, action, country, reference or visitor, and rows older than the retention period โ 36 months by default โ are deleted automatically.
The module sends Google Consent Mode v2 signals before any tag: denied defaults in the EU, the EEA, the UK and Switzerland, an update on every choice, a wait timeout and advertising data redaction. Google requires Consent Mode v2 for advertising and measurement in these regions; it is not a legal obligation in itself. Only one signal sender is active: the module, or the Google Tracking module when installed, with a warning if both send.
The cookie policy is generated from the real inventory: categories and legal bases, third-party services and cookies with their usual durations, native PrestaShop cookies (session, cart, language, currency), the consent log and withdrawal. It is published as a CMS page in every shop language, with a version number, and a cookie table can be reused through a shortcode. It is a template to read and adapt: the module displays that warning and asks for confirmation before publication.
The scan visits six representative pages โ home, category, product, CMS page, contact, cart โ and lists the scripts, iframes, pixels and cookies they load. The report separates what loads before consent, what is blocked until consent and what the shop itself sets, with a before/after comparison. Unknown domains are listed so you can classify them, ignore them or turn them into a custom service; new domains raise an alert and, if you enable it, an e-mail after the scheduled scan.
Test mode, active after installation, changes nothing for visitors: you preview the banner on the shop, and a control page for employees shows the cookies visible to the browser, the services loaded and the category status before and after a choice. The dashboard gathers acceptance, rejection and customization rates, the trend, the most often blocked services, the last scan and configuration alerts. An A/B test compares two banner variants, and country rules can show, hide or replace the banner with a simple notice, with the appropriate warnings.
The banner and panel target WCAG 2.1 AA: semantic dialog, ARIA roles, keyboard navigation, Escape to close, visible focus, 48 px targets, stacked buttons on mobile and contrast checked on save. The module ships its texts in English, French, Spanish, Italian and Polish, and you can enter every language installed in the shop.
The HTML is identical for every visitor: the choice is applied in the browser, which keeps it compatible with PrestaShop's native cache and with Cache Pro. On the storefront there is one JavaScript file and one CSS file, no jQuery and no external call; the cache is purged whenever settings are saved. In multistore, each shop has its own settings, log, scans and policy; JSON export and import let you duplicate a configuration between shops.
For any PrestaShop shop receiving visitors from the European Union, the EEA, the UK or Switzerland, especially those using GA4, Google Ads, Meta, TikTok or LinkedIn without an in-house legal team. Agencies get JSON import/export and duplication between shops; shops that received a question or a letter about their cookies get the scan, the log and the references. The module works with the Classic and Hummingbird themes.
PrestaShop 1.7.8, 8.0+ and 9.0+, PHP 7.4 or later. A cron task is useful for scheduled scans and maintenance; PrestaShop's native geolocation (MaxMind database) is optional and used only when you enable it. A valid license is required: without it the module disables itself, the banner is no longer shown and scripts are no longer blocked, but your settings, services, log and policy page are kept and come back with the license.
Block trackers before the choice, keep a record of every decision and publish a cookie policy that matches your shop.
See how we compare to the most common alternatives on the market.
| Feature | WePresta | Addons |
|---|---|---|
| payments Transparent pricing | check_circle | cancel |
| update Lifetime updates included | check_circle | cancel |
| support_agent Direct developer support | check_circle | cancel |
| verified PS 1.7, 8 & 9 compatible | check_circle | help_outline |
| code Standardized clean code | check_circle | cancel |
| storefront Multi-store ready | check_circle | help_outline |
| money_off No hidden renewal fees | check_circle | cancel |
Find answers to frequently asked questions about this module
5-minute installation · Full documentation included
Full page cache: stored pages are sent before PrestaShop builds them, with no database query from the module,...
One contact form per subject, with conditional fields that appear according to the answers Advanced validation,...
WCAG 2.1 AA accessibility analysis of the real pages, contrasts included Safe automatic fixes, switched on one...
Complete GA4 tracking: 15 e-commerce events from click to payment, with consistent product data Purchases...
check_circle
check_circle