Common GA4 Mistakes (And How to Fix Them)

Most GA4 problems aren't mysterious. In 150+ GA4 audits, I see the same mistakes over and over — some take 30 seconds to fix, others require a few hours of GTM work, but all of them are solvable. The real cost isn't the fix; it's the months of bad data you've already collected before someone catches it. Here are the ten most common GA4 configuration errors, ranked by impact, with a concrete fix for each one.

Mistake 1: Data Retention Set to 2 Months High Impact

GA4 properties default to a 2-month data retention window. This means any user-level and event-level data older than 60 days is permanently deleted from GA4's explorations and custom reports. Aggregated standard reports are unaffected, but the moment you want to do any custom analysis — cohort comparisons, user journey explorations, funnel analysis — you're working with a fraction of your data. This mistake is invisible until you need historical data, and by then, it cannot be recovered.

The mistake: Data retention is left at the 2-month default. Custom Explorations can't look back more than 60 days. Year-over-year analysis is impossible at the user level.

The fix: Go to Admin → Data Settings → Data Retention. Change "Event data retention" to 14 months. This is the maximum available on standard GA4 properties and should be the first thing you configure on any new property. This change applies only to future data — it does not recover what's already been deleted.

Mistake 2: GA4 Firing Twice (Duplicate Data) High Impact

This is more common than it should be: GA4 is installed via GTM, and it's also hardcoded into the site via a CMS plugin, a theme, or a developer who didn't know the tag was already there. The result is every event counting twice — inflated session counts, doubled conversion numbers, and traffic data that bears no resemblance to reality. Businesses make real budget decisions on this data before anyone notices the pageview counts don't match anything.

The mistake: The GA4 Measurement ID appears twice on the page — once loaded by GTM and once hardcoded in the site's HTML or via a plugin like MonsterInsights, Site Kit, or a theme header script.

The fix: View your page source and search for your Measurement ID (G-XXXXXXXXXX). It should appear exactly once. If it appears twice, identify the second source — most often a WordPress plugin — and remove or disable the duplicate. Then verify in GA4 DebugView by navigating to your site with the GA4 DebugView extension active and confirming each event fires exactly once.

Mistake 3: No Internal Traffic Filter High Impact

Your team visits your own site constantly — checking pages, testing forms, running QA. Without an internal traffic filter, every one of those sessions gets mixed into your audience data, inflates your traffic numbers, and distorts behavioral metrics like time-on-page and bounce rate. For small companies, internal traffic can represent 10–25% of total sessions. For agencies managing client sites, the problem is even worse because developer and account team traffic looks identical to real user traffic.

The mistake: No internal traffic definition is set, so team member and developer sessions are included in every report. Metrics like session duration, pages per session, and conversion rate are skewed by non-representative behavior.

The fix: Go to Admin → Data Streams → your stream → Configure Tag Settings → Define Internal Traffic. Add your office IP address(es) and any developer IP ranges. Then go to Admin → Data Filters, create an Internal Traffic filter, and set it to "Active." Note: this filter applies to new data only — it won't retroactively clean historical sessions. For remote teams without fixed IPs, consider using a custom dimension to flag internal users based on login state or a query parameter.

Mistake 4: Conversions Not Configured Medium Impact

GA4 does not automatically designate conversion events. You have to explicitly mark them. Many properties collect all the right events — form_submit, purchase, sign_up — but never flip them to "Conversion," which means GA4's conversion reports, Google Ads optimization, and Audience Builder all operate without any understanding of what matters to the business. The data is being collected; it's just not connected to business outcomes.

The mistake: Key events like form_submit, generate_lead, or purchase are tracked but not marked as conversions. GA4's conversion count shows zero or only purchase events, and Google Ads can't optimize toward the right goal.

The fix: Go to Admin → Events and toggle "Mark as Conversion" for every event that represents a meaningful business outcome: form submissions, phone calls, purchases, free trial signups, demo requests. For ecommerce properties, ensure the purchase event is properly formatted with revenue, items, and transaction_id parameters — not just marked as a conversion without those values.

Mistake 5: Enhanced Measurement Causing Duplicate Form Events Medium Impact

GA4's Enhanced Measurement is a useful shortcut — it auto-tracks scrolls, outbound clicks, file downloads, and form interactions without GTM. The problem is when you also have custom GTM tags tracking the same interactions. Form submissions tracked by both Enhanced Measurement and a GTM trigger count twice in your conversion reports. This is especially common on sites that migrated from Universal Analytics and brought their GTM form tracking with them into GA4.

