GA4 Self-Audit Checklist

Marketing & SEO 15 minute read
August 14, 2026
button list bg 2
ga4 self audit desktop

GA4 Self-Audit Checklist

Our GA4 Self-Audit Checklist helps you review your Google Analytics 4 setup, identify gaps in your tracking, and make sure your business has access to accurate data for better marketing decisions.

Download PDF

TL;DR

  • This checklist covers the 15 most common GA4 failure points across three categories: tag implementation, GTM container configuration, and self-referral contamination.
  • A GA4 property can look functional and produce completely unreliable data at the same time. These checks are designed to surface that gap.
  • Download the free audit spreadsheet to log findings, track status, and get a weighted risk score across all 15 checks.
  • Checks flagged High priority directly corrupt attribution data or smart bidding signals. Fix those first.
  • Full audit takes 60 to 90 minutes with GA4 Admin and GTM Editor access. Several checks require GTM Preview mode.

Most GA4 properties are technically live. Most also have at least one active data quality problem. The gap between the two is where budgets leak, campaign decisions go wrong, and quarterly reports become difficult to defend.

GA4 and GTM audits consistently find the same failure patterns: duplicate tags inflating event counts, payment gateways stealing conversion attribution, staging traffic mixing into production data, and Consent Mode v2 signals missing entirely. None of these produce obvious error messages. The dashboard looks fine.

This resource works through 15 specific checks across three areas: Tags (how the GA4 tag itself is configured), Containers (how GTM is set up around it), and Self-referrals (where your own domains and third-party services contaminate traffic sources). Work through each check in order, or jump to the group most likely to be causing a problem you have already noticed. For a shorter, quarterly version of this exercise, see the GA4 checks every Sydney business should run this quarter.

How to use this resource

Each check covers what the problem is, where to find it in GA4 or GTM, and what a clean result looks like. Open the downloadable audit spreadsheet alongside this page, log your Status (Pass, Fail, Review, or N/A) and any notes for each check, and let the Summary tab calculate your overall weighted risk score.

You will need both GA4 Admin and GTM Editor permissions to complete every check. If you do not have them yet, our guide to granting access to your Google accounts walks through it platform by platform.

If you find a Fail, fix it before completing the rest of the audit. Some failures (particularly duplicated tags and missing self-referral exclusions) can distort checks further down the list.

Tags — Checks 1 to 5

How the GA4 tag itself is implemented on your site

Check 1: GA4 tag present on every page [HIGH]

Pages with no GA4 tag generate no events. The most commonly missed templates are thank-you pages, blog posts added after the initial build, and checkout pages on a separate subdomain. A missing tag on a conversion page means those conversions are never recorded.

WHERE TO LOOK

GA4 > Realtime. Browse 4 to 5 distinct page types (blog posts, thank-you pages, checkout) while watching the event stream. A silent page means the tag is absent on that template. Check thank-you and booking confirmation pages specifically.

More precise method: Google Tag Assistant. Install the Tag Assistant extension in Chrome, then load each page type. Tag Assistant shows exactly which tags are firing, any errors, and the Measurement ID in use. It surfaces duplicate tags and misconfigured triggers that Realtime alone will not reveal.

IP filter caveat. If you have an IP exclusion filter active for your current location (GA4 > Admin > Data Settings > Data Filters), your own browsing will not appear in Realtime even if the tag is working correctly. Temporarily pause the filter, or test from a mobile device on a different network, before concluding a tag is absent.

✓ Clean result: Every page type visited generates a page_view event in Realtime within 5 seconds. Tag Assistant shows the correct Measurement ID firing with no errors. Conversion pages are included in this check, not just the homepage.

Check 2: No duplicate GA4 tags [HIGH]

When a hardcoded gtag.js snippet and a GTM-deployed GA4 tag both fire the same Measurement ID, every event is counted twice. Session counts double, conversion numbers double, and any Google Ads smart bidding is operating on inflated data. This is one of the most common issues in properties that migrated from Universal Analytics.

WHERE TO LOOK

