Guide
GDPR-friendly A/B testing without cookies: what EU websites should check
Several A/B testing tools suit EU websites, but "no cookies" alone doesn't settle it: the ePrivacy rules cover any storage on the visitor's device, local storage included, and the GDPR covers the data sent back. Check for a DPA, EU hosting, aggregate counts instead of visitor profiles, and consent integration. Duelpilot sets no cookies, keeps daily totals and is hosted in Frankfurt; PostHog offers EU hosting and GrowthBook can be self-hosted. Whether consent is needed is the site owner's call.
Last reviewed Markdown version
Not legal advice
This guide explains how A/B testing tools store and send data, so you can ask the right questions. Whether a test needs consent on your site, and in which banner category it belongs, is a decision for you and your data protection officer or lawyer.Two sets of rules, two questions
The ePrivacy Directive (Article 5(3)) covers storing information on, or reading it from, a visitor's device: that is allowed only with consent or where it is necessary for the specific purposes the article lists. The European Data Protection Board says the provision does not apply exclusively to cookies but also to "similar technologies", and its guidelines discuss local storage alongside cookies (EDPB Guidelines 2/2023).
The GDPR covers personal data: identifiers, IP addresses, anything that can single out a visitor. It asks for a lawful basis, a data processing agreement (DPA, Article 28) with every processor, and safeguards for transfers outside the European Economic Area.
A testing script touches both. To show a returning visitor the same version, it usually stores an assignment on the device (ePrivacy). To measure the result, it sends something back to a server (GDPR, if that is personal data). A tool can reduce both, but no tool can decide the legal question for you.
Why "without cookies" isn't the whole answer
- Replacing cookies with local storage changes the technology, not the rule: device storage is still device storage.
- Fingerprinting instead of storage is no way out either; the EDPB guidelines build on the earlier Article 29 Working Party opinion that fingerprinting falls under the same article.
- Truly storing nothing has a statistical cost: a returning visitor can't be recognised, may land in another version, and multi-visit journeys (travel, B2B) dilute the effect.
- What happens after storage matters as much: a tool that keeps per-visitor event logs or session recordings processes far more personal data than one that keeps daily totals.
What to check in a tool
| Question | What to look for |
|---|---|
| What does the script store on the device? | A documented list of keys, where they live (cookie, local or session storage) and for how long; a mode that keeps assignments for the session only. |
| How does it follow consent? | Integration with your consent manager (Google Consent Mode, IAB TCF, the major CMPs); without consent, the original page and nothing stored or sent. |
| What is sent back, and kept? | Counts or aggregates rather than visitor-level records; no session recordings unless you want them; how IP addresses are handled. |
| Is there a DPA, and who are the sub-processors? | A DPA under GDPR Article 28 and a public sub-processor list with locations. |
| Where is the data hosted and transferred? | EU hosting, and which data, if any, leaves the EEA and under which safeguards. |
| What goes to your analytics? | Variant events sent to GA4 or another tool fall under that tool's own consent settings. |
The consent decision
With a cookie banner on the site, there are two set-ups. Either the testing script always loads and itself holds back until the consent manager says yes (no flicker on the first consented page; visitors without consent see the original), or the consent manager blocks the script until consent (it then runs late, so the first consented page shows the original, and samples are smaller). Which one is allowed depends on how you classify A/B testing, and that is your decision.
Vendors put it the same way. Kameleoon's documentation offers a "consent required" and a "consent not required" policy, says the level depends on the applicable legislation, and advises consulting your DPO for the final decision (Kameleoon docs). AB Tasty's documentation offers no restriction, consent handled by a third-party tool, or consent delegated to AB Tasty's tag, and calls two of its own detection methods (any page action, or any other cookie, counting as consent) legacy methods that don't comply with ePrivacy, for staging only (AB Tasty docs).
Tools EU sites often consider
- PostHog: PostHog Cloud EU is hosted in Frankfurt, its GDPR page points to how to get a signed DPA, and it links a guide to cookieless tracking (PostHog docs).
- GrowthBook: can run on your own infrastructure with Docker Compose or a Helm chart, so the data stays where you host it (GrowthBook docs).
- Kameleoon and AB Tasty: consent settings built into the product, described above.
- Duelpilot: no cookies, daily totals, EU hosting and a public DPA, described below.
Each vendor's DPA and sub-processor list is the document to read before you decide.
How Duelpilot handles it
- No cookies. The script keeps a random visitor id and the versions shown in the browser's own storage on your domain (dp_vid, dp_first, dp_a in local storage). In cookieless mode they live in session storage and are gone when the tab closes, so returning visitors may switch versions. The random id stays in the browser: the script does not send it to us.
- Consent modes: off, Google Consent Mode, IAB TCF, Cookiebot or OneTrust categories, or an explicit call from your own code. In every mode but off, a visitor without consent gets the original page and nothing is stored or counted; a withdrawal stops counting at once.
- We count, we don't track: a few counting pings per test (version shown, goal converted, device type, new or returning) become daily totals. No visitor-level records, profiles or session recordings. About 1% of pageviews send a health ping with the page path.
- IP addresses are used in memory only, as a hash with a daily-changing salt for rate limiting, and never stored with the counts.
- The version shown is passed to the analytics tools you already use, such as GA4, where your own consent settings apply.
- A Data Processing Agreement under GDPR Article 28, part of the terms (a signed PDF on request). Hosting in Frankfurt on DigitalOcean; Cloudflare only for DNS and forwarding email to our addresses. Visitor data is never transferred outside the EEA.
Whether Duelpilot may run before consent, and in which banner category, stays your decision: the agent explains the two set-ups and asks you, and an owner sets the consent mode. Details are in our privacy policy and cookie policy.
Try Duelpilot with your own agent
Give your agent one line: set up Duelpilot for my site using /agents.md. It opens a workspace, installs and verifies the script, and drafts the first test; you approve it, then switch on autopilot if you like. Or see pricing.
€0 until you launch your first test
Questions
Do I need cookie consent for A/B testing?
It depends on how you set it up and on your national rules. The ePrivacy rules cover device storage, cookies or not, and allow it without consent only where it is necessary for the purposes they list. Whether A/B testing qualifies is a legal call for you and your DPO; choose a tool that works either way.
Is local storage exempt from the cookie rules?
No. The EDPB says Article 5(3) of the ePrivacy Directive applies not only to cookies but to similar technologies, and its guidelines discuss local storage alongside cookies.
Does Duelpilot sign a DPA?
Yes. The DPA at duelpilot.com/dpa is part of the terms, so you accept it when you create an account or choose a plan; a signed PDF is available on request. It lists the sub-processors: DigitalOcean in Frankfurt for hosting, and Cloudflare for DNS and email forwarding only.
Can an A/B test work without storing anything?
Yes, but each page view or session is then assigned on its own, so returning visitors may see another version and effects on multi-visit journeys are diluted. Duelpilot's cookieless mode keeps the assignment for the browser session only.
Sources
Last reviewed 2026-10-29. Spot an error? Tell us.
- Guidelines 2/2023 on Technical Scope of Art. 5(3) of ePrivacy Directive, version 2.0 (EDPB) (checked 2026-10-29)
- PostHog & GDPR compliance (checked 2026-10-29)
- Self-Hosting GrowthBook | GrowthBook Docs (checked 2026-10-29)
- Consent management | Kameleoon (checked 2026-10-29)
- How to choose your cookies deposit method | AB Tasty Docs (checked 2026-10-29)