Why your GA4 data looks wrong — GTM causes and fixes
Last updated 17 September 2026 · 5 min read
When GA4 numbers look wrong — inflated users, double-counted conversions, missing events — the cause is usually in Google Tag Manager, not GA4 itself. The three most common culprits are duplicate GA4 tags, hits blocked or mis-sent by Consent Mode, and triggers that fire too broadly. Here's how to find and fix each.
GA4 reports whatever your tags send it. If the container sends an event twice, sends it under the wrong conditions, or doesn't send it at all, GA4 faithfully records the mistake — so wrong-looking data is almost always a container problem wearing a GA4 costume. Work through the causes below in order; most bad-data cases are one of the first three.
Duplicate GA4 tags (double-counted everything)
The single most common cause. Two GA4 configuration tags, or a manual event tag firing alongside GA4's Enhanced Measurement, sends every hit twice — inflating users, sessions, and conversions. Confirm you have exactly one GA4 configuration ("Google tag"), and that your manual event tags don't duplicate events Enhanced Measurement already collects automatically, such as page_view, scroll, and outbound clicks.
Consent Mode blocking or mis-sending hits
Under EU rules, tags should fire only with the right consent, and Google Consent Mode v2 controls whether GA4 hits are sent, sent in cookieless form, or withheld. Misconfigure it and you either lose large chunks of traffic (defaults too strict, or tags that aren't consent-aware) or send hits you shouldn't (defaults granted incorrectly). If your numbers dropped or spiked right after a consent-banner change, start here.
Triggers firing too broadly — or not at all
An event tag on an "All Pages" trigger fires everywhere; a conversion tag with a mis-scoped trigger fires on the wrong pages or never fires at all. Over-broad triggers inflate event counts, while wrong conditions create silent gaps. Both distort GA4 in ways that are invisible until you check the container.
Data layer timing
Tags that read from the data layer before it's populated collect empty or partial parameters. This is common with ecommerce, where a tag fires before the product or purchase data has been pushed. Make sure the relevant dataLayer.push happens before the tag's trigger, or trigger the tag on the custom event that signals the data is ready.
Internal and developer traffic
Your own team's visits — and traffic from GTM Preview and staging environments — inflate every metric if they aren't excluded. Define internal traffic rules in GA4 and filter out development environments so your own activity stops skewing the numbers.
Cross-domain and referral gaps
If a user journey spans multiple domains (for example, your marketing site and a separate checkout) without cross-domain measurement configured, GA4 splits one journey into several sessions and reports your own domains as referrals — so-called "self-referrals" — which distorts attribution.
How to diagnose wrong GA4 data
1. Confirm you have exactly one GA4 configuration tag
In GTM, filter your tags by type and check for more than one Google tag / GA4 configuration tag pointing at the same Measurement ID. Remove or consolidate duplicates so a single tag owns your base configuration.
2. Check for duplicated events
Compare your manual GA4 event tags against GA4 Enhanced Measurement. If both send page_view, scroll, or click events, you are double-counting — disable one side so each event fires once.
3. Verify triggers in Preview mode
Open GTM Preview, walk your key journeys, and confirm each tag fires only where it should and exactly once. Watch specifically for tags firing on every page that shouldn't.
4. Inspect consent behaviour
In Preview, deny and then grant consent and confirm GA4 behaves correctly — hits withheld or cookieless under denial, sent under grant. Reconcile what you see against your Consent Mode v2 configuration.
5. Filter internal and development traffic
Define internal traffic rules in GA4 and exclude staging and Preview traffic, so your own activity stops inflating the reports.
6. Validate cross-domain and referral exclusions
Confirm cross-domain measurement covers every domain in a user journey, and that payment or authentication domains are excluded as referrals to prevent self-referrals.
Key takeaways
- Wrong GA4 data almost always originates in the GTM container, not in GA4.
- Duplicate GA4 tags and Enhanced-Measurement overlap are the top cause of inflated numbers.
- Consent Mode v2 misconfiguration can silently drop or inflate large portions of traffic.
- Over-broad or mis-scoped triggers create both inflated events and missing events.
- Diagnose in GTM Preview mode, one cause at a time, starting with duplicate tags.