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.
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.
For each item on the list there are three response that can be given:
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.
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:
Using Inspect Element to check Google Analytics is firing correctly
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:
Click on ‘View Settings’ within GA to get started
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.
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.
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 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.
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.
Linking Google Analytics and Google Search Console will integrate the data from both tools allowing you to view additional reporting options.
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.
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 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 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.
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.
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.
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.
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.
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.
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.
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.
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 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.
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.
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.
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:
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