The Guide to Google Analytics Audits

By Tim Allen

Google Analytics out of the box seems relatively straightforward. Place a piece of code on all your web pages and watch the data roll in. For the Google Analytics novice, it’s satisfying to watch the sessions add up, along with so many other metrics about your audience to discover.

However, the issue with this out of the box setup is that accounts often contain spam sessions, internal sessions, no or little goal tracking and inaccurate e-commerce tracking. As a result, this can mean inaccurate measurement and can make it harder to identify and debug website issues.

To help you through this we have pulled together a Google Analytics audit checklist which we will continue to keep up to date as Google Analytics roll out any new features. This is the checklist we use to help all of our clients, and we’ve shaped and reformed it over time, hence why we so keen to share it and help other SEOs, digital marketers, and even small business owners who can use GA but want to make the next step up with their setup.

Why use a checklist?

  • Comprehensive – Without a checklist, you’ll probably still discover the obvious technical problems with a site. Using a checklist ensures you remember to check all the relevant boxes.
  • Productive – Working without a checklist takes more effort. At each stage, you have to decide what to do next. The checklist answers this question for you.
  • Communicable –  Rigorously defining your work with a checklist lets you delegate. Unfortunately, an intern can’t osmose your intuition!

How to use the Google Analytics audit checklist

Here’s the checklist!

This checklist is available to the public. This master document is set to view only, to be able to use it you’ll first want to make a copy.

the checklist

For each item on the list there are three response that can be given:

  • Pass means you have no concerns.
  • OK means the issues doesn’t seem relevant currently.
  • Fail means something appears to be wrong.

When you update an Issue, the grade for the Cause and Outcome will also be updated. If any Issue’s score is Fail, the Cause and Outcome will also Fail.

Understanding each of the checks

The immediate item to check is whether Google Analytics already exists on the client’s site, whether it is firing correctly and which version of Google Analytics the domain is using.  An explanation of how to do this using the inspect element feature of your browser can be found under point 5 of this post, Chrome Dev Tool Hacks For Digital Marketers. Once we are happy GA is firing, then we begin to dig into its setup and work our way through our checklist:

Google Analytics check

Using Inspect Element to check Google Analytics is firing correctly

Is the Google Analytics structure logical?

Many accounts that we see only have one view which contains all data. Making changes to this account will influence all data going forward. As such we recommend creating two duplicate views so we end up with the following structure:

  • Reporting view – excludes spam and internal traffic along with other changes that are highlighted in this document.
  • Master view (raw data) – Out of the box Google Analytics, no changes or customisations are to ever be made to this view.
  • Test view – A duplicate of the reporting view, but becomes a testing ground for future changes. Once it is confirmed tests work these can be applied to the Reporting view. Unlike the reporting view, this might also include internal traffic and staging/test sites.

Are the Google Analytics settings set correctly?

View settings

Click on ‘View Settings’ within GA to get started

Time zone

Ensure the timezone has been set to the correct region for the domain. Time zones should also be consistent across all views as sessions which start before midnight and end after midnight will be split in two.


Set the preferred currency for reporting within goals and e-commerce.

Default page set correctly

If in doubt, leave this blank. If you want anything ending in, for example, “/index.html”, to report as ending in “/”. Be warned, It tends to cause more problems than it solves, and hides duplication problems which can be solved in other ways.

Bot filtering enabled

This should be applied to the Reporting and Test view only. Bots and spam traffic can inflate the number of sessions to a domain and render data as potentially useless as it becomes unreliable. To reduce this Google has a built in feature to exclude spam and bot traffic but by default, it is turned off.

Site Search enabled

Site Search can provide insights to how users behave on your domain, and more specifically help identify the content users are looking for but can’t find. To get this report Site Search needs to be enabled and Google Analytics requires to be instructed as to which query parameters it should look for.

AdWords account linked

Linking AdWords to Google Analytics allows ad and site performance data to be reported directly into the Google Analytics AdWords report. This can be tied to e-commerce reports and allow the use of remarketing and multi-channel funnel reports.

Google Search Console linked

Linking Google Analytics and Google Search Console will integrate the data from both tools allowing you to view additional reporting options.

