Skip to content

Works with your stack

Cookie consent for a non-profit website

free for associations that sell nothing

← Cookie Rocks for your stack

An association or a club still uses cookies when it embeds a video, shows a map, counts visits or adds a newsletter form. An association that sells nothing, with no advertising and no affiliate links, can ask for a free Community key: every feature, exactly like a paid key.

Cookie Rocks with a free Community key

Everything Cookie Rocks does, free for Non-profit websites

A Community key opens the complete plugin, exactly like a paid key. Here is what matters most for this kind of site.

    Forms keep working

    Contact Form 7, WPForms, Gravity Forms, Forminator, Spectra and Divi forms protected by reCAPTCHA or hCaptcha ask before sending, and nothing the visitor typed is lost.

    Placeholders, not holes

    Videos, maps, music, social media posts and forms (YouTube, Vimeo, Google Maps, Spotify, Instagram, X, TikTok, Typeform…) show a placeholder with a load button, in place, without breaking your layout.

  • In their language

    The banner, its details panel and the cookie policy in 54 languages: English, Arabic, Azerbaijani, Bulgarian, Bangla, Catalan, Czech, Danish, German, Greek, Spanish (Spain), Spanish (Mexico), Estonian, Finnish, French, Irish, Hindi, Croatian, Hungarian, Armenian, Indonesian, Icelandic, Italian, Japanese, Georgian, Kazakh, Korean, Kyrgyz, Lithuanian, Latvian, Macedonian, Mongolian, Malay, Maltese, Norwegian Bokmål, Nepali, Dutch, Polish, Portuguese (Brazil), Portuguese (Portugal), Romanian, Russian, Slovak, Slovenian, Albanian, Serbian (Cyrillic), Serbian (Latin), Swedish, Turkish, Ukrainian, Uzbek, Vietnamese, Chinese (Simplified) and Chinese (Traditional). With Polylang or WPML, the banner follows the language of each page. One option shows it in the visitor’s browser language instead, even when your site has no version in that language. The dashboard comes in 28 languages, the law sheets in 28.

  • Statistics

    How visitors answer the banner, day by day, over 30 days, 90 days or 12 months, drawn by the plugin from the register of proofs, without any outside service.

  • Register of proofs

    Every choice is recorded on your site and kept for the months you choose, never less than the choice itself plus 12 months, or what a country you target requires. Then it is deleted automatically. An optional daily or weekly copy goes to your own storage: Dropbox, a WebDAV server, a signed webhook or an e-mail address. It goes straight from your site, never through ours.

  • Accessible

    Keyboard and screen reader friendly. Light, dark or automatic theme, a discreet box or a bar, rounded or square corners, in your colours.

Every feature →

What matters for consent with Non-profit websites

A free key for associations that sell nothing

Clubs and associations without a shop, youth movements, sports clubs and student circles can ask for a free Community key. It covers one domain or subdomain and is renewed each year in one click, as long as the site stays non-commercial. The credit sentence at the end of the cookie policy stays: it is the counterpart of the free key.

Forms and captchas

A captcha that needs consent can stop a form from sending. Once allowed, a reCAPTCHA or hCaptcha form shows no message asking for consent.

Payments

Stripe and PayPal scripts can load on more pages than the payment itself, with fraud checks. Under EU law, outside the payment, they should wait for consent: the strict payments setting holds them there.

Videos and maps

A YouTube video or a Google map waits behind a message with a Load button, and loads in place after the click.

Newsletters and statistics

Sign-up forms and popups can add a tracker of their own. Google Analytics needs consent under the GDPR and similar laws; some statistics plugins count on your own site instead.

