Hi, We really should talk!
We'd love to introduce you to Readz, the digital publishing platform used by IBM, Nike, Deloitte, Aon and many more.
Hop on the phone with one of our publishing consultants and get customized advice on how to get started. Readz brings together technology and expertise to help you launch top-performing content.
Why Google Analytics Is Not 100% Accurate
Call me naive, but for a long time I thought that data from Google Analytics was unquestionable. Of course it was correct data - it was supplied by Google! Big was my surprise when I delved deeper into the topic and found that the data is not so correct...or is it?

You will find in my article below a list of reasons and causes for Google Analytics not to be accurate, as well as some practical ways of how you can tackle at least some of those problems.

How does Google Analytics work

The main reason why Google Analytics systematically under reports is tied to the mechanism Google uses to gather the information: to collect information on the behavior, Google adds a little bit of Javascript code at the top of your page. This is called a tag, or code, or script. This piece of code will ‘trigger’ upon certain actions on your page and send that information back to the Google servers.
Image courtesy of
There are two types of scripts for Google Analytics: the Classic Analytics code (ga.js) and the Universal Analytics code (analytics.js).

To report correct results, this piece of code has to execute correctly every single hit on your page. Because of the nature of the code, a 3rd party tag, things can go wrong. And they often do, if not always. Rarely will you find a site where every hit on every page is reported back correctly in your Google Analytics reports.

Why Google Analytics Is Almost Always Wrong

Here is a list of the main reasons why the external GA Javascript code will not execute correctly:

Error 1 : Google Analytics data is missing: not all visits are tracked

Your Google Analytics Code Is Impacted by Ad-Blockers

Ad-blockers are commonly used these days, and they can prevent the GA code on your web pages to execute correctly. And some browsers like Firefox include features to block tracking.

Depending on the source, the statistics on exactly how wide-spread ad blockers, differs quite a bit as
a comparison of ad blocker statistics
by Digiday reveals. But even in the most optimal scenario, the numbers are certain to cause an impact.
Image courtesy of DigiDay
"Experiments have revealed an impact of up to 27.4% of browsers blocking Google Analytics code!”
Here is a
list made by Quantable
of the top Ad Blockers and their impact:
Image courtesy of Quantable
User blocks cookies = no results.
Not all ad-blockers will stop the GA by default, but some of them do, and most allow users to do so in the configuration settings. The impact of this can be quite significant. Several people have performed in-depth tests and have reported results of
11% of browsers
or depending on the browser,
between 27.4% to 6.5% of browsers
blocking Google Analytics code, which is huge!
Your Google Analytics tracking code is not on all of your pages.
I know, it sounds silly. But often this is the case, especially if your website has been around a bit, you have had multiple webmasters and people adding pages to it.
No Google Analytics code on your page = no results for that page.
Your Google Analytics tracking code is on a bad or poor location on your web page.

Many web developers will place external tags like Google Analytics just above the 'body' tag instead of the correct place, before the 'head' tag.

Here is the reasoning why developers will do this in an effort to try to improve the loading speed of the page. As you know, loading speed is a major element of concern for user experience and for SEO. A browser renders information on a page top to bottom. By placing the GA tag lower on the page, the visual elements will load first, before the google Analytics code. If the GA code is placed in the 'head' section, then the GA code will execute before the visual elements load.

On top of that, in some of the older (2014 and before) technical documentation released by Google, the instructions were to place the script (lower) before closing 'body'. And many external advisors recommend the lower placing because they think that higher placements will affect page speed.

The effect of this placement though is that sometimes the GA code will not have time to execute when people quickly browse through pages on your site. For example, if your page takes 4 seconds to load on a mobile, and the user swipes through, or finds a link to click through before your page loads completely, you will not record that visit.

The higher the GA script is placed on your page, the more results you will see.
Image courtesy of
Where should you place the Google Analytics script? Per
Google’s instructions
, for both static and dynamic websites, your GA tag should be place unaltered before the closing 'head' tag on every page.

Wrongly placed Google Analytics code on your page = no results in some cases.
You have too many kinds of tags on your page

Marketers like data, so we collect as much as we can. A tag for Google Analytics, one for Adwords, one for retargeting, one for your email or marketing automation platform, one for DoubleClick ads, one for A/B testing, one for twitter, etc.

Every single one of those tags will contacts its ‘home’ as soon as the page loads, to report the data back. This contact is technically called an HTTP request. Most browsers will not open more than six to eight HTTP requests to a single domain at a time. So if you have more on your page, then some will simply not fire.

Too many tags on your page = the Google Analytics code might not execute.
You have the wrong Google Analytics code on your page

I know, you’re thinking, ‘No way’. But this happens more often than you would think. You might have worked with an external SEO agency who placed a dedicated GA tag on your pages, or you switched to a new account with Google, etc. There are a million reasons why this can happen.
You have several Google Analytics tags on your page

If you are using Google Universal Analytics, then you can install multiple GA tags on your page. This can be useful if different parties want to see results on the same web site.

However, if you are using the Classic Google Analytics code, then having multiple instances of the GA tracking code on your page will result in inaccuracies in reporting.