Exclude URL query parameters used

Each time a query parameter is added to a URL this is reported as a separate page within Google Analytics.  This can generate thousands, if not millions of landing pages being reported. You need to decide whether a parameter changes the page enough for you to care. Any parameters that don’t should be excluded.

Goals set and tracking correctly

Setting goals can vary from being fairly simple, such as a user landing on a thank you page, to far more complex goals using custom events. The most important thing is to avoid overlapping destinations to prevent inflating goal conversion rate.

Content grouping enabled and correct

Content grouping allows put content/pages into logical groups depending on your site structure. For example on a clothing website you may wish to content based on Men, Women and Children. Further grouping would allow you to drill down by type of clothing, for example, Shirts. Check out Google’s example for further explanation.

Internal / agency IP’s filtered

Internal and agency sessions are recorded within Google Analytics. This can inflate the number of sessions to a domain. All IP addresses that visit the site for development or auditing purposes should be excluded from the Reporting view.

Self-referrals excluded

A self-referral is when you see your own domain appearing within the referrals report. It is typically triggered by the use of multiple subdomains.

Payment gateway referrals excluded

Similar to self-referrals, payment gateways can also appear within your referral traffic, e.g. Paypal. The issue here is that the payment gateway will get credit for any transactions instead of the original traffic source.

Is tracking implemented and working correctly?

Tracking code version – ga.js, dc.js, analytics.js

This item isn’t a Pass or Fail item, instead, it is just worth being aware of which version of the Google Analytics tracking code your site is using as it will cause variations in implementation methods. It is worth noting that ga.js and dc.js basically function the same, and tracking code setup information can be found here.

If you find that you are using analytics.js then setup recommendations can be also be found here.

Tracking on all pages (check for pages with no or incorrect tracking code)

Ensure all landing pages have the correct Google Analytics tracking ID on all page using the custom fields feature within Screaming Frog.  If a page is missing tracking code it cannot report data to Google Analytics.

Mobile site being tracked

If you have a separate mobile site you should ensure that it also has mobile tracking on all pages. The same method as highlighted in “Tracking on all pages” can be used to check this.

Tracking code in correct place in source code

Google Analytics tracking code should live immediately before the closing </head> section. Review the source code on landing pages to ensure it is in the correct position.

Tracking code not duplicated on any page

If tracking code is on a page twice (or more) then hits will be double counted within Google Analytics inflating the number of sessions and page views to a domain. Use the occurrences count within Screaming Frog to check for duplicate tracking code. Alternatively, manually search the source code to ensure your tracking ID only appears once on a page.

In some cases, there are legitimate reasons to have two separate tracking codes with separate tracking IDs. This has its own set of complications.

Tracking on 404 pages

Test a number of landing pages that return a 404 response code and look in the source code for your tracking code. This way sessions to broken pages can be identified and fixed.


Looking at where self-referrals land, and what page they are referred from, can give clues as to where any problems may lie. This tends to fall under cross-domain tracking or missing tracking code.

Cross domain tracking

Cross domain tracking allows Google Analytics to see sessions across multiple sites and tie them together to form a single session. My colleague Tom Capper wrote a  post over on Moz covering some quick fixes for this.

Data quality

UTM tagging

Ensure that UTM tags are implemented correctly and consistently for social media, email and verify that AdWords autotagging is implemented correctly.

Referral spam excluded

As discussed earlier, Google Analytics has a built in function that filters out the majority of bots and referral spam hits. However it doesn’t catch them all, so to improve the accuracy of data we recommend implementing a quick fix for referral spam using  custom filters on Reporting views.

E-commerce data 

Verify that e-commerce data is reporting into Google Analytics correctly. This may require running a couple of dummy transactions and waiting 24 hours for them to appear within Google Analytics.

Data append

Items within this section are often custom based on individual site requirements and goals. These are more often referred to as micro conversions and those mentioned in the audit are just a few items that can be tracked within Google Analytics. For guides to implementation we recommend reading:

Anything we should add to this list?

As Google Analytics continues to add and remove features we will keep this checklist up to date. If you think there is anything we should add then please add them to the comments below, or alternatively reach out to me on Twitter: @the_timallen