andrew builds things
analyticsga4audit

The 20-Point GA4 Audit I Run on Every New Account

A practical GA4 audit checklist covering measurement, data quality, conversions, and the things that make your reports lie. Built from years of inheriting broken analytics setups.

I have inherited a lot of GA4 accounts. Marketing directors hand me the keys, I open the property, and within ten minutes I can usually find at least three things that are quietly making every report wrong.

This is the checklist I run. It is not exhaustive. It is the twenty things that actually matter, in the order I check them. If you are auditing your own GA4 setup, work through this list top to bottom.

Measurement Quality (1-5)

1. Is the GA4 tag firing on every page?

Open GA4 DebugView, load your site, and check that a page_view event fires on every page. Not just the homepage. Every page. I have seen sites where the tag was installed on the homepage template but missing from the blog template, meaning every blog post was invisible to GA4.

2. Are there duplicate page_view events?

This happens when you install the tag twice: once through Google Tag Manager and once through the hardcoded snippet, or once through a WordPress plugin and once through GTM. GA4 counts each fire, so your pageviews are doubled. Check DebugView for two page_view events on a single page load.

If you run a cookie banner, GA4 should be in consent mode. Without it, GA4 fires before the user has consented, which means you are either collecting data you should not be (GDPR risk) or losing data you need (analytics gap). Check that your consent banner sends granted or denied signals to GA4.

4. Are internal filters applied?

Filter out your own office IP, your development environment, and any staging URLs. If you do not, your own team's browsing inflates your numbers. I once found a property where 40% of sessions were the marketing team checking their own site.

5. Is cross-domain tracking set up?

If your customer journey spans multiple domains (for example, your main site on one domain and your checkout on another), GA4 needs cross-domain tracking configured. Without it, a single user who visits both sites looks like two users, and the checkout referral shows up as traffic from your own domain.

Conversions (6-10)

6. Are conversions set up?

This sounds basic, but I have opened GA4 properties with zero conversions configured. The client wondered why they could not see ROI. There were no conversion events to measure.

7. Are the right events marked as conversions?

A common mistake: marking page_view as a conversion because someone read a blog post. That is not a conversion. A conversion is an action that matters to your business: a purchase, a lead form submission, a booking, a signup. If your conversion list includes scroll or page_view, clean it up.

8. Are conversion events deduplicated?

If a user submits a form and the page reloads, does the conversion event fire twice? Check your event setup. If the same action can fire the same event multiple times, your conversion count is inflated. Use event-level parameters or a transaction ID to deduplicate.

9. Is the conversion value configured?

If you are an e-commerce site, are you sending value and currency with your purchase events? If you are a lead-based business, have you assigned an estimated value to your form submissions? Without value data, GA4 cannot calculate ROI, and your reports are just counting actions without context.

10. Are enhanced measurements appropriate?

GA4's enhanced measurements (scroll, outbound clicks, file downloads, video engagement) are on by default. Some of these are useful. Some are noise. If your reports are cluttered with events nobody looks at, turn off the ones you do not use.

Data Quality (11-15)

11. Are UTM parameters consistent?

Check your UTM naming conventions. Are you using utm_source=facebook in some campaigns and utm_source=meta in others? Are you mixing case (Email vs email)? GA4 treats these as different sources. Pick a convention and stick to it.

12. Is the Google Ads linkage working?

If you run Google Ads, check that the GA4 property is linked to your Google Ads account and that the conversion events you care about are importing correctly. If the link is broken, your Google Ads campaigns are bidding on stale or missing data.

13. Are custom dimensions and metrics configured?

If you send custom parameters with your events (like author_name on blog post views or product_category on purchases), make sure they are registered as custom dimensions in GA4. Unregistered parameters are collected but not available in reports.

14. Is the data retention set correctly?

GA4 defaults to 2 months of data retention. If you want to analyse year-over-year trends, you need 14 months. This setting is buried in Admin > Data Collection and Modification > Data Retention. Go change it now if you have not.

15. Are bot filtering and spam referrer exclusion in place?

GA4 filters known bot traffic automatically, but referral spam still gets through. Check your referral exclusions for obvious spam domains. If your acquisition reports show traffic from sites you have never heard of, you have spam referrers.

The "Numbers Are Lying" Checks (16-20)

16. Where does organic search traffic actually go?

GA4 hides organic search keywords behind "(not provided)". This is not a bug, it is Google's design. But you can connect Google Search Console to see which queries bring people to your site. If you have not linked Search Console, you are flying blind on organic search.

17. Is the bounce rate meaningful?

GA4's "bounce rate" (the inverse of engagement rate) means something different from the old Universal Analytics bounce rate. A bounce in GA4 means the user spent less than 10 seconds on the page. That is useful. But if your engagement rate is 99% because every visitor stays 11 seconds, your bounce rate is hiding the fact that nobody is actually reading anything. Look at average engagement time too.

18. Are direct traffic numbers inflated?

If your direct traffic is 40% or higher, you probably have a tracking problem. Direct traffic is a catch-all for sessions where GA4 cannot determine a source. This usually means UTMs are missing from email campaigns, social posts, or PDF links. Check your top direct traffic landing pages. If they are not your homepage, those sessions came from somewhere and GA4 lost the referrer.

19. Are events triggering on the right interactions?

If you track form submissions, test the form yourself. Submit it. Check DebugView. Does the event fire? Does it carry the right parameters? I have found forms where the submit event fires on click, not on successful submission. So every abandoned form counts as a conversion.

20. Is the timezone correct?

If your GA4 timezone does not match your reporting timezone, your daily numbers will be off by a few hours. This matters for campaigns that run at specific times. Check Admin > Property settings > Time zone.

What to Do With the Results

Score each item: working, broken, or missing. The broken and missing items are your priority list. Fix the ones that affect conversions and data quality first. The rest can wait.

If you want a structured process for doing this on your own account, I built a workflow that turns your AI assistant into a GA4 auditor. It walks through the installation, finds the problems, and gives you a prioritised fix list. It is called the Marketing Numbers Doctor and it costs £12 at andrewbuildsthings.com/toolkit/ga4.

If you have inherited a complete mess and want someone to clean it up for you, that is the kind of thing I do on implementation days. See andrewbuildsthings.com/work-with-me.

The point of an audit is not to find everything. It is to find the things that are making your decisions wrong.

Want to know what ChatGPT says about your business?

I check Google, Maps, ChatGPT, Gemini and Perplexity against your three nearest competitors, and hand you the five fixes that matter most. 48 hours, fixed price.