Free plugin · WordPress · GPL
Cookie consent,
light and honest.
A banner that asks for consent properly, tells your Google tags about it through Consent Mode v2, and keeps the proof the GDPR asks you to have. Self-hosted: no external requests, no account, no per-site licence.
Under review on WordPress.org. In the meantime, the download above is the same build.
We use technical cookies and, with your consent, statistics and marketing cookies. You can accept, reject or customise your choice.
Consent log — what gets written to your own database
The difference
It won't let you paste JavaScript.
That's the point.
Almost every consent plugin hands you a textarea and invites you to paste your tracking code into it. That turns the plugin into a channel for running arbitrary JavaScript on every page of your site — and it is how people end up pasting something they did not write and do not understand. Here, tags are gated in two ways, and in neither of them does the plugin touch your code.
1 · By ID
You enter the identifier, nothing else. The plugin checks it against a strict pattern, discards anything that is not a well-formed ID, and composes the vendor's official snippet itself.
Tag Manager GTM-XXXXXXX
Meta Pixel 123456789012345
2 · By attribute
For anything else, the code stays where it already lives — your theme, or the plugin that owns it. You mark it up, and we only decide when it may run.
data-dcc-consent="marketing"
src="..."></script>
What's inside
A few things, done properly.
01
Consent Mode v2
Denied by default, set before any Google tag loads. Signals flip to granted only once the visitor consents.
02
Consent log
One record per action: the proof Article 7(1) GDPR asks for. CSV export and automatic deletion on expiry. The IP is never stored in clear — it is hashed one-way.
03
Theme-proof
The banner lives in a Shadow DOM: theme CSS cannot reach it, not even with !important.
It looks the same on every theme.
04
Equal prominence
Accept, Reject and Customise carry the same visual weight, as the Italian Garante's guidelines require. No dark patterns.
05
Self-hosted
No external requests, no phone-home, no account, no licence. Everything runs on your own server and in the visitor's browser.
06
180 days, and a version
A first-party cookie that expires after 180 days. Change the policy version and everyone is asked again.
07
Withdrawable
A small persistent control sits in the corner after the choice is made. Consent that cannot be taken back is not consent.
08
About 6 KB, gzipped
The whole front end is one script and one stylesheet — no jQuery, no framework, no dependency of any kind. That is what lightweight means here.
Honesty
No plugin makes you compliant.
Not this one either.
Be wary of anyone who promises otherwise. Compliance depends on your cookie policy, the tags you actually load and how you configure them. This plugin gives you the technical mechanisms; the rest is a judgement, and it stays yours.
What it does
- Keeps tags blocked until the visitor consents
- Tells Google about the consent via Consent Mode v2
- Keeps exportable proof of the consent collected
- Categories named after their purpose, as the Garante requires
- Lets visitors withdraw consent at any time
What it does not do
- It does not write your cookie policy
- It does not discover tags loaded by other plugins on its own
- It certifies nothing, and it will not shield you from a fine
- It does not accept pasted code
- It sends data nowhere — least of all to us
- It is not (only) the GDPR
- The duty to ask for consent before writing cookies comes from the ePrivacy Directive — in Italy, art. 122 of the Codice Privacy and the Garante's 2021 cookie guidelines.
- Where the GDPR comes in
- It defines what valid consent is (art. 4 and 7) and requires you to be able to demonstrate it (art. 7(1)). That is exactly why the log exists.
- Requirements
- WordPress 6.2+ · PHP 7.4+ · GPL-2.0-or-later · English and Italian included.
Download it. Free, and staying free.
Part of DSGN's line of free WordPress tools: few, essential, and honest about what they don't do.
Need a hand getting this right for real? commerciale@dsgngroup.it
