The Google Analytics Auditing Checklist

Digital Konsulent - Phillip Studinski
About me

I'm a self-employed digital consultant with more than 12 years of experience with web analysis, data strategy and website optimisation. Get in touch.

Google Analytics auditing is the first thing I do, everytime I start working with a new client. It’s one of those things that need to be in order before I can do anything else. Because, if we can’t trust our data, we can’t trust any of our decisions or recommendations. So one of the most important tasks is simply to secure that data is being collected, and that it’s being collected correctly. So I thought, I’d share my checklist for auditing an existing Google Analytics setup. It’s impossible to make a complete list that will apply to all configurations since an Analytics configuration is (or should be) based on a measurement model specific to the business. But this list should cover (or uncover) most of the common issues.

Need help reviewing and auditing your GTM and Analytics setup? Get in touch to get a quote (and view and example excerpt of a Google Analytics Audit Report here). Or, check out my (so far) free online auditing tool here.


Verify that the Google Analytics Tracking Code (GATC) is present on all pages.

Personally, I use Screaming Frog to do a crawl of the entire site checking for pages that do not have the UA ID present. If the GATC is missing on some pages, you won’t be able to track those pages and you’ll likely see self referrals as a result. Check my Screaming Frog / Google Analytics guide.

Time and Date settings on each view on the property should correspond to your website’s primary audience time zone.

If you have visitors from different time zones (or countries), consider creating filtered views for those zones. Another option would be to log each users local time with javascript and send it to a hit level Custom Dimension.

Make sure cross domain tracking is set up.

Of course, this only applies if you’re using the same GATC on multiple top level domains. If that’s the case, proper cross domain tracking should be set up, so you can follow users and sessions across multiple domains.

Are annotations being used to document your Analytics property?

This is not a configuration. But it’s great practice to annotate traffic and site changes in Google Analytics. It makes it easier to quickly remember why traffic spikes occurred back in time, and it’s a great help if other people or analysts have access and use the website’s Analytics property.

Always keep a minimum of three views on each property.

The default view should contain various filters (such as excluding internal IP addresses, exclude traffic from staging or test sites etc.). But in addition to that, you should keep a raw data view which must always be completely unfiltered. This is great for debugging purposes. Also keep a test view where you can configure and test the effect of e.g. new filters and goals.

Make sure to configure the link between Google Analytics and Google Adwords. This makes it much easier to analyse the performance of all your Adwords campaigns in the context of your website.

The link with Site Search Console (formerly known as Webmaster Tools) feeds organic search data into your Google Analytics property. You’ll be able to better analyse the ranking, impressions and CTR of your website’s keywords.

Enable Remarketing and Advertising Features.

With Advertising Features, you’ll get more detailed information about your users such as age, gender, and affinity categories. Affinity categories are great if you want to expand your audience by targeting them on Adwords or YouTube. Also, Remarketing is only necessary if you do any Paid Search. If enabling any of the two, remember to update your website’s privacy policy.

Configure custom alerts for important metrics.

This is really important if you don’t log in to Google Analytics every day. Alerts will notify you by email or text message whenever something on your website changes. And you decide what notifications to receive. Common alerts will monitor conversion rate for important goals on a daily basis, number of daily transactions and more. It depends on what is important on your website.

Remove access for users that should not have access.

Do a sweep every once in a while. See who has access to your Analytics Account, check what access rights they have, and make sure to update those rights or even remove users that should no longer have access.

Data Quality

Add all payment gateways to the Referral Exclusion list.

For example, if you use PayPal as a payment provider, you’d want to add to your Referral Exclusion list. Otherwise, PayPal will get all the credit for your conversions, and you won’t be able to examine the performance of your original traffic sources.

Add all your brand keywords/terms to the Manage Brand Terms list.

This will allow you to split the default Paid Search channel into Branded Paid Search and Generic Paid Search, which allows you to analyse your Adwords performance at a deeper level.

Use UTM tagging for all campaigns and activities.

Also make sure that you (1) use the mediums of the default channel grouping definitions or (2) that you keep a naming convention of sources, mediums and campaigns. If you do the latter, you should also create new Channel Groupings that take your naming convention into account. And I don’t have to mention that you must never use UTM tagging on internal links, now do I? There’s more on using UTM and Campaign URLs in this post.

Remove URL Query Parameters.

Well, at least remove those query parameters that won’t help you analyse page performance. I often remove query parameters used for pagination purposes and use event tracking on pagination links instead. This can significantly reduce the amount of rows in the page reports, and will also group pages that are otherwise fragmented onto different rows in the reports.

Configure Site Search and Site Search Categories.

This is SO easy, and it provide SO much information about the intent of your users. Do not ever forget to configure Site Search!

Exclude all hits from known bots and spiders.

Just enable this on your default view. Don’t enable it on your raw data view. In addition, you should also configure filters to remove referral spam from your reports.


