

<strong>Cookie consent banner on the frontend</strong> -- GDPR-ready banner in the bottom-left corner with "Customize", "Reject All" and equal-weight "Accept All" buttons. Shown only on the first visit until the visitor makes a choice.
Tired of cookie consent plugins that lock essential features behind paywalls, require cloud accounts, or send your visitors’ data to third-party servers?
FAZ Cookie Manager is a WordPress plugin that helps you implement cookie consent and privacy workflows for international regulations — completely free, with no strings attached.
No account to create. The plugin requires no cloud service connection. Basic features like consent logging and geo-targeting are included — no premium plan needed. Core consent features run on your own server, and you own all your data.
Most cookie consent plugins follow the same pattern: a free version with crippled features, and a paid tier starting at $10-50/month that unlocks what you actually need (cookie scanning, consent logs, Google Consent Mode, IAB TCF). FAZ Cookie Manager breaks that model:
HttpOnly ones your browser hides from scripts, are captured from the server response itself: from pages, AJAX, REST calls and sub-resources, then replayed across the URLs the crawl actually visited. Those are exactly the cookies that get set before consent, so a declaration built without them is incomplete.[faz_cookie_policy_complete]. Ships in en, it, fr, de, es, pt-BR, bg and cs, and every section can be rewritten per jurisdiction and language.type="text/plain" data-faz-category="analytics" to hold it until that category is accepted; it runs on its own as soon as consent is granted, and on every later page load.This plugin assists consent and privacy workflows. It does not itself create, provide, or guarantee legal compliance, and you remain responsible for the final configuration for your site and jurisdiction.
Try FAZ Cookie Manager in WordPress Playground — no account, no install, runs entirely in your browser.
Core banner functionality runs on your WordPress site. Optional update/download features may contact GitHub, IAB Europe, MaxMind, ipinfo.io (opt-in VPN detection), or the AMP CDN depending on which features you enable and use.
A dedicated Cookie Policy admin tab and the [faz_cookie_policy_complete] shortcode build a policy page from the cookies your site actually sets.
lang="it" or let the browser decide.admin_email or blogname.The older [faz_cookie_policy] and [faz_cookie_table] shortcodes and the faz/cookie-table block are unchanged.
Two orthogonal features that combine freely: the visitor’s country decides which banner is served, the visitor’s browser language decides the translation shown inside it.
Geo-routing picks a banner per country — typically a strict GDPR banner for the EU/EEA/UK and a CCPA opt-out banner for California — resolving the country from Cloudflare’s CF-IPCountry header (opt-in), then a server GeoIP module or extension, then the self-hosted MaxMind GeoLite2 database. All four are local to your server or your CDN edge; no visitor IP is sent to a third party for country resolution. When none of them is available the most-protective GDPR ruleset is applied to every visitor. Translations live inside each banner and are resolved client-side from navigator.languages, so a country-targeted banner still works behind a full-page cache.
In practice that means two banner rows rather than eight: one EU banner holding English, Italian, German, French and Polish, one US banner holding English and Spanish.
Summary. This plugin is cloud-free: consent is stored on your own site and there is no vendor account, dashboard or telemetry. Below is the full outbound picture, one heading per item — the optional features that contact an external host (none run unless you enable them), the public REST endpoints this plugin exposes on your own domain, and a note on third-party domain strings that appear in the code as matching patterns and are never contacted. Each entry states its trigger, what leaves your server, and the provider’s terms.
Used to refresh the built-in cookie definitions snapshot for the optional auto-categorize feature.
Triggered when: you click the definitions update action in the Cookies screen, or once a week after explicitly enabling “Update cookie definitions weekly” in Settings. Automatic updates are off by default; disabling the option cancels scheduled downloads. Failed downloads retain the existing database. The bundled snapshot remains available without enabling network updates.
Data sent: your server IP address and standard HTTP request headers.
Service URLs:
* https://raw.githubusercontent.com/fabiodalez-dev/Open-Cookie-Database/master/open-cookie-database.json
Terms of Service / Privacy Policy:
* https://docs.github.com/en/site-policy/github-terms/github-terms-of-service
* https://docs.github.com/en/site-policy/privacy-policies/github-privacy-statement
Used to download the Global Vendor List and purpose translations for the optional IAB TCF feature.
Triggered when: you manually update the vendor list, and weekly while IAB TCF is enabled.
Data sent: your server IP address and standard HTTP request headers.
Service URLs:
* https://vendor-list.consensu.org/v3/vendor-list.json
* https://vendor-list.consensu.org/v3/purposes-en.json
Privacy Policy:
* https://iabeurope.eu/privacy-policy/
Used to download a GeoLite2 database for optional geo-targeting. You choose the edition in Settings GeoIP Database: the smaller Country edition (default, country-level only) or the larger City edition (adds region/subdivision data for sub-national province/state routing such as Quebec Law 25). City is a much larger download; pick it only if you rely on region-level routing.
Triggered when: you enter a MaxMind license key in Settings and start the database download.
Data sent: your server IP address, the license key you provide, and standard HTTP request headers.
Service URL:
* https://download.maxmind.com/app/geoip_download
Terms of Service / Privacy Policy:
* https://www.maxmind.com/en/terms-of-use
* https://www.maxmind.com/en/privacy-policy
The live geo-ruleset runtime applies jurisdiction-specific consent defaults and mandatory controls. If an administrator explicitly enables ipinfo.io, the jurisdiction pipeline may use it to classify a visitor as VPN/proxy/Tor and apply the most-protective fallback; the Geo-routing admin preview uses the same detector. Leave this integration disabled to keep visitor geolocation entirely on trusted headers and the local GeoLite2 database.
Triggered when: an administrator has configured an ipinfo API key, confirmed the transfer terms, and enabled the integration, then either a visitor-facing jurisdiction lookup or an admin preview runs the geo detector. Without that explicit opt-in, ipinfo is never called.
Data sent: the visitor IP address or the IP entered/resolved for an admin preview, the configured API key, and standard HTTP request headers. The result is cached locally for 24 hours hash-keyed by IP.
Service URL:
* https://ipinfo.io/{ip}/privacy
Terms of Service / Privacy Policy:
* https://ipinfo.io/terms-of-service
* https://ipinfo.io/privacy-policy
* DPA (Data Processing Agreement) available on request: https://ipinfo.io/contact
Serves the banner configuration to the visitor’s browser under Cache Compatibility Mode, so a full-page cache can store one visitor-invariant HTML document while the banner still resolves per request. Hosted by this WordPress install; no third-party host is involved.
Triggered when: Cache Compatibility Mode is enabled and a visitor loads a page with no stored consent.
Data sent: nothing about the visitor. The response carries banner text, categories and styling only.
Service URL:
* https://{your-site}/wp-json/faz/v1/banner
Used by the plugin’s AMP banner to reconcile the AMP consent cache with the first-party FAZ consent cookie. Both are hosted by the same WordPress install. Requests must pass AMP CORS provenance checks — the publisher origin, or that publisher’s exact HTTPS Google AMP Cache origin with the matching __amp_source_origin. Arbitrary origins, another publisher’s cache subdomain, and requests without AMP provenance are rejected before consent can change. Sites on another registered AMP cache can add their own verified exact origin with the faz_amp_consent_allowed_cache_origin filter.
Triggered when: an AMP page checks an existing decision, or the visitor saves AMP cookie preferences.
Data sent: banner scope, consent state, per-category purpose choices, and the AMP-generated user ID that amp-consent includes. FAZ neither stores nor logs that ID, and does not derive its consent identifier from it. The update endpoint tries to synchronise the first-party cookie with SameSite=None; Secure; a browser that blocks third-party cookies may refuse it behind an AMP Cache, and the bridge then fails closed and asks again rather than claiming cross-origin parity it cannot guarantee.
Service URLs:
* https://{your-site}/wp-json/faz/v1/amp-consent/check
* https://{your-site}/wp-json/faz/v1/amp-consent/update
Used only on AMP pages when the AMP consent integration is active, to load the official amp-consent component required by AMP.
Triggered when: an AMP page renders the AMP consent banner.
Data sent: the visitor IP address and standard browser request data to the AMP CDN.
Service URL:
* https://cdn.ampproject.org/v0/amp-consent-0.1.js
Documentation / Privacy:
* https://amp.dev/documentation/components/amp-consent
* https://policies.google.com/privacy
Used only when you enter one or more Google tag IDs under Google Consent Mode Google Tag, to load Google’s tag in the visitor’s browser on your behalf. The plugin loads nothing from Google while that field is empty.
Triggered when: a visitor accepts the consent category the tag belongs to (Analytics for G-/GT- IDs, Marketing for AW-/DC- IDs, the catalogue category of Google Tag Manager for GTM- IDs). With Advanced Consent Mode enabled, the gtag.js tags for G-/GT-/AW-/DC- IDs load on page view before consent in Google’s cookieless mode; Tag Manager containers wait for consent unless you also turn on “Also load the Google Tag Manager container before consent”, in which case they load on page view as well, behind the same denied consent default. Nothing is loaded on pages where the consent banner is turned off.
Data sent: by the visitor’s browser, directly to Google: the visitor IP address, standard browser request data, the configured tag IDs, and whatever the tag itself collects under the consent state the plugin signals. Your server sends nothing to Google.
Service URLs:
* https://www.googletagmanager.com/gtag/js
* https://www.googletagmanager.com/gtm.js
Terms of Service / Privacy Policy:
* https://marketingplatform.google.com/about/analytics/terms/us/
* https://policies.google.com/privacy
The source contains third-party domain names (js.stripe.com, connect.facebook.net, googletagmanager.com and …