49 Actionable Checks

Fix Native Inaccuracies

Filter Spam Data

Attribute "Dark" Traffic

Enable Advanced Features

Model $-value of Everything


Saved Audits

Login or join to save audits.

OK | NOT Check Findings

What analytics tools are installed?

First, let's get an understanding of what tools are already installed.

Don't just take someone's word.

Usually, you'll find tools that were once tried and later forgotten. This slows down sites and leads to conflicts.

What has BuiltWith found? What has BuiltWith found?

Document any analytics shown in BuiltWith to the right.

What scripts are in the source code? What scripts are in the source code?

  1. Go to your homepage.
  2. Right click > View Source
  3. CTRL+F and search for .js

Itemize the names of script files that you see. Note any libraries that don't serve a clear purpose as issues to the right. Learning the purpose of each library may require a developer.

It's best practice to leave a comment beside each script file describing its purpose.

Were there unused scripts/tools? Were there unused scripts/tools?

Remove all unused tools/scripts identified using the methods above.

Is Google Analytics configured?

In the next section, we'll set Google Analytics' native features.

Create a free Google Analytics account if none exists.

Is there a designated, non-contaminated View? Is there a designated, non-contaminated View?

There are two ways to slice up Analytics data: Advanced Segments and Views. Advanced Segments are temporary and apply to the past. Views are permanent and only apply to the future.

Always have one default View containing only raw data, titled something like All Data.

To create a View:

  1. Navigate to the Admin link at the top of Analytics page.
  2. Then, in the Views column (right), click Filters.

Is the tracking code in the site header? Is the tracking code in the site header?

This gives better data vs. the site footer.

View Source on a page that has the tracking code and verify that it appears in the HEAD section, just before </head>. You can find the code using CTRL+F and searching for analytics.js.

Because this code is asynchronous, it shouldn't slow anything down.

If there's no code yet, we'll show you where to get it in the next step.

Is the tracking code 100% correct? Is the tracking code 100% correct?

To get the current tracking code from Google Analytics:

  1. Choose Admin on Google Analytics' top menu.
  2. Go to: Property > Tracking Info > Tracking Code

Then, in a new browser tab:

  1. Visit any page of the site, right click, and View Source.
  2. CTRL+F for analytics.js
  3. Compare this to the correct code in the other tab.

The format should exactly match, with exception to a handful of extra lines being OK. We'll address that topic later in the audit.

Is the tracking code on every page? Is the tracking code on every page?

Set Screaming Frog, or another crawler like SEO PowerSuite or Linkdex, to verify this site-wide.

Screaming Frog instructions:

  1. Go to Configuration > Spider.
  2. Set to "ignore robots.txt"
  3. Go to Configuration > Custom > Search
  4. Set to "Does Not Contain"
  5. Paste in your Universal Analytics ID from Google Analytics (ex. UA-25483095). It can be found in parenthesis next to your domain name on the GA homepage, or the drop-down in the top-left corner.

Don't run it yet. We'll tackle the next four checks with a single crawl.

Is Google Tag Manager causing issues? Is Google Tag Manager causing issues?

Google Tag Manager is an acceptable alternative to directly adding the code. But if it is used, make sure the analytics code isn't added twice (such as once in the code directly, once in Tag Manager).

Configure Screaming Frog:

  1. Go to Configuration > Custom > Search
  2. Enter: "Do Not Contain" and "googletagmanager"

If found, check Google Tag Manager to verify what is added (correct code, not duplicate).

Is the site free of legacy (Classic Analytics) code? Is the site free of legacy (Classic Analytics) code?

Configure Screaming Frog:

  1. Go to Configuration > Custom > Search
  2. Enter "Contains" and each of these values:

Zero results will confirm that the site has 100% upgraded to Universal Analytics.

Classic Analytics is obsolete. If found, a developer will need to upgrade.

Are there Campaign URLs on internal links? Are there Campaign URLs on internal links?

Configure Screaming Frog:

  1. Configuration > Custom > Search - "Contain" and "utm_source"

Links with "utm_source" in them are used for Google Analytics Campaigns. These are for linking to external websites only.

Using Campaign Tags internally can will confuse (internal) Behavior reports with (external) Acquisition reports.

So, if you find this, get rid of it. Campaign Tags on external links are fine.

Is there invalid JavaScript? Is there invalid JavaScript?

Open the JavaScript debug console.

In Chrome, it's under View > Developer > JavaScript Console

Now refresh the page and note any red error messages. Any errors can break all JavaScript (like Google Analytics). Google Analytics Debugger is useful if the errors are from Google Analytics.

Are time zone and bot blocking set? Are time zone and bot blocking set?

In Google Analytics:

  1. Navigate to Admin (top)
  2. Under View (right) - click View Settings
  3. Set the correct time zone.
  4. Enable bot filtering. It won't block all junk traffic, but it helps.

Don't hit save yet. There's one more step (next).

Should Site Search tracking be used? Should Site Search tracking be used?

On the same screen as the last step, consider enabling Site Search reporting.

Do this only if the site has an internal search tool. Look in the site header, footer, the blog, and at any ecommerce tools for a search feature.

If you find one, enable Site Search.

Then, set the query parameters. These appear in the URL after you search.

For example, when you search Google it looks like:


In this situation, the query parameter would be just the letter q.

More on this.

Have you filtered out yourself and others? Have you filtered out yourself and others?

You're not the market you want to track. For starters, you probably surf weird, like refreshing a page 500 times a day. Fix this:

  1. Navigate to Admin (top) in Google Analytics.
  2. Under a custom View (right column), select Filters.
  3. Click "Add Filter". Remember: don't compromise your "Raw Data" View.
  4. Use the options: "Pre-defined", "Exclude", "traffic from the IP address", "equal to".
  5. Find your IP address here, enter it, and click "Save".

Also consider this for the company's office and any developers.

Are you excluding self-referrals? Are you excluding self-referrals?

Referrals to your site, from your site, seem to be an issue that would be obvious. But it's a common problem. You can partially fix it by:

  1. Navigate to Admin (top)
  2. Navigate to Property (middle) > Tracking Info > Referral Exclusion List.
  3. Add your own domain, as well as any subdomains (ie. northcutt.com, www.northcutt.com, userarea.northcutt.com, blog.northcutt.com).
  4. If there are international versions of the site (ie. site.co.uk, site.net.au), add those too, and consider the international SEO audit for later.

Do reports include full hostnames? Do reports include full hostnames?

If your site has more than one subdomain (ie. something.site.com), or multiple domains (ie. site.co.uk and site.com.au), you'll want full hostnames to appear in your reports.

If you don't do this, all pages look like "/page.html" instead of "section.site.com/page.html", and you won't be able to tell hostnames apart. This is good practice regardless: you can't predict the future.

Do this by adding a View Filter that looks just like like this. More on this topic.

Is cross-domain tracking needed? Is cross-domain tracking needed?

Does this single site stretch across multiple domains? This is especially relevant with internationalization, where multiple ccTLDs are used (ie. site.co.uk, site.net.au).

If so, a few code modifications are necessary in addition to the Hostname in Reports and Referral Exclusion instructions above. Full instructions.

Is attribution optimized?

Google Analytics does some amazing things by default.

It won't show sales, leads, prospects, or other key metrics until we make it.

Next steps focus on that.

There are 29 more steps in this audit.


... to continue.

Ready to get started?