Multiple Google Analytics code on your page = for Classic Google Analytics, likely will cause errors.
Image courtesy of Google
Wrong Google Analytics ID = your results are reported in the wrong place.
The User Has Disabled Javascript or Blocked Cookies

If the user configures their browser to have Javascript disable or to block cookies, then your Google Analytics script will not execute. In general, the number of users doing this is pretty small, because so many websites rely on Javascript and/or functional cookies.
Image courtesy
However, in Europe, the EU has mandated that all sites must ask a visitor ‘consent’ before tracking cookies can be placed. As a consequence, on many EU-sites you will get these pop-up messages asking you to consent explicitly to the use of cookies.
Image courtesy of
Even though the mandate dates back from 2012, states such as France and Italy have only starting to enforce the mandate as of 2015. So for websites with heavy traffic from EU-countries, this is likely to have a more significant impact.

User blocks cookies = no results.

Error 2 : Google does not measure true session time

Apart from the overall problems, Google Analytics has a second major problem, which is measuring the Session Time. The GA code will only trigger on page load or specific actions. And as Kenny Novak from
correctly points out: If a reader clicks to a page and spends 20 minutes on that page, then closes out the tab (satisfied) then there is no second action. And Google will think that visitor landed and went.

The fact is that Google cannot actually work out when we stopped interacting with a website. Here is an example provided by
to illustrate this:
Maria enters your website and visit the following pages: Page A: 1 minute, Page B: 2 minutes and Page C: 5 minutes and leaves your website.
Google will measure the session duration as 3 minutes even though Maria spent 8 minutes on your website.

What Can You Do About It

Check your pages for errors

If you have a small website, you can easily do this manually. If you have tens or hundreds of pages, then you might want to consider using a tool to do this for you. Checking your pages will help you correct common issues such as missing tags, wrong placements, wrong IDs etc:
Check your pages with Google’s Tag Assistant

A great tool to check the health of your tags is
Google’s Tag Assistant
. This browser extension will give you an overview of all the tags on your page and will let you validate those.

Although this will require you to go through every page, it might be worth doing this, since the tag manager will validate not only the script for Google Analytics, but also Google Tag Manager, Adwords Conversion tRacking and others.
Image courtesy of Google
Check your pages with automated tools

Tools like Screaming Frog will check the code of every page you let it crawl and will tell you which pages do not contain the correct Google Analytics code. Screaming Frog has a free plan, allowing you to crawl up to 250 links. You can get Screaming Frog
and read here more about
how to find those missing GA tags
using custom search or read Phillip Studinski’s detailed guide on
how to use Screaming Frog to check for missing GA tags

An alternative tool is
Visual SEO
, which I have not used myself, but you might want to give it a try since they also feature a free edition.
Image courtesy of
Screaming Frog
Install a Tag Manager solution like Google Tag Manager

If you are not using a tag manager, then you should seriously consider doing so. With tools like Google Tag Manager or other tag management tools, it is easy to add control to how your tags are loaded and optimally executed. You will not have to bother development or IT any more (apart from the one-time installation of Google Tag Manager) and you will avoid so many of the above-mentioned issues.
Image courtesy of
For example, Google’s tag manager loads asynchronously, which means all tags load independently from one another. Slow tags will not create a hold-up for other elements on your page to load. And most importantly, caching is used so the number of http requests is reduced.
Using Google Tag Manager allows you to measure session time

A major benefit of Google Tag Manager is that you can set timer triggers, which provide a relatively straightforward way to get more precise metrics for time on page, session duration, and bounce rate. If you are interested in getting measurements for these using Google Tag Manager, then I recommend this solid walkthrough on
how to set up timer triggers
using Google Tag Manager from the people at ClickInsight.
Image courtesy from
If Google Tag Manager is for some reason not to your liking, then you can look at some of the commercial tag management solutions such as

Do other analytics vendors suffer from these issues as well?

Google Analytics has a huge marketshare with the Classic Analytics code (ga.js) and the Universal Analytics code (analytics.js).
Image courtesy of
But there are other vendors out there of course. However, from what we can see, all analytics vendors use the same underlying logic of adding a javascript-based tag onto your page.

A different approach is possible if the company serving the content and keeping track of the content are one and the same, such as
which offers analytics as part of its content creation and delivery service. This type of analytics measurement is not affected by ad blockers, or cookie blocking, and can give a more realistic view on how users are really interacting with your content.
Image courtesy from


There are many reasons why Google Analytics and other analytics vendors are systematically under-reporting and not correct. Not every company has the possibility to both distribute content and measure that content serving, like Readz offers.

However, Google Analytics is a free service, and is close enough to reality to offer a solid indication of what is happening on your website. And if the alternative is having no data at all, then of course, what are you waiting for?
Start publishing online newsletters like Deloitte, IBM, and Nike.

Get a demo of Readz today - and never look back.
Create Content Experiences.
Better. Faster.
Request a Demo
Friendly humans. No commitment required.
Sign up for our newsletter
You're subscribed!
Actionable advice on how to create better content & design, product updates and occasional other news. All delivered to your inbox.