GTM > Tags: search for your Measurement ID (G-XXXXXXXX). Then view source on your production homepage and search for the same ID.

Keyboard shortcut: right-click any page, choose View Page Source, then press Ctrl+F (Windows / Linux) or Cmd+F (Mac) to search for your Measurement ID. If it appears once, the tag is in the page code. If it appears twice, you have a duplicate.

IP filter caveat. If your office IP is already excluded via a GA4 Data Filter, your test browsing will not appear in Realtime. Test from a mobile device on a different network, or temporarily disable the filter, for an accurate reading.

✓ Clean result: One and only one tag sends events to your GA4 property. Realtime event counts match expected activity for a single user browsing session.

Check 3: Correct Measurement ID in the tag [HIGH]

Incorrect Measurement IDs appear most often after property migrations, when a staging configuration is promoted to production without updating the ID, or when a developer copies a tag from a different project. Data goes to the wrong property and your production property receives nothing.

WHERE TO LOOK

GTM > GA4 Configuration tag > Measurement ID field. Compare against GA4 > Admin > Data Streams > web stream > Measurement ID. The IDs must match exactly, including the G- prefix.

✓ Clean result: IDs match exactly. No trailing spaces, no staging property ID appearing in the production tag configuration.

Check 4: Config tag fires before event tags [HIGH]

Event tags that fire before the GA4 configuration tag produce events with no session context. These events are recorded but are not associated with the correct session, user, or referral source. Attribution breaks: the events appear in reports but do not connect to the channels that drove the visit. This affects what Smart Bidding actually optimises for directly.

WHERE TO LOOK

GTM > each GA4 event tag > Advanced Settings > Tag Sequencing. Check whether event tags could fire before the Page View trigger resolves. Also check whether any event tag uses a trigger that could precede a Page View.

✓ Clean result: GA4 Configuration tag fires on Page View. Every event tag either uses Tag Sequencing to fire after the config tag, or fires only on triggers that cannot precede a Page View.

Check 5: Enhanced Measurement not duplicating custom events [MEDIUM]

Enhanced Measurement auto-collects scroll depth, outbound clicks, file downloads, video interactions, and form interactions. If GTM also fires tags for the same event types with the same event names, every relevant action generates two GA4 events. Conversion counts double, engagement metrics are wrong, and any audience built on these events receives users at twice the expected rate.

WHERE TO LOOK

GA4 > Admin > Data Streams > web stream > Enhanced Measurement: note which events are enabled. Then check GTM for any tags sending scroll, click, file_download, video_start, or form_submit event names.

✓ Clean result: No event type fires from both Enhanced Measurement and a manual GTM tag simultaneously. If GTM handles scroll tracking, the Enhanced Measurement scroll toggle is off, and vice versa.

Self-referrals — Checks 11 to 15

Where your own domains and third-party services contaminate traffic attribution

Check 11: Own domain excluded from referral list [HIGH]

When a user navigates between pages on your site, the previous page can appear as a referral source in GA4, starting a new session and resetting the original traffic attribution. Session counts inflate and the original source (Google Ads, organic, email) loses credit for the conversion.

WHERE TO LOOK

GA4 > Admin > Data Streams > Configure Tag Settings > List Unwanted Referrals. Check whether your own root domain appears.

Also check: GA4 > Acquisition > Traffic Acquisition for any sessions attributed to your own domain as a referral source.

✓ Clean result: yourdomain.com.au and relevant subdomains are listed as unwanted referrals. No sessions in the Referral channel are attributed to your own domain.

Check 12: Payment gateway domains excluded [HIGH]

When a user leaves your site to complete payment and returns to your confirmation page, the payment gateway becomes the referring domain for a new session. If that session contains a purchase conversion, the gateway receives the attribution credit instead of the Google Ads, SEO, or Meta campaign that actually drove the customer. This directly affects ROAS reporting and smart bidding quality — see how we made Silk Laser’s booking revenue visible in GA4 after four compounding tracking failures.

WHERE TO LOOK

GA4 > Acquisition > Traffic Acquisition: filter by Referral channel and check whether any payment gateway domains appear.

