If you haven’t done one, you don’t know if it isn’t broken

The Ultimate Google Analytics Audit Checklist

Craig Sullivan


This is the start of our project to document, explain and teach others how to audit and improve Google Analytics for community benefit. Leveraging our experience of auditing over 500 setups, you can do the same work and use the same set of checklists for giving someone the gift of better data quality. That’s a win in our book and makes it more valuable than kept to ourselves.

Charles Meaden and I have been optimising GA setups since the product was called Urchin (a long time ago). So we’ve had no choice but to audit, fix, clean-up, sort out, bridge around, nail together, streamline or enhance over 500 unique businesses, where nearly all of them had critical data quality issues because Google Analytics wasn’t set up correctly.

Our pain is your gain.

This list is going to migrate to some cards or a reference guide — where we can enlist the help of the community to tweak and grow the 181 problem areas listed below. It’s our belief that freely sharing everything we’ve found will be invaluable for others treading the same path.

Google sheet with all the current issues:

And here’s a text list of the issues:


No Customer State Handling or Incorrectly Configured

No Internal, Dev or QA filtering

Hit Limit Exceeded

No RAW, TEST, LIVE views configured

Filters misconfigured or broken

Filter is redundant

Missing traffic (filters remove useful traffic)

Default page view erroneously switched on

3rd party office filtering — Staff, Agency etc. not filtered

Bot protection not turned on

Advertising and Demographics not turned on

Site search tracking switched off

Has the time zone been set correctly?

Has the currency been set correctly?

Timezone & Currency span more than one website

Hostname in URL

Redundant filters

Audit who has access to the accounts / properties and views

No annotations

Network level or device redirection skews data

Too many views being used

Default Page view setup

Web and app data mixed (various issues)

Google Search Console not linked

Organic search sources not setup

View contains bot traffic

No view available to test filters with

Industry Category not set

Users metric setting disabled

Adwords not linked

Exclude URL query parameters missing/not correct

Checkout Funnel steps not labelled (if appropriate)

No Custom alerts or Scheduled emails

Products not linked

Property and view structure makes no sense for analysis

Automated traffic detected (various)

Referral spam detected

No basic custom dimensions (simo 4)

Setup has too many hits/websites within a property

Are custom dims scoped correctly?

Data spikes, dropouts, ecom outliers or other artefacts


Campaign tracking issues (various)

Campaign tracking used on internal links

Email Campaigns not tracked

Campaigns not tracked with utm codes

Campaign tracking (UTM) used on internal links

Campaign tracking inconsistent

Lower casing for campaign tracking

Campaign tracking uses hard to analyse naming convention


No Content Grouping Set Up

Content Grouping incorrectly configured

Channel Groupings not configured (or replaced with custom)

Channel grouping of ‘Other’ is too high

Server level redirects changing values for gclid codes and utm codes

Google Adwords traffic not being tracked correctly and showing as organic

(not set) issues in a variety of dimensions

No customer state handling (prospect, customer, logged in/out)


Bounce Rate skewed by interaction flagged as non interactive

Bounce rate Skewed (other issue)

Landing page dimensions missing

No interactions on landing pages to ‘adjust’ the bounce rate

Bounce rates too low (show)

Bounce rates too high (show)

0% bounce rate detected

Data is mixed — e.g. Content across (sub)domains

Meta refresh or other redirection hits tracking


Hostname in URL issue / Splitting sites

Cross Domain Tracking not set up

Subdomains and other joined domains tracked in separate properties

Traffic from a customer owned or operated domain is being counted as a ‘Referral’ rather than internal traffic

Referral Exclusion not setup


Useful data in data layer not sent to GA

Custom dimensions used (good uses)

Custom dimensions (not used but collected)

Custom Dimensions Not used

Data Layer incorrectly formatted


Standard Ecom doesn’t record correctly (various issues)

Does the ecommerce data correspond to the back office system?

Does the ecommerce value have commas in it when sent to Google Analytics?

Does Product revenue and total revenue match?

Does the view contain mixed (currency, tz) data

Price, Shipping, Tax combination set incorrectly


Is it turned on?

Product impressions

Category / List page tracking

Add to basket

Promotions / Cross / Up-sells

Checkout steps

Remove or adjust quantity in basket

Cart handling

Shopping behaviour report not instrumented

Checkout behaviour report not instrumented or useful

Checkout has multiple flows

Do ecom categories make sense?

Is enhanced ecom variable data (pa=, cos= etc.) formed correctly

Some checkout steps are missing


No Form Interaction tracking

No Forms, form validation, errors or submission tracking

Overlays / Upsells not tracked

Navigation, Footer, Other interactions not tracked

Filters tracked as pages, not events

Errors on website interactions (forms, fields) not tracked

Contact or Newsletter signup not tracked

Are downloads tracked?

Are outgoing links to other websites tracked?

Are clicks on email links being tracked?

Are video plays tracked?

Are social shares tracked?

Are rollovers and help items being tracked?

Are navigation links tracked?

Is the site collecting form error and validation messages?

Does the site collect JavaScript error messages?

Are on page interactions such as facets, tabs, accordions, filter and buttons that change the user states tracked?

Are phone calls tracked?

Are carousels tracked?

Is live chat tracked?

Is scroll depth tracked?

Form thank you pages not being tracked

Are internal promotions tracked?

Event tracking not configured correctly

Event names that don’t make any sense

Event data hard to analyse for insight

Downloads/Uploads not tracked

Event issues with goals (various)


Goal setup sub-optimal

Goals inactive

Goals not relevant or useful

Specific goal not firing (walkthrough / check)

Funnel visualisation broken (side flows, oxbow, no drop)

Running out of goal slots

Goal uses wrong method (equal to vs. regex and more)

Goal grouping sub-optimal


Code fired twice

Two types of tracking code Mixed

GA and GTM firing on same page

Two different types of code used on more than one site

Tracking code used on more than one site

Running classic Google Analytics.js

Google Analytics code not in the right place

Google Tag Manager code not in the right place

On page load data snippet placed under Google Tag Manager


Page Fragmentation (parameters)

Page duplication (trailing slash)

Page duplication (homepage)

Enhanced Ecommerce Tag on Product Pages doesn’t always fire

Event tracking is verbose

Google Analytics tracking code not present on all pages

404 Pages Not tracked correctly

Session IDs appearing in the URL

Information contained in query strings that could be in custom dimensions

Other marketing tools campaign ID’s causing duplicate pages

GA doesn’t capture links with anchors (#)


Site search not turned on

Site search not correctly tracked

Search category/modifier not tracked

Search lookahead/ auto suggestions not tracked

Search data and lower case issue

Filters, Facets or inpage controls not tracked

Internal search traffic not setup

Zero search results not captured

Lower case search terms


PII Present in GA (various)

Data Import Not Used

Downstream conversion (phone, offline, refunds, returns) not tracked

No backup filter

Default view not set



Craig Sullivan

Conversion Optimisation, Usability, Split Testing, Lean, Agile,User Experience, Performance, Web Analytics, Conversion Optimization ,#CRO http://t.co/BSWwzHj00S