You've installed a consent plugin, ticked "Google Consent Mode v2" and moved on. Then something doesn't add up. Maybe Google Ads still says consent signals are missing, Tag Assistant shows warnings, or GA4 traffic has fallen through the floor. This is a troubleshooting guide. If you're setting up from scratch, start with our WooCommerce consent setup guide.
First, gather the evidence (5 minutes)
- Open tagassistant.google.com and connect it to your site in a fresh private window.
- Before touching the banner, click the first event and open the Consent tab. Note the "On-page default" values for
ad_storage,analytics_storage,ad_user_dataandad_personalization. - Accept all and check the next event shows an "On-page update".
- Note any warnings Tag Assistant shows. A message that a tag read consent before a default was set is the most useful clue you'll get.
- In DevTools › Network, filter
collectand note thegcsvalue on Google hits (G100means both denied,G111means both granted).
Now match what you saw to the fixes below.
1. No default at all
Symptom: Tag Assistant shows no "On-page default". Google hits have no or unexpected gcs values before a choice.
Cause: the plugin's Consent Mode setting is off, belongs to a different plugin version, or only applies when the plugin's own script loads first.
Fix: turn on the plugin's Google Consent Mode v2 option and save. Clear every cache, then re-test. If you use GTM with a CMP template, check the template tag exists, is published and fires on Consent Initialization - All Pages.
2. Default set too late
Symptom: Tag Assistant warns that a tag fired or read consent before the default was set. The first GA4 hit may have _ga set.
Cause: GA4 or GTM loads above the consent default. This is common when Site Kit, a "header scripts" plugin or the theme outputs Google tags early in the <head>, and the CMP's default comes later.
Fix: make sure the default comes first. Use the CMP's GTM template on the Consent Initialization trigger, or move the Google tag to load after the CMP. If a plugin outputs gtag directly, check whether it has its own consent setting, or remove it and load GA4 through one controlled route.
3. A speed plugin is reordering scripts
Symptom: everything works with caching or optimisation disabled, and breaks when it's on. Or the banner appears late, after a scroll or click.
Cause: "Delay JavaScript", "Defer JS", "Load JS on interaction", or combine and minify features push the CMP or the consent default below GTM.
Fix: exclude the CMP's scripts, the consent default and GTM from delay, defer and combine. Most CMP vendors publish exclusion lists for popular caching plugins. Purge all caches, including host or CDN caches, and re-test in a private window.
Not sure what your store fires before consent?
Send us your URL and we'll run a free homepage pre-consent scan: which trackers and cookies load before a shopper chooses. No obligation.
Get my free scan Use the free checklist4. The update never arrives (or only on the click)
Symptom: after accepting, hits still show G100. Or the first visit after accepting is fine, but returning visitors show G100 on the first hits of each page.
Cause: the CMP's update isn't wired to Google, or it only sends the update on the click and not when it reads a stored choice.
Fix: check the CMP's Google Consent Mode integration is enabled (not just its script blocker). Then test a returning visit: accept, open a new tab in the same private window and load another page. The update should arrive before or with the first Google hit.
5. Only v1 signals are sent
Symptom: ad_storage and analytics_storage look right, but ad_user_data and ad_personalization are missing. Google Ads still shows consent warnings.
Cause: an older plugin version, an old GTM template, or a hand-written snippet from before v2.
Fix: update the plugin and GTM template, and check the Marketing category maps to all three ad signals. If you set the default yourself, add the two v2 signals. Our Google Ads consent diagnostics guide covers what Ads expects.
6. The banner isn't showing to UK visitors
Symptom: it works when you test through a VPN to an EU country, but not from the UK. Or the banner never appears at all for you.
Cause: geo-targeting set to "EU/EEA only" or a GDPR region list that excludes the UK.
Fix: add the United Kingdom to the regions that get the opt-in banner. Then check what default Consent Mode applies outside those regions. A denied default for UK visitors only helps if the plugin knows the visitor is in the UK.
7. Two consent tools, or two Google installs
Symptom: two different banners flash up, conflicting updates appear in Tag Assistant, or GA4 shows two measurement IDs.
Cause: an old cookie plugin wasn't removed when a new one was added. Or GA4 is loaded by Site Kit and GTM and a WooCommerce tracking plugin.
Fix: keep one CMP and one route for each Google tag. Deactivate and delete the rest, then purge caches.
8. GTM tags not respecting consent
Symptom: Google consent states look perfect, but Meta, TikTok or Hotjar fire before consent.
Cause: non-Google tags don't read Google Consent Mode.
Fix: in GTM, turn on Admin › Container settings › "Enable consent overview". Then add "Require additional consent" (ad_storage for ad pixels, analytics_storage for analytics tools) to every non-Google tag. Alternatively, let the CMP block those scripts.
9. GA4 numbers collapsed after the fix
Symptom: after enabling Consent Mode, GA4 users and purchases fell sharply.
Cause: partly expected, because visitors who reject are no longer tracked normally. But a very large drop suggests the update isn't working (see fix 4), or the default is "denied" for everyone, everywhere, and accepted choices aren't applied.
Fix: run the accept-all test. If accepted visits show G111 and a _ga cookie, consent is working and the remaining drop is real consent loss. Compare GA4 purchases with WooCommerce orders over a few weeks to get your new baseline. Our GA4 vs orders guide applies to WooCommerce too.
Still stuck? Test in isolation
On a staging copy, switch to a default theme and deactivate everything except WooCommerce, the CMP and your Google tag route. If it works, reactivate plugins one at a time, re-testing in a private window each time. It's slow, but it finds the culprit, and it's very often a caching or optimisation plugin.
Want it checked properly?
The TrackCheck Health Check is a fixed-price review for UK Shopify and WooCommerce stores: a full consent test (before choice, after "Reject all", after "Accept all", including Consent Mode v2 signals), a GA4-vs-orders reconciliation, a prioritised fix list and a recorded walkthrough, delivered in 5 working days.
See Health Check pricing Start with a free scanThis article is technical guidance, not legal advice. Platform menus change; check the vendor's current documentation if a setting has moved.