What our tests found on Non-profit websites

  • Set before the choice · Cookie RocksAtlas Major stops calling Google Fonts once the copy is done

    With Cookie Rocks Pro 2.11.0 and WP Go Maps' Atlas Major interface, local fonts on and the copy done, nothing goes to Google Fonts before the choice: the stylesheet is served from the site. Without local fonts, or before the scheduled copy has run, Atlas Major's @import still calls fonts.googleapis.com before the choice.

    Seen in our tests, 6 November 2026, Cookie Rocks.

  • Set before the choice · WP Go MapsWith Cookie Rocks, WP Go Maps' Google map starts without a reload

    Google engine, consent option on or off: nothing to Google before the choice; a placeholder, then the map after Accept all, without a reload.

    Seen in our tests, 6 November 2026, WP Go Maps 10.1.10.

    Full detail

    With the Google engine of WP Go Maps 10.1.10, its consent option on or off, Cookie Rocks 2.10.1 sends nothing to Google before the choice, and after Accept all the map appears without a reload. After Reject all or a withdrawal, nothing loads. Until then a placeholder of the same size holds the place of the map, with a Load the map button that starts it. Cookie Rocks tells WP Go Maps on the server that consent is handled, so no cookie is set in the visitor's browser for this.

  • Set before the choice · Cookie RocksCookie Rocks holds the Leaflet map of WP Go Maps until the visitor accepts

    Nothing reaches unpkg.com or OpenStreetMap before Accept, and the map draws without a reload.

    Seen in our tests, 6 November 2026, Cookie Rocks.

    Full detail

    Cookie Rocks 2.11.0 holds the Leaflet engine of WP Go Maps 10.1.10. Before the choice and after Refuse, nothing goes to unpkg.com or the OpenStreetMap tile servers. After Accept, the libraries and tiles load and the map draws without a page reload.

  • Good to know · WP Go MapsWP Go Maps picks its interface at random on a new install

    On a new install, WP Go Maps 10.1.10 picks its interface at random, one chance in two: Atlas Novus or Atlas Major. Two fresh sites with the same settings can therefore behave differently. Atlas Major's stylesheet loads Plus Jakarta Sans and IBM Plex Mono from Google Fonts through an @import, which does not show in the page's HTML.

    Seen in our tests, 6 November 2026, WP Go Maps.

  • Good to know · Drag and Drop Multiple File Upload for Contact Form 7What Drag and Drop Multiple File Upload for Contact Form 7 stores in browsers

    Drag and Drop for CF7: dnd_wpcf7_session_id and dnd_cf7_token_* (necessary, 24 h, upload field only).

    NameKept inCategoryWhat it is for
    dnd_wpcf7_session_idlocalStorageNecessaryKeeps the visitor's upload folder for the form, 24 hours
    dnd_cf7_token_*localStorageNecessaryKeeps the token of the visitor's upload folder, 24 hours
    *_count_fileslocalStorageNecessaryCounts the files added to the upload field

    Read in its code, 4 November 2026, Drag and Drop Multiple File Upload for Contact Form 7.

    Full detail

    On a page with its upload field, the plugin keeps in local storage dnd_wpcf7_session_id (a random upload folder and the time it was made), dnd_cf7_token_<folder> (a random token for that folder) and <field>_count_files. It deletes the folder and token after 24 hours. They let the visitor's files reach the form; nothing is sent elsewhere. The Audit 2.9.11 shows the observed dnd_cf7_token_<uuid> under the site's own name as an identifier to check, although the same plugin's code pattern dnd_cf7_token_* is in its list.