GA4 > Admin > Data Streams > Configure Tag Settings > List Unwanted Referrals. Verify your payment providers are listed. AU gateways to check: stripe.com, paypal.com, paypal.com.au, afterpay.com, ewaypayments.com, securepay.com.au, tyro.com, poli.com.au, limepay.com.au.

✓ Clean result: All payment gateways your checkout uses are listed as unwanted referrals. No gateway domains appear in the Referral channel in Traffic Acquisition reports.

Check 13: Cross-domain tracking configured [HIGH]

When users move between two domains you own (your main site to a separate booking portal, a member login area on a different domain, or a separate checkout subdomain), GA4 treats this as an external referral and starts a new session. The original traffic source is lost, and the conversion is attributed to the referring page rather than the campaign that drove the initial visit. This is exactly the tracking gap that was quietly costing Vitala Health across four clinic booking journeys.

WHERE TO LOOK

GA4 > Admin > Data Streams > Configure Tag Settings > Configure Your Domains. Check whether all domains in the conversion journey are listed.

Test it: travel from your main site to the booking portal or checkout domain and check whether GA4 Realtime shows a new session starting at the handoff point. It should not.

✓ Clean result: All domains a user might travel through before converting are listed. Users carry their session across domain boundaries without attribution resetting.

Check 14: Staging and dev hostnames excluded [MEDIUM]

If staging, dev, or localhost environments run the same GA4 tag as production, developer activity and testing sessions mix into your production data. Form submissions on staging may trigger conversion events, page views from internal builds inflate session counts, and testing of new landing pages can corrupt campaign performance data before the pages are even live.

WHERE TO LOOK

GA4 > Reports > Tech > Tech Details > Hostname dimension. Look for staging, dev, localhost, or any non-production domain sending sessions to your live property.

✓ Clean result: Only your production domain generates sessions in the production GA4 property. Staging and dev environments use a separate GA4 debug property or have the tag disabled in that environment entirely.

Check 15: No unexpected hostnames sending data to your property [MEDIUM]

GA4 properties have no domain restriction by default. Any site that copies your Measurement ID can send events to your property. This happens when an old version of your site is still indexed, when your tag is scraped and embedded elsewhere, or when your site is loaded in an iframe on an external domain. Unexpected hostnames inflate all metrics and can introduce fabricated conversion events.

WHERE TO LOOK

GA4 > Reports > Tech > Tech Details > Hostname dimension. Review all hostnames in the report. Any domain you do not recognise should be investigated. If confirmed external, add a hostname-based Data Filter in GA4 > Admin > Data Settings > Data Filters to exclude it.

✓ Clean result: Hostname report shows only domains you own and actively manage. Unfamiliar hostnames are either explained or excluded via a Data Filter.

What to fix first

If you find multiple failures, this priority order applies for businesses running paid campaigns:

PriorityChecksWhy
Fix immediately1, 2, 3, 4, 6, 9, 11, 12, 13These directly corrupt attribution, inflate or suppress conversion counts, or degrade smart bidding signals. Every day they run unfixed, more campaign data becomes unreliable.
Fix this week5, 7, 8, 14These produce noisy or incomplete data but do not necessarily corrupt core attribution. Fix after the High items are resolved.
Fix this month10, 15These are real risks but less likely to be actively causing problems. Address them as part of your next quarterly review.

Clean data is the foundation everything else is built on. When we fixed conversion tracking for Clear Skincare Clinics, the account went from flying blind to +665% conversionsthe measurement fix came before the media fix, not after it.

If your audit surfaces issues that need more than configuration changes, or if you want a second pair of eyes on your GTM container before reporting begins, our GA4 and GTM analytics team can audit and remediate in a single session. Book a free audit.

Once your measurement is clean, the natural next step is the account it feeds: run the Google Ads account structure self-audit or request a free Google Ads audit from a Google Premier Partner.

Frequently Asked Questions

How long does a GA4 self-audit take?