Yes, there actually is such a thing as spam in Google Analytics. It often appears as referral traffic from obscure domains. This is not actual traffic, but spammers use the Google Analytics Measure Protocol API to send this kind of fake traffic to your Analytics property, hoping that you will visit their website out of curiosity and buy their products. Follow this excellent spam removal guide from Mike Sullivan to kill your spam.

Sanitize all URIs.

On some websites, it’s possible to access some or all URLs with or without a trailing slash (e.g. and Apart from being seen as duplicate content potentially hurting your SEO rank, it’ll also mean that your pages will appear at least twice in your reports, making it difficult to analyse page performance. So set up filters to remove (or add, depending on taste) trailing slashes. And while you’re at it, set up a filter to convert all URIs into lowercase.

Do not send or store any PII (Personally Identifiable Information) in Analytics.

This includes email-adresses, usernames, real names, phone numbers, social security numbers, addresses of your users, IP addresses or anything that can potentially help anyone in identifying your users. If you must, then you should use something else than Google Analytics.

Goals & Ecommerce

Set up goals. Correctly.

Your website has goals. Otherwise you wouldn’t have a website. Your users also have goals. If not, they wouldn’t visit your website. So set up goals for your most important KPIs. Also configure funnels if you have them. And add a value to goals if possible. This’ll help you better analyse the ROI of your paid campaigns.

Set up ecommerce tracking.

And configure it for Enhanced Ecommerce. You don’t have to use all the features in Enhanced Ecommerce - the transaction part is the most important thing. But using Enhanced Ecommerce will allow you to make much better decisions about your shopping pages. Also, do your math when specifying the transaction script.


Often times, revenue in Google Analytics is incorrectly calculated. Not because of Analytics, but because of you. GA simply shows what you decide to send to GA with your ecommerce tracking code. So take out a sample of different transactions to check. First, check that these are actual transactions that also show up in your backend. Secondly, check that total Revenue for each transaction equals the Product Revenue + Tax + Shipping. If not, you’re miscalculating the numbers in your ecommerce tracking code.

Avoid duplicate transactions!

I’ve seen this over and over. Sometimes I’ve seen so many duplicate transactions that people actually think their revenue is as much as 30% higher than in reality. Check it using a simple custom report. Set Transaction ID as the only dimension and Transactions as the only metric. If you have any Transaction ID’s with a number of transaction of more than 1, then you - my friend - have duplicate transactions. Please ask your developer to avoid triggering the ecommerce tracking code for orders that have already been tracked once. Or check out my post on fixing duplicate ecommerce transactions.


Just as with duplicate transactions, you can easily and mistakenly track your Goal Destination URLs too many times. Let’s say I complete a purchase on your website and trigger a goal on the confirmation page. If I bookmark that page and visit it at a later time, or if you send me an email with a direct link to it, you’ll mistakenly count the goal again when I see the confirmation page for the second time. So make sure that your URL structure or GTM rules allows for people to visit confirmation pages again without necessarily triggering another goal completion.

Use transaction refunds.

If people return an item that they’ve bought and you refund them, it’s only fair that you also remove the transaction or refund it in Google Analytics.


Events are not for everybody, but they are for most. It’s impossible to make a generic list of events that should be tracked. But some are very common:

Are you linking to other websites and thus actively sending your users to someplace else? Then track those outbound links so you can see how it affects performance and conversion rate.

Do you have like buttons? Tweet buttons? Pinterest buttons? How do you know if people use them at all? Track them.

If you have mailto links (e.g. <a href=“mailto:[email protected]”>Email me</a>), then track them. Same goes for tel: and skype: links.

Page depth and scroll.

If you spend time writing content for your website, you may want to track if people actually read that content. So set up scroll tracking which will tell you how far people scroll on your nice, long articles.

Video tracking.

The same goes for embedded videos. If you embed videos from YouTube or Vimeo, you should track if people start playing them at all. You should also track if people watch them to the end or just half way.

Ajax stuff.

Sometimes, submitting a form won’t send you to another page. Some forms are submitted with ajax instead - and such form submits should be tracked with events (or virtual pageviews - virtual pageviews make more sense if it’s a series of forms or if the form is part of a funnel).

And finally…

Usually, it’s possible to do a large part of the audit without involving the client. However, in many cases, there will be customizations to filters, utm tagging or to the tracking code that might be ‘non-standard’ implementations. And very often, there may be legitimate explanations. So before simply correcting what might seem like an error to you, you should always consult the client first. Also, please comment if you think something should be added to the list!

Digital Konsulent - Phillip Studinski
About me

I'm a self-employed digital consultant with more than 12 years of experience with web analysis, data strategy and website optimisation. Get in touch.

comments powered by Disqus

© 2019 Analytical42 / Phillip Studinski