See the 17 other findings
  • Good to knowCookie Rocks lists Wordfence, Forminator, WP WhatsApp and WPForms Pro cookies
    • Each appears in its cookie list with its purpose.
    • Wordfence: wfCBLBypass, wf_loginalerted_*, wfls-remembered-*.
    • Forminator: poll-cookie-*, forminator_stripe_payment_owner.
    • WP WhatsApp: nta-wa-gdpr. WPForms Pro: _wpfuuid.

    Read in its code, 18 October 2026.

    Full detail

    Cookie Rocks lists the site cookies of Wordfence (wfCBLBypass, wf_loginalerted_*, wfls-remembered-*), Forminator (poll-cookie-*, forminator_stripe_payment_owner), WP WhatsApp (nta-wa-gdpr) and WPForms Pro (_wpfuuid) in the cookie list it writes, with their purpose.

  • Good to know · Contact Form 7, WPForms Lite, Forminator, Fluent Forms, Ninja FormsFive form plugins set nothing on a default home page

    by default: Default settings

    With default settings and no form on the page, Contact Form 7, WPForms Lite, Forminator, Fluent Forms and Ninja Forms set no cookie, store nothing and load no known third-party tool.

    Seen in our tests, 17 October 2026, Contact Form 7, WPForms Lite, Forminator, Fluent Forms, Ninja Forms 6.2.2, 2.0.2.2, 1.58.2, 6.2.16, 3.15.6.

    Full detail

    On a fresh WordPress home page with default settings, Contact Form 7, WPForms Lite, Forminator, Fluent Forms and Ninja Forms set no cookie, keep nothing in the browser's storage and load no known third-party tool, before or after Accept all (no form or captcha placed on the page).

  • Good to know · TranslatePress, Weglot, Instagram Feed, WP Go Maps, MailPoet, MatomoTranslatePress, Weglot, MailPoet and others set nothing by default

    by default: Default settings

    With default settings and nothing set up, TranslatePress, Weglot, Instagram Feed, WP Go Maps, MailPoet and Matomo for WordPress set no cookie, use no storage and load no known third-party tool.

    Seen in our tests, 17 October 2026, TranslatePress, Weglot, Instagram Feed, WP Go Maps, MailPoet, Matomo 3.3.8, 6.4.3, 6.14.0, 10.1.10, 5.42.0, 5.13.1. Source

    Full detail

    On a fresh WordPress home page with default settings (no account, key or content set up), TranslatePress, Weglot, Smash Balloon Instagram Feed, WP Go Maps, MailPoet and Matomo for WordPress set no cookie, keep nothing in the browser's storage and load no known third-party tool, after Accept all.

  • Set before the choice · Contact Form 7Contact Form 7 loads reCAPTCHA on every page, not only form pages

    Once keys are saved, reCAPTCHA runs on each page load. Turnstile also loads on every page, and Stripe wherever CF7 scripts load. A filter can switch reCAPTCHA to www.recaptcha.net.

    Read in its code, 16 October 2026, Contact Form 7 6.2.2.

    Full detail

    Once reCAPTCHA keys are saved, Contact Form 7 enqueues google-recaptcha (api.js?render=) and wpcf7-recaptcha on every page, not only pages with a form, and calls grecaptcha.execute on each page load. Turnstile (challenges.cloudflare.com/turnstile/v0/api.js) also loads on every page once its keys are saved, and js.stripe.com/v3/ wherever CF7 scripts load when Stripe is set up. The filter wpcf7_use_recaptcha_net switches reCAPTCHA to www.recaptcha.net.

  • Good to know · Contact Form 7Contact Form 7 sets no cookie and contacts no other site by default

    Other sites are contacted only when reCAPTCHA, Turnstile, Akismet, Stripe or a mailing tool is on. A submission records time, IP address, port, browser and page address.

    Read in its code, 16 October 2026, Contact Form 7 6.2.2.

    Full detail

    Contact Form 7 reads and sets no cookie and sends nothing to other sites unless reCAPTCHA, Turnstile, Akismet, Stripe or a mailing tool is turned on. A submission records timestamp, IP address, port, user agent and page URL. The nonce is added only for logged-in users, so a cached form page stays valid for visitors. It does not use WP Consent API.

  • Good to know · Contact Form 7Without reCAPTCHA loaded, Contact Form 7 files messages as spam

    The form is then sent without a token, filed as spam and no e-mail is sent. An empty Turnstile token is also treated as spam.

    Read in its code, 16 October 2026, Contact Form 7 6.2.2.

    Full detail

    If grecaptcha is missing, Contact Form 7's wpcf7-recaptcha script stops with an error before it wraps the submit, so the form is sent without a token and CF7 files it as spam ('reCAPTCHA response token is empty.') and sends no email. An empty Turnstile token is also treated as spam.

  • Set before the choice · WPForms LiteWPForms loads its captcha only on pages with a form that uses it

    It loads reCAPTCHA, hCaptcha or Turnstile in the footer of those pages only. Its No-Conflict mode removes other captcha scripts, but not those from recaptcha.net.

    Read in its code, 16 October 2026, WPForms Lite 2.0.2.2.

    Full detail

    WPForms loads its captcha only on pages that show a form using it, in the footer: reCAPTCHA (www.google.com/recaptcha/api.js), hCaptcha (hcaptcha.com/1/api.js) or Turnstile (challenges.cloudflare.com); the address can be changed with the wpforms_frontend_captcha_api filter. Its No-Conflict mode dequeues other scripts from google.com/recaptcha, gstatic.com/recaptcha and hcaptcha.com/1, but not recaptcha.net. It sends a Permissions-Policy header for private state tokens on every request.

  • Depends on a setting · MC4WP: Mailchimp for WordPressMC4WP's tracking pixel loads on every page with no wait for consent

    setting “Enable Site Tracking” · by default: off

    Off by default. After a sign-up, the email is sent to Mailchimp only if the pixel is already loaded, so it is lost if the pixel is held and accepted later on that page.

    Read in its code, 16 October 2026, MC4WP: Mailchimp for WordPress 4.14.1.

    Full detail

    MC4WP's Site Tracking Pixel (off by default) enqueues Mailchimp's script chimpstatic.com/mcjs-connected/js/users/<id>.js (handle mc4wp-mailchimp-site-tracking-pixel, defer) on every public page, with no setting to wait for consent. After a sign-up, an inline footer script calls $mcSite.pixel.api.identify with the subscriber's email only if the pixel is already loaded, so it is lost if the pixel is held and accepted later on the same page.

  • Depends on a setting · MailPoetMailPoet forms load Google or Cloudflare captcha only when it is chosen

    setting “Load 3rd-party libraries” · by default: off

    The built-in captcha sets no cookie. Google Fonts load only with Load 3rd-party libraries on (off by default). If the captcha script is held, the form cannot be sent before consent.

    Read in its code, 16 October 2026, MailPoet 5.42.0.

    Full detail

    MailPoet forms load www.google.com/recaptcha/api.js or challenges.cloudflare.com/turnstile only when that captcha is chosen; the built-in captcha uses a hidden field and no cookie. Google Fonts in forms load from fonts.googleapis.com only when Load 3rd-party libraries is on (off by default). If the captcha script is held, public.js retries 20 times every 400 ms then gives up, so the form cannot be sent before consent.

  • Sent from your server · MailPoetMailPoet sets long-lived tracking cookies from the server, out of banners' reach

    setting “Engagement analytics tracking” · by default: full

    • With the default level (Full), mailpoet_subscriber (10 years) is set when a known subscriber logs in or orders.
    • mailpoet_page_view (10 years) is then set on public pages.
    • A newsletter click sets mailpoet_revenue_tracking (14 days) and mailpoet_subscriber.
    • The Partial or Basic level, or the mailpoet_is_cookie_tracking_enabled filter, stops them.

    Read in its code, 16 October 2026, MailPoet 5.42.0.

    Full detail

    With the default Engagement analytics tracking level (Full), MailPoet sets from PHP mailpoet_subscriber (10 years) when a known subscriber logs in, confirms, registers or places a WooCommerce order, then mailpoet_page_view (10 years) on public pages at most once a minute; a click in a newsletter sets mailpoet_revenue_tracking (14 days) and mailpoet_subscriber before redirecting. A consent plugin cannot hold them. Partial or Basic, or the mailpoet_is_cookie_tracking_enabled filter, stops them.

  • Set before the choice · The Events CalendarThe Events Calendar shows a Google map on events with an address by default

    setting “Enable Maps” · by default: on

    With the built-in key the map is a Google iframe; with the site's own key, Google's map script loads. The plugin sets no cookie or storage. Its suggested policy text says no data leaves the site.

    Read in its code, 16 October 2026, The Events Calendar 6.18.2.

    Full detail

    The Events Calendar shows a Google map on events with an address by default (maps enabled, Show Google Map ticked for new events). With the key built into the plugin, the map is an iframe to www.google.com/maps/embed/v1/place in the HTML; with the site's own key, it loads maps.googleapis.com/maps/api/js and embedded-map.js draws the map on page load. The plugin sets no cookie and uses no browser storage on visitor pages, and its calendar export links load nothing until clicked. Its suggested privacy policy text says no data leaves the site by default.

  • Set before the choice · WP Go MapsWP Go Maps loads map libraries from other sites with no consent condition
    • Leaflet engines load from unpkg.com, the newer OpenLayers engine from cdn.jsdelivr.net.
    • They load even when its own consent notice is on.
    • Map tiles are requested by script, so a consent plugin reading the HTML misses them.
    • The Google engine adds a maps.googleapis.com script.

    Read in its code, 16 October 2026, WP Go Maps 10.1.10.

    Full detail

    WP Go Maps loads its map libraries without any consent condition: the Leaflet engines, including the zero-cost engine of new installs, from unpkg.com (leaflet, maplibre-gl); the newer OpenLayers engine from cdn.jsdelivr.net; the classic OpenLayers engine from the site (lib/ol.js). These load even when its own consent notice is on. With OpenStreetMap-type engines the map and its tiles (tile.openstreetmap.org, tiles.openfreemap.org and others) are requested by JavaScript, so a consent plugin reading the page HTML does not see them. The Google engine adds a maps.googleapis.com script tag with a callback.

  • Sent from your server · WP Go MapsWP Go Maps address search sends the search text to OpenStreetMap

    With an OpenStreetMap engine, WP Go Maps' address search goes through the site's REST route query-nominatim: the browser contacts only the site, and the server sends the visitor's search text to nominatim.openstreetmap.org.

    Read in its code, 16 October 2026, WP Go Maps 10.1.10.

Questions

Does every association get a free key?

No. An association that sells products, lives on advertising or carries affiliate links takes a paid key, with 30 days free. Every request is read by a person, who may decline it. See the Community rules.

Which plugins have their own page?

See payment plugins, newsletter plugins, bookings and events and statistics plugins.

What happens after the 30-day trial?

The banner, your visitors’ choices and your proofs of consent keep working. Without a key, most settings lock, updates and support stop. Take a key at any time and everything opens again.

For associations and clubs

Every feature, free for your association.

free for associations that sell nothing

Three fields, one minute, read by a person. Your key arrives by e-mail, renewed each year in one click while the site stays non-commercial.