Working through all 15 checks takes roughly 60 to 90 minutes for a single GA4 property if you have access to GTM Preview mode and the GA4 Admin section. Checks 1 to 5 (tags) and 11 to 13 (self-referrals) typically surface the most issues and are worth starting there. If you find a Fail in Check 2 (duplicate tags), fix it before continuing. It will distort results for several other checks.

Do I need GTM access to run this audit?

GTM access is required for Checks 2, 4, 5, 6, 7, 8, and 9. If you only have GA4 Admin access, you can still complete Checks 1, 3, 11, 12, 13, 14, and 15. The full audit requires both GA4 Admin and GTM Editor or Admin permissions. If you need access but do not have it, speak to whoever manages your GTM container before starting.

What is a self-referral in GA4 and why does it matter?

A self-referral occurs when your own domain appears as a traffic source in GA4. This happens when users navigate within your site and GA4 treats an internal page transition as an external referral, starting a new session and resetting the original traffic source. It inflates session counts and corrupts attribution for any conversion that occurred in the affected session.

Why would a payment gateway appear as a referral source?

When a user leaves your site to complete payment on a gateway (Stripe, Afterpay, eWAY, and similar) and returns to your confirmation page, the gateway domain becomes the referring domain for a new session. If that session contains a purchase conversion, the gateway receives the attribution credit instead of the Google Ads, SEO, or Meta campaign that actually drove the customer. This is one of the most common and costly attribution errors in eCommerce GA4 setups.

What does Consent Mode v2 have to do with GA4 data quality?

Without Consent Mode v2 signals, GA4 cannot model behaviour for users who decline cookies. For accounts linked to Google Ads, degraded consent signals reduce smart bidding accuracy, particularly for new user campaigns. From June 2026, Google enforces Consent Mode v2 as a hard requirement for ad personalisation, with stricter modelling thresholds applied globally.

How do I know if Enhanced Measurement is duplicating my custom events?

Go to GA4 > Reports > Engagement > Events and look for events with counts that seem double what you expect. A scroll event firing twice per scroll is a common sign. In GTM Preview mode, watch the event log for two identical event names firing in quick succession from the same user action. The fix is to disable the relevant Enhanced Measurement toggle for any event type you are also tracking manually through GTM.

What is the difference between an unwanted referral exclusion and a data filter in GA4?

Unwanted referral exclusions (Admin > Data Streams > Configure Tag Settings) prevent specific domains from starting a new session when a user returns from them. These are used for payment gateways and your own domain. Data Filters (Admin > Data Settings > Data Filters) exclude or include event data based on conditions like hostname or device type, and are used to remove internal traffic, staging data, or events from unexpected hostnames. Both are needed for a clean property.

How often should I re-run this audit?

At minimum, once per quarter. Any of the following should also trigger an immediate re-check: a new website deployment, a GTM container publish affecting GA4 tags, a new campaign using a different landing page URL structure, a payment gateway change, or a GA4 platform update. For businesses running significant paid search or Google Ads budgets, a monthly review of conversion and attribution data is worth the time. The spreadsheet includes a date field for each audit run so you can track when each property was last reviewed.

Want a Second Pair of Eyes on Your Tracking?

If your tracking is wrong, every marketing decision you make is wrong. That is the whole reason this checklist exists.

Work through the 15 checks and you will find most of what is broken. But some failures do not resolve with a config change — a container that needs rebuilding, ecommerce tracking that never sent product-level data, a consent setup that has to be reworked before June 2026. That is where our GA4, GTM and analytics team picks it up.

A free audit gives you:

  • A written review of your GA4 property and GTM container against every check in this list
  • A prioritised fix list — what is corrupting attribution today, what can wait until next quarter
  • A clear scope if remediation is needed, with no obligation to proceed

No lock-in contracts. Google Premier Partner. In business since 2008.

Book your free audit — or call 1300 781 961 and ask for the analytics team.

Already confident your data is clean? The next place budget leaks is the account structure it feeds. Run the Google Ads account structure self-audit next.

Share this article
Back
NORWEST BUSINESS PARK
Unit 307, 29-31 Solent Circuit,
Norwest NSW 2153