Google Search Console Vs. Google Analytics - Why Clicks Don't Match Sessions

August 05, 2015
By Reid Bandremer

Several members of the SEO community have called the Search Analytics report in Google Search Console (formerly Google Webmaster Tools) inaccurate, largely because the count of clicks does not match the count of sessions in Google Analytics for the source Google and medium organic.

Rather than “inaccurate”, it’s really just a matter of trying to compare two completely different things. This article aims to cover how both are measured and a number of additional potential differences that need to be adjusted for when comparing these reports.

Google Search Console Search Analytics Report

Different Metrics

Google Analytics uses last non-direct attribution.

The use of last non-direct attribution in assigning sessions to a source and medium means that the reported number of Google organic sessions actually equals the true number of Google organic sessions plus the number of direct sessions that followed it. (A direct session is any session where Google did not identify the source, including sessions where the user visited the site directly without coming from another site.)

For example, if a user visited our site 5 times – the first time through Google, and the last 4 visits via bookmark or typing in the URL in the web browser bar or visiting from an application like Outlook – GA attributes all 5 sessions to Google; however, Google Search Console will only report 1 click. This article explains GA’s attribution of direct visits in more detail.

This last non-direct attribution can cause dramatic differences between GA sessions and Search Console clicks. If your site has a large proportion of direct sessions and non-new sessions, there’s a good chance GA is inflating true organic traffic by quite a bit.

The metrics clicks and sessions are substantially different by definition.

Clicks – “Count of clicks from a Google search results page that landed the user on your property.”

Sessions – Visits initiated by a user, counted when an HTML page loads the Google Analytics JavaScript snippet, adjusted for session timeouts.

That’s a mouthful. Let’s break it down.

Importantly, the Google Analytics JavaScript code snippet (or a script executing it) must be on the page to be counted in Google Analytics. That leads to three situations where Google Analytics won’t count a Search Console click as a session.

  1. Non-HTML pages like PDFs are not counted in Google Analytics (but are counted as Google Search Console clicks).
  2. The few users who do not have JavaScript enabled will go unnoticed by Google Analytics.
  3. The few users that click on a search result but bounce off the site before the GA snippet can be loaded will also go unnoticed by GA. (This number may be higher if the code snippet takes an unusually long time to execute – if it is at the bottom of the source code, for example.)

Also, session timeouts can moderately inflate the number of GA sessions over the number of clicks. As explained in this help article, Google Analytics ends a session and starts a new session after any one of the following three conditions are met:

  1. After 30 minutes of inactivity (followed by a resumption of activity)
  2. At midnight
  3. If a user arrives via one campaign, leaves, and then comes back via a different campaign.

Possibly Different Sources and Destination

If you want to compare Google Analytics to Search Console data, make sure you are looking at the same traffic source to the same place.

Are you looking at the same Google traffic?

Google Search Console displays separate click counts for three different Search Types – Web, Image, and Video. Web is selected by default. Thus, if your site receives a lot of image traffic, the number of clicks in the default Search Console screen (for Web) will be extra low compared to Google Analytics sessions for Google organic traffic. To know the total Google organic clicks in Search Console, you would need to add Web, Image, and Video clicks together.

Filtering can moderately deflate Google Analytics traffic. If you have Google Analytics filters set, you may be filtering out some traffic that Search Console tracks. Additionally, in a Search Console help article, Google states that, “Some processing of our source data might cause these stats to differ from stats listed in other sources (for example, to eliminate duplicates and visits from robots). However, these changes should not be significant.”

Are you looking at traffic to the same place?

It’s easy to think Search Console and GA are reporting traffic to the same pages when they really aren’t.

It is worth mentioning again that GA does not report activity on non-HTML pages like PDFs and Word docs but that Search Console does.

Also, the hostnames are often different between Search Console and GA. Google Analytics shows all pages from all subdomains and hostnames with the Google Analytics snippet on it (including scraped content like archive.org.) However, Google Search Console only shows one specific subdomain per account. To make sure you’re looking at traffic to the same pages in Search Console and GA, you must make sure you match the GA hostname to Search Console. If your site has multiple subdomains, this is important to note.

Finally, an individual Search Console account only has data for one version of protocol (HTTP or HTTPS). If your site has both HTTP and HTTPS, and you want to look at traffic to your entire site in Search Console, then you need Search Console accounts for both the HTTP and the HTTPS versions (as well as every subdomain), and you’d need to add all of the clicks reported in each account.