What we check
The check pulls every Google ID from the executable parts of the HTML: GA4 properties (G-…), GTM containers (GTM-…) and Universal Analytics leftovers (UA-…). Prose does not count, so a blog article showing an example ID never triggers the finding, and case matters: g-recaptcha or a CSS class such as gtm-button are not IDs. More than one distinct ID of the same type, or any UA ID, yields "to review". One ID: ok.
When the deep scan runs, measurement joins in. The scan browser accepts the banner and counts the page_view pings per property (tid), split by page URL and consent stamp (gcs). More than one ping for the same combination: critical, because GA4 then counts the page load twice, whether a second tag or a trigger firing twice is behind it. What the scan cannot see: events GA4 batches into the POST body, and pages without an operable banner. There it stays with the code check.
Why it matters
Two GA4 properties on the same page can count the same pageview twice. Sessions, engagement rates and conversion rates drift systematically, and the error only surfaces when GA4 and backend numbers stop matching. A second GTM container additionally means two teams can deploy tags independently without knowing of each other.
Common causes
- Relaunch or agency change: the new container arrived, the old one was never removed.
- A theme or plugin ships its own Google tag on top of the centrally managed one.
- The GA4 migration left the UA ID in the code; since July 2023 it does nothing.
- Multi-property setups without documentation: set up deliberately, but nobody remembers.