Why are Siteimprove and Google Analytics showing different data?

Modified on: Mon, 20 Sep, 2021 at 11:00 AM

When evaluating your analytics data it's natural to compare your data between two different sources. A common question we receive is, "Why don't my Siteimprove page views match my other analytics service (commonly Google Analytics)?" This article discusses the possible reasons for discrepancies but these points are worth considering whenever you are concerned about changes in data being collected.

Data in Analytics is based on cookies and JavaScript. This data should be used directionally and the results will vary based on how different platforms interpret the data that is collected. We have accumulated a checklist of things to review, as well as some reasons why even with a perfect setup, Siteimprove Analytics may not match other analytics services.

Note: The Siteimprove support team cannot be expected to troubleshoot on all discrepancies between Google Analytics and Siteimprove. However, we are happy to investigate the implementation and setup of the Siteimprove Analytics and the Siteimprove Analytics script.

The following points should be considered when you see differences in statistics:

The Siteimprove javascript snippet is not placed on the same number of pages as the Google Analytics snippet

It's important to consider that data can only be collected if the analytics script is on each page. Review whether you're being consistent with your implementation of both analytics services that you are comparing. 

Tip: Set up a Policy to find pages without the analytics script. The Policy Library contains useful pre-configured Policies including "Pages without the Siteimprove Analytics script" and "Pages without the Google Analytics script". For further information read - How do I know that the Analytics JavaScript is on all of my pages?

Google or Siteimprove script is erroneously placed multiple times on a page

Oversights and confusion can lead to a company placing an analytics snippet multiple times in their pages and templates. A single visit to a pageview may be counted multiple times if the script is loaded multiple times.

Different segments are being reviewed (groups of pages)

Analytics services generally offer ways to segment your data. In some cases these setups can be quite involved. If comparing segmented data, it's important to make sure that the way you've implemented your segments (groups of pages) is exactly the same way. 

Are you comparing like-with-like when it comes to sites/domains?

GA uses a forward-slash "/" for the homepage which in most cases creates a catch-all for every domain where their GA script is placed. Whereas, Siteimprove Analytics offers domain handling, i.e. sites may be considered either internal (tracked) or external (not tracked).
As an example, Siteimprovedemo.com is one site, and blog.siteimprovedemo.com is another site, if the Google script is placed in the boilerplate (main header) that is used throughout the domain, Google will collect visits for both sites under the same domain.

Siteimprove’s domain handling allows you to configure whether the sites should be tracked together or separately. These settings can be reviewed for Siteimprove Analytics at Analytics Settings > Tracking > Site Configuration.

Make sure both services are tracking parameters in the same manner.

When parameters are used on website URLs, they can be tracked in different ways on GA and Siteimprove Analytics. To troubleshoot this, compare the visitor numbers for the entire site. If these are the same, then you should investigate how parameters are being tracked on each service. Further information on tracking options with Siteimprove Analytics can be found in the article - Parameters and their tracking options in analytics

Different filters are being applied

Similar to the segmenting issue, filters are also commonly used and the setup can be quite involved. It's important to ensure if comparing data with filters applied that the filters are setup exactly the same.

The analytics script is placed in a different location on the page

The analytics script location can create differences in what data is tracked. Siteimprove recommends that the script be placed at the bottom of the body tag to ensure that essential content is loaded before the Siteimprove script is loaded. If a user only partially loads the page and then quickly navigates to another page Siteimprove may not be tracking this, whereas another service where the script loaded at the top of the page would.  The placement of the script can be a balance of performance over analytics accuracy.

Google's sampling algorithms may be favoring performance over accuracy

Google deals with a lot of data, and because of this they have taken the approach of sampling data and analyzing trends rather than tallying up each individual page view. This can lead to some inaccuracies depending on the kind of data you're reporting on. Google explains this in detail here: How Google sampling works.

Spam/bot traffic

Depending on the analytics service, bot (or spam) traffic is handled differently. Some services will filter out this traffic and some services will include this in their results. For further information on this see - How to spot spam in Analytics and what to do about it

Global configuration settings

Some analytics services are able to configure settings on an account level. These account-level settings cannot always be seen by all users and can affects results on a site. 

Users blocking analytics script from firing

Users can block certain analytics scripts by using tools like Ghostery. This is a service that can block certain analytics scripts based on custom configuration. This can affect the results of Siteimprove Analytics or other analytics services. 

Incorrect Script end-point

Ensure that the analytics script being used is returning a 200 ok response. You can check this using the Network tab in your browser's developer tools.

Related Blogpost 

Comparing Siteimprove Analytics data to data from other analytics tools doesn’t always make sense - here's why