Consent Management Vendor Selection Checklist
Score 6 CMPs across 42 criteria and pick the right one in an afternoon — not three weeks of demos
Choosing a Consent Management Platform (CMP) is a 1-3 year commitment that touches legal, engineering, and marketing. Pick wrong and you inherit slow banners, broken Consent Mode, surprise per-domain pricing, and a migration project later. This checklist gives you a weighted scorecard, the exact questions to ask on every demo, and the red flags that disqualify a vendor on the spot.
Time to complete: ~3 hours including two trials. Reviewers needed: one engineer, one person who owns legal/privacy.
How to Use This Checklist
- Shortlist 3-6 vendors. Common ones: GetCookies, Cookiebot, OneTrust, Iubenda, CookieYes, Termly, Osano, Usercentrics, Klaro (open-source).
- Score each criterion 0-3 using the rubric below. Multiply by the section weight.
- Disqualify on any red flag before you bother scoring — those are deal-breakers, not trade-offs.
- Trial the top 2 on a real page for 48 hours before signing anything.
Scoring Rubric
| Score | Meaning |
|---|---|
| 0 | Not offered, or broken in trial |
| 1 | Present but weak / heavy manual work |
| 2 | Solid, meets the requirement |
| 3 | Best-in-class, exceeds the requirement |
A vendor needs an average of ≥2.0 overall AND zero red flags to be a safe choice.
Hard Red Flags (Disqualify Immediately)
- Banner cannot show a "Reject All" button with equal prominence to "Accept All" (illegal in the EU; CNIL, Garante, and the EDPB all require it)
- Non-essential cookies/tags fire before consent in your trial (open DevTools → Application → Cookies in incognito)
- No Google Consent Mode v2 support (required since March 2024 for Google Ads/Analytics in the EEA)
- No exportable, timestamped consent proof (you can't defend an audit without it)
- Pricing is per-domain with no warning and you run multiple domains/subdomains
- Banner adds >50ms to LCP or injects render-blocking JS (test in Lighthouse / WebPageTest)
- No Data Processing Agreement (DPA) available, or the vendor stores consent logs outside your required region
Section 1 — Cookie & Tag Discovery (Weight: 25%)
- 1.1 Automatic recurring cookie scanner (not a one-time scan) — ask the cadence: weekly is the floor
- 1.2 Detects cookies set by third-party tags and iframes, not just first-party
- 1.3 Auto-categorizes into Necessary / Functional / Analytics / Marketing with editable mapping
- 1.4 Flags new/unknown cookies since the last scan and alerts you
- 1.5 Maintains a maintainable cookie register you can export to CSV
Demo question: "Run a live scan of my staging site right now — show me the new-cookie diff from the last scan."
Section 2 — Banner & Consent UX (Weight: 20%)
- 2.1 Equal-weight Accept All / Reject All buttons (same size, color, position)
- 2.2 Granular per-category toggles in a preferences modal
- 2.3 No pre-ticked boxes; consent defaults to off for non-essential
- 2.4 Persistent "Manage cookies" link for re-consent (footer or floating button)
- 2.5 Full visual customization (CSS / theme) without paying for "custom branding" tier
- 2.6 WCAG 2.1 AA: keyboard-navigable, screen-reader labels, visible focus states
Demo question: "Show me the default banner with no styling. Is Reject All already equal to Accept All out of the box?"
Section 3 — Technical Integration (Weight: 20%)
- 3.1 Google Consent Mode v2 (basic + advanced) with documented setup
- 3.2 Google Tag Manager consent integration / native template
- 3.3 IAB TCF 2.2 support (only required if you serve programmatic ads)
- 3.4 Server-side / API consent retrieval for SSR frameworks (Next.js, Nuxt, Remix)
- 3.5 Blocks tags by default until consent (not "best-effort" client-side)
- 3.6 Async / non-render-blocking script; banner paints in <1s
- 3.7 Real SDK/snippet docs for your stack (React, Vue, WordPress, Shopify, etc.)
Demo question: "Paste me the exact GTM + Consent Mode v2 setup doc. How many steps to block GA4 before consent?"
Section 4 — Compliance Coverage (Weight: 15%)
- 4.1 Geo-targeting: GDPR for EEA/UK, opt-out model for US states, configurable per region
- 4.2 US state laws: CCPA/CPRA "Do Not Sell or Share" + Global Privacy Control (GPC) signal honored
- 4.3 Multi-language banners that match site locale automatically
- 4.4 Re-consent prompts when your policy or vendor list changes
- 4.5 Auto-generated, always-current cookie policy / disclosure table
Demo question: "Show me the same site rendering an EU banner and a California opt-out banner based on visitor region."
Section 5 — Records, Audit & Reporting (Weight: 10%)
- 5.1 Timestamped consent logs with version of the policy consented to
- 5.2 Exportable consent records (CSV/API) for audits and DSAR responses
- 5.3 Consent analytics: accept rate, reject rate, by region/page
- 5.4 Tamper-evident or immutable log storage
Demo question: "Export 10 consent records right now and show me the fields. Can a regulator verify these?"
Section 6 — Commercial & Support (Weight: 10%)
- 6.1 Pricing scales by pageviews/sessions, not per-domain, and you've modeled your real volume
- 6.2 No surprise overage fees; the published tier covers your traffic
- 6.3 Signed DPA + clear data residency (EU storage if you need it)
- 6.4 Documented SLA and support channel that fits your team (email/Slack/priority)
- 6.5 Migration path documented (you'll thank yourself later)
Demo question: "At [my monthly pageviews] across [N] domains, what's my exact yearly price including overages?"
Scorecard
Fill one row per vendor. Weighted score = Σ(section average × weight).
| Vendor | Discovery (25%) | Banner UX (20%) | Integration (20%) | Compliance (15%) | Records (10%) | Commercial (10%) | Red flags? | Weighted total |
|---|---|---|---|---|---|---|---|---|
Decision rule: Eliminate anything with a red flag. Among the rest, the highest weighted total wins. If two are within 0.2, the one with the faster banner and cheaper real-volume price wins.
The 48-Hour Trial Test (do this before signing)
- Install the banner on one real page (staging is fine).
- Open incognito + DevTools → Application → Cookies. Before clicking anything, confirm only essential cookies exist.
- Run Lighthouse. Note the LCP/TBT impact of the banner script.
- Click Reject All → refresh → confirm non-essential cookies are gone and the choice is remembered.
- Switch your IP/region (VPN) → confirm the banner adapts (EU vs US behavior).
- Export consent records and check they're audit-ready.
Any vendor that fails steps 2, 4, or 6 is out — those are the exact things regulators check.
How GetCookies answers this checklist
GetCookies is one of the vendors you can test against this list. What it does today:
- Cookie scanner on every plan (3 scans a month on Free, scheduled scans from Pro)
- Reject All button next to Accept All in the default banner
- Google Consent Mode v2 default and update signals on every plan; a Google Tag Manager template from Pro
- Geo-targeting for GDPR, UK GDPR and US opt-out notices from Pro; Global Privacy Control is honoured
- Consent logs with timestamp and categories, exportable as CSV
- Per-plan pricing by number of domains, not by pageviews: Free 1 domain, Starter EUR 9/month (3), Pro EUR 29/month (5), Business EUR 79/month (50)
- Not yet a registered IAB Europe CMP: if you need TCF strings, it does not fit yet
Scan your site free → getcookies.co
This checklist is for informational purposes and does not constitute legal advice. Have your legal/privacy owner sign off before launch.