The mistake: Enhanced Measurement's "Form interactions" is enabled in the data stream settings, AND a GTM tag fires a form_submit event on the same forms. Every submission records two events.

The fix: Audit what Enhanced Measurement is tracking and what your GTM tags are tracking. Pick one source of truth for each event type — don't track the same interaction from both. If your GTM setup is more precise (e.g., it fires only on successful form submissions, not all interactions), disable the corresponding Enhanced Measurement toggle. If you want Enhanced Measurement's simplicity, remove the duplicate GTM tags.

Mistake 6: Wrong Channel Groupings Misattributing Traffic Medium Impact

GA4's default channel groupings use Google's predefined rules. If your UTM parameters don't match those rules, paid traffic gets grouped as Organic, direct traffic gets labeled as Referral, and email campaigns show up as Unassigned. This is almost never caught in a dashboard review because the numbers still add up — they're just allocated to the wrong channels. Budget decisions get made on the assumption that organic is performing well when it's actually capturing misattributed paid clicks.

The mistake: UTM parameters are inconsistent or missing across campaigns. Paid social traffic arrives with utm_medium=social instead of utm_medium=paid_social, so it routes to the Organic Social channel. Email campaigns with no UTM parameters arrive as direct.

The fix: Audit your UTM taxonomy against GA4's default channel grouping definitions. Standardize utm_medium values: paid_search, paid_social, email, display, affiliate. Use a UTM builder template shared across your marketing team. Consider creating custom channel groupings in GA4 (Admin → Channel Groups) to match your actual channel structure rather than forcing your taxonomy to match Google's defaults.

Mistake 7: No Cross-Domain Tracking on Multi-Domain Properties Medium Impact

If your website spans multiple domains — a main site, a checkout on a subdomain or separate domain, a booking system on a third-party URL — users crossing those domain boundaries appear as new sessions in GA4 by default. Your funnel shows massive drop-off between your product pages and your checkout because every user who enters the checkout is counted as a new user. Conversion paths are broken, assisted conversions are invisible, and your cart abandonment data is fabricated.

The mistake: Cross-domain measurement is not configured. Sessions break at every domain transition. Users appear to drop off between the main site and the checkout, inflating bounce and drop-off metrics in your funnel reports.

The fix: Go to Admin → Data Streams → your stream → Configure Tag Settings → Configure Your Domains. Add all domains that should be treated as part of the same session. GA4 will append a cross-domain linker parameter to outbound links automatically. Verify the fix by using the GTM Preview debugger to confirm that the _gl parameter is being appended when navigating between your domains.

Mistake 8: Referral Exclusions Not Configured Medium Impact

Payment processors — Stripe, PayPal, Klarna, Afterpay — redirect users off your domain and back when the transaction is complete. Without a referral exclusion for those domains, the return from the payment processor counts as a new referral session. Your payment processor becomes one of your top traffic sources, your session count inflates for every transaction, and the direct-to-purchase path disappears from your conversion reports because the last touch is always the payment processor referral.

The mistake: Payment processor domains (paypal.com, stripe.com, checkout.stripe.com, etc.) are not excluded from referral tracking. Every completed purchase creates a phantom referral session from the payment gateway.

The fix: Go to Admin → Data Streams → your stream → Configure Tag Settings → List Unwanted Referrals. Add every payment processor and third-party checkout domain your users pass through. Common ones: paypal.com, stripe.com, checkout.stripe.com, klarna.com, afterpay.com, sezzle.com. After adding these, monitor your referral report — these domains should disappear from traffic sources within a few days.

Mistake 9: PII Being Sent to GA4 Medium Impact

GA4's terms of service explicitly prohibit sending personally identifiable information — names, email addresses, phone numbers, user IDs that could be tied to real identity — to your property. Violating this can result in your property being terminated without warning. The most common way this happens: a form confirmation page includes the user's email address in the URL or page title, and GA4's page_view event captures it automatically. Or a developer passes user email as a custom dimension without realizing it's prohibited.

The mistake: Email addresses, names, or phone numbers appear in page URLs, event parameters, or custom dimensions that GA4 is collecting. Common sources: thank-you page URLs (?email=user@example.com), user ID custom dimensions, or site search queries that capture personal input.

