A free, multilingual and fully configurable cookie consent banner for WordPress.
It is GDPR/ePrivacy and Google Consent Mode v2 ready out of the box, with an
equally prominent "Reject all" button (in line with Datatilsynet / EDPB guidance)
and no pageview or domain limits. Everything runs locally — no account, no cloud,
no external requests on the front end.
This plugin helps you with cookie compliance but does not constitute legal advice.
Source code and issue tracker on GitHub:
https://github.com/andrey-tut/lynbro-cookie-consent
Free features:
- Accessible banner in the footer with equal Accept all / Reject all / Save
preferences buttons (rejection-equality, no dark patterns).
- Granular consent categories: Necessary (always on), Preferences, Statistics,
Marketing — with per-category toggles and descriptions.
- Script blocking before consent: mark scripts as
type="text/plain" data-lynbro-cc="statistics|marketing" and they only run
after the matching category is granted. Helper function included.
- Google Consent Mode v2 — free: all signals default to "denied" before consent
(ad_storage, analytics_storage, ad_user_data, ad_personalization,
functionality_storage, personalization_storage, security_storage), updated
after the visitor chooses.
- Geo-aware consent model: EU/EEA/UK → opt-in, US → opt-out (CCPA/CPRA), rest of
world → notice. Region detected from CDN/edge headers (e.g. Cloudflare); safe
opt-in fallback when unknown. No external geolocation API.
- Embed/iframe consent placeholders: YouTube, Vimeo, Google Maps, social embeds,
reCAPTCHA and more are blocked until consent and replaced with a tidy,
translatable placeholder with an "allow" button (and an optional "always allow
this service" choice). Zero layout shift — placeholders reserve the iframe size.
- Automatic blocking of well-known trackers by a built-in catalog (Google
Analytics/GA4, Google Tag Manager, Meta Pixel, Hotjar, Microsoft Clarity,
LinkedIn, TikTok and more) in addition to manual script marking. Extendable via
a filter.
- Global Privacy Control (GPC): honors the browser opt-out signal and, in
opt-out mode, automatically applies it with a visible confirmation (California
CPRA 2026).
- CCPA / CPRA "Do Not Sell or Share My Personal Information" link in opt-out mode.
- Cache & performance friendly: the consent core is automatically excluded from
delay/defer/minify/combine of WP Rocket, LiteSpeed, SiteGround Optimizer,
Autoptimize and Cloudflare Rocket Loader, with zero layout shift (CLS).
- Full customization without code: light/dark/auto theme (follows the visitor's
system), separate light and dark color sets, position (bottom bar, top bar,
floating box with corner choice, center modal), live admin preview and a
WCAG-AA contrast validator.
- Floating "Cookie settings" button (toggle, corner, label, icon) plus the
shortcode
[lynbro_cookie_settings] to re-open the banner at any time.
- Local consent log (proof of consent) stored in your own database — with the
policy version, chosen categories, method, language and region, and an
anonymised hash instead of a raw IP address. Includes an admin viewer and a
full CSV export of the entire log.
- WP Consent API compatible: registers as the consent provider and notifies other
plugins (functional / preferences / statistics / marketing).
- Settings import/export (JSON), per-page/post exclusions and policy versioning
with automatic re-consent when the version changes. No "accept on scroll".
- Accessibility: visible focus, ARIA roles, focus trap in the modal, large touch
targets, RTL ready, reduced-motion support.
- Private, cookieless statistics — stored only in your own database and fully
aggregated (no IP address, no visitor identifier, no personal data). See how
many visitors accept, reject or open preferences, the accept rate per period,
the average time to decision and the browser-language / device / OS mix. On by
default; can be turned off in one click.
- Optional benchmark sharing (off by default): when you opt in, the plugin sends
only aggregated weekly numbers and your site domain to the Lynbro portal so you
can see how your accept rate compares to the average. No visitor data is sent.
- Built-in feedback form: send ideas, requests or bug reports to the developers
straight from the admin (only when you click Send).
- Language on demand: request a translation for a locale that isn't bundled; it
is stored in your uploads folder (update-safe) and activated automatically.
- Lightweight vanilla JavaScript (no jQuery), no front-end external requests
beyond an optional, non-blocking statistics beacon to your own site.
- Truly multilingual and cache-safe: the initial banner language follows a
cache-safe cascade (current page language of Polylang/WPML/TranslatePress →
site language → English). Optional browser auto-detection and an in-banner
language switcher pick the best language entirely in the visitor's browser,
so full-page caches are never affected.
- Edit banner texts per language in the admin (title, description, buttons,
category names and descriptions), with the priority your override → bundled
translation → default. You can even add your own locale and texts.
- Fully translatable. Ships with 35 bundled languages — including all 24
official EU languages (Danish, German, French, Spanish, Italian, Dutch,
Polish, Swedish, Greek and more) — plus any other locale on demand and via
translate.wordpress.org.
- Developer-friendly: filters and a JS API
(
window.LynbroCookieConsent.getConsent() / .openSettings() / .onChange()).
Every feature listed here is included for free, with no pageview limits and
nothing locked behind a paywall.
Install
From your dashboard (recommended):
- Go to Plugins → Add New and search for "Lynbro Cookie Consent".
- Click Install Now, then Activate.
Or upload it manually:
- Download the .zip and go to Plugins → Add New → Upload Plugin, choose the
file and click Install Now, then Activate. (Or extract the folder to
/wp-content/plugins/lynbro-cookie-consent and activate it from the Plugins screen.)
It works out of the box
On activation the banner goes live immediately with safe, GDPR-ready defaults — an
equally prominent "Reject all", all non-essential cookies denied until consent, and
Google Consent Mode v2 set to "denied". You do not have to configure anything to be
compliant. Everything below is optional fine-tuning under
Settings → Cookie Consent.
Recommended first steps
- Categories — review the consent categories (Necessary, Preferences, Statistics,
Marketing) and edit their names/descriptions if you like.
- Region mode — choose how consent behaves by region (EU/EEA opt-in, US opt-out
/ CCPA, rest-of-world notice), or keep the safe opt-in default.
- Block your scripts — for trackers added by hand, mark them as
<script type="text/plain" data-lynbro-cc="statistics">…</script> (or marketing);
well-known trackers (GA4, GTM, Meta Pixel, Hotjar, Clarity, …) are auto-blocked.
- Google Consent Mode v2 — if you use Google Analytics/Ads/Tag Manager, leave it
enabled; signals default to "denied" and update to the visitor's choice automatically.
- Design — pick a layout (bottom/top bar, floating box, center modal), colours and
the floating "Cookie settings" button, with a live device-switchable preview.
- Languages — 35 languages ship in the box; enable browser auto-detection and the
in-banner switcher, or edit texts per language (you can add your own locale too).
Verify
Open your site in a private window — the banner should appear. Choose an option, then
re-open it via the floating button or the
[lynbro_cookie_settings] shortcut to change
it. Proof-of-consent records and cookieless statistics appear under
Settings → Cookie Consent → Consent Log / Statistics.