Severity: HighOwner: CMP adminTime to fix: 1-2 h
Google Consent Mode mismatch
Fix cases where Google tags behave as if consent is granted even though runtime consent state says denied.
Covers: consent_mode_mismatch, consent_mode_default_granted, consent_mode_runtime_conflict
Why this matters
If Google Consent Mode signals denied consent while analytics or ad requests still load, the site creates a false appearance of compliance. This usually means tags, defaults, or runtime updates are configured inconsistently.
How to verify manually
- Open the site in a fresh session and inspect Google requests before any banner interaction.
- Check whether Consent Mode defaults are set to denied before Google tags initialize.
- Compare runtime consent state against actual network behavior after Accept and Reject.
Typical root causes
- Consent defaults are set too late, after Google tags already loaded.
- GTM tags ignore consent checks even though Consent Mode is enabled.
- Banner updates UI state but does not send a matching consent update to Google.
GTM fix
- Use Consent Initialization for your default denied state before any analytics or ads tags run.
- Require consent checks on GA4, Google Ads, Floodlight, and remarketing tags.
- Audit custom HTML tags that may load Google scripts outside GTM consent controls.
WordPress fix
- Enable Consent Mode integration in your CMP plugin if available.
- Verify that plugin-generated consent events fire before GA4 or Ads plugins load.
- Disable duplicate analytics plugins that bypass the CMP integration.
Generic fix
- Initialize Google tags only after a denied-by-default consent state is established.
- Send explicit consent updates on accept and reject actions.
- Ensure fallback defaults are denied whenever consent state is unknown.
How to confirm the fix worked
- Reject optional consent and confirm that Google analytics or ads requests do not fire.
- Accept consent and confirm requests start only after the consent update.
- Run a fresh scan and verify the mismatch finding disappears.
Next step
Re-scan after deployment to confirm that the runtime behavior changed, not just the banner copy.