The fix: Audit your GA4 event parameters using the DebugView or the Events report. Look for any parameter values that could contain PII. For page paths, check your top landing pages and thank-you pages for any PII-containing URL patterns. Use GTM to redact or hash any user identifiers before they're passed to GA4. If you want to track logged-in users, use a hashed or non-reversible user ID — never a raw email address.

Mistake 10: Ignoring the GA4 Property Setup Assistant Medium Impact

GA4 has a built-in Setup Assistant that surfaces configuration gaps in your property — missing data streams, unconfigured conversions, Google Ads links that should be enabled, Google Search Console connections, and more. Most properties have 5–10 open items in the Setup Assistant that were never addressed after initial deployment. These aren't suggestions — they're confirmed missing configurations that directly reduce the value of your GA4 data.

The mistake: The GA4 Setup Assistant has never been reviewed. Google Ads and Search Console are not linked. Key configuration items show as incomplete, silently limiting the property's measurement capabilities.

The fix: Go to Admin → Setup Assistant and work through every incomplete item. Priority items: link your Google Ads account (enables conversion import and audience sharing), link Google Search Console (adds organic search query data to GA4), enable Google Signals (improves cross-device reporting for consenting users), and ensure at least one conversion event is active. The entire checklist takes about 30 minutes the first time through.

5-Minute GA4 Health Check

Use this checklist during your next property review. Each item can be verified in under a minute once you know where to look.

Mistake Where to Check What You Want to See
Data retention at 2 months Admin → Data Settings → Data Retention "14 months" selected
Duplicate GA4 tag Page source → search for Measurement ID Measurement ID appears exactly once
No internal traffic filter Admin → Data Filters An active Internal Traffic filter exists
No conversion events Admin → Events → Conversions column At least 1–3 events marked as conversions
Enhanced Measurement duplicates Compare GTM tags to Enhanced Measurement settings No overlap between GTM events and Enhanced Measurement
Wrong channel groupings Reports → Acquisition → Traffic Acquisition No "Unassigned" traffic; channels match real campaigns
No cross-domain tracking Admin → Data Streams → Configure Domains All owned domains listed if site spans multiple domains
Payment processor referrals Reports → Acquisition → Traffic Acquisition PayPal, Stripe, etc. not appearing as referral sources
PII in events GA4 DebugView or Events report → event parameters No emails, names, or phone numbers in any parameter values
Setup Assistant incomplete Admin → Setup Assistant All critical items complete; Google Ads and Search Console linked

Key Takeaway: Most GA4 data quality problems are configuration oversights, not fundamental limitations of the platform. A single afternoon of focused cleanup can restore accuracy to a property that's been producing flawed data for months. Start with data retention and duplicate tag detection — those two fixes alone will have the biggest immediate impact on report reliability.

Frequently Asked Questions

Data retention set to 2 months is the single most impactful mistake because it's invisible until you need historical data — and by then it's too late to recover it. It's a single setting that takes 30 seconds to fix, but most new GA4 properties ship with the shorter retention window as the default. Check yours now under Admin → Data Settings → Data Retention.

Go to GA4 Reports → Engagement → Events and look for suspiciously high event counts, or look for the same event name appearing with slightly different parameters. The most common cause is GA4 being loaded twice — once via GTM and once via a hardcoded snippet or a CMS plugin. Check your page source (Ctrl+U or Cmd+U) and search for "G-XXXXXXXX" (your Measurement ID). If it appears more than once, you have a duplicate.

GA4 does not automatically mark events as conversions. You have to explicitly designate conversion events in the GA4 interface (Admin → Events → Mark as Conversion) or in GTM. However, GA4 does automatically collect a set of enhanced measurement events (page_view, scroll, outbound clicks, video engagement, file downloads) if enhanced measurement is enabled — but these are not conversions by default. Purchases from GA4's ecommerce tracking are the only events that come pre-marked.

Brady Hancock
Brady Hancock
Fractional Chief Data & Analytics Officer

Brady specializes in designing analytics implementations that scale with business growth while maintaining data integrity and analytical reliability.

Want a Full GA4 Audit?

We'll run a complete audit of your GA4 property — data quality, tracking setup, conversion configuration, and channel attribution — and give you a prioritized fix list.

Schedule a Free Call