Why organic Google Analytics & Search Console data doesn't match up

Confused about different data in tools that appear to measure the same thing? Why GA and GSC are fundamentally different.



owntag Founder

published July 24, 2020

As with all online marketing channels, measuring the success of your Search Engine Optimization correctly is crucial to gauge whether or not your investments are profitable. And if they are, by how much?

Clicks in Google Search Console

The metric name “Click” in Google Search Console is to be taken literally in most cases: A click on an organic search result increases the Clicks metric in your Search Console property. This includes Featured Snippets, Rich Results and Images as long as the user is taken to your site and away from the SERPs by that click.

Those clicks are deduplicated though, so 2 clicks on the same result count as only 1 Click in Search Console.
This might happen in cases where a user clicks a result, returns to the search results, realizes the result wasn’t that bad and clicks it again.

There are a few edge cases with AMP, Jobs and Events where clicks can get counted in somewhat unexpected ways, but for most sites, this basic definition accounts for most of the Clicks in GSC.

Sessions in Google Analytics

A session in Google Analytics starts with the first hit. Usually, that’s the page view hit which is sent to GA immediately when the user enters your site after he has clicked the Google search result. If that was all, GSC clicks and GA session numbers would match pretty closely.

But it’s not that simple. These are the aspects in which GA differs from Search Console’s logic:

Session model

A Google Analytics session ends if no subsequent hit was sent by a particular user within a 30 minute time frame. If a subsequent hit occurs before the 30 minutes are over, e. g. after 17 minutes, the session timeout is reset and starts to count back down from 30 minutes again. 30 minutes is the default session timeout and can be changed.

That means if a user clicks multiple different search results to your site within those same 30 minutes, they will all count as Clicks in Search Console. But since they come from the same user and all happen within the same session, they wont’t increase the Sessions metric.

If you’re an authority in your niche and frequently come up in search results, it’s quite likely that users search for multiple different queries around the same topic and end up on multiple articles of yours. If they click 5 of your Google search results with no more than 30 minutes in between, you’ll only find 1 Organic Search session in Google Analytics.


Google Analytics categorizes a session as organic Google Search traffic if the user arrives with a referrer from a google domain such as google.com in the US or google.de in Germany. In that case, GA will automagically fill the Source / Medium dimensions with “google / organic”.

Organic vs. paid Google traffic

If you run Google Ads though, paid traffic arrives with a google.* referrer as well. In order to categorize it as such, Google Analytics will check for a gclid URL parameter in the session’s landing page URL. The gclid gets automatically appended with every ad click and is a reliable method of separating paid from organic Google traffic.

Unless of course you have redirects in place which happen to remove the gclid parameter before the first GA hit is sent.
Or one of your developers doesn’t like URL parameters and implements JavaScript which removes them for “cleaner” URLs. Speaking from experience, it’s pretty common to see gclid parameters get lost for a variety of reasons, especially with very large sites with many technical stakeholders. If that’s the case with your site, GA might could be mistaking your paid traffic as organic traffic.

Last non-direct click attribution

Google Analytics attributes all sessions to their respective traffic source, e. g. based on the Referrer or utm_* parameters in the landing page URL.

If Analytics can’t find any of this information to deduct the traffic source, it’s direct traffic and the Source / Medium dimensions are set to “direct / none”.

Unless Google Analytics can find a previous session by the same user which did have campaign information: If a user visits your site as an organic Google search user, she will increase the Sessions count for “google / organic” by 1. If she likes your site, she will remember your domain and type it into her browser the next time instead of searching on Google. With such a type-in, there’s no Referrer information nor any utm_* parameters. Still, Google will categorize her second session as organic search traffic.

This will continue until she has a session with different campaign information, such as “stackoverflow.com / referral” or anything else that is not direct.
It’s the last non-direct click that determines the attribution for the following direct sessions.

You should check out the Google Analytics dimension “Direct Session”. If it’s set to Yes, that traffic is actually direct traffic that just got attributed because of the last non-direct session:

Screenshot of the analysis of Google Analytics' Direct Session dimension

The time period that Google Analytics will go back to check for previous attribution information is called the Campaign timeout. It can be configured in your GA property settings and is set to 6 months by default.

Screenshot of the campaign timeout settings in Google Analytics

Keep in mind that the Default Channel Grouping “Organic Search” doesn’t only include Google traffic but also other search engines. While Google is probably your biggest source of search traffic, there are lots of others. Check out Google’s list of Search Engines they can recognize automatically. If they detect traffic is coming from one of them, they’ll classify the session as “organic” in the Medium dimension.


Can you guarantee your Google Analytics code is running on every single page of your website? If it is – do they all track into the same Google Analytics property?

The larger a site is, the more likely that your analytics setup is not 100% consistent with the way that Search Console attributes clicks to the property domain or directory path.

What to do

Now, how do you get around these differences in order to finally produce the same numbers in both tools?

You don’t. Search Console and Google Analytics are different tools with different purposes and that’s how it should be. Make sure you make the people to whom you report the numbers aware of why those differences exist. As long as they can be explained, these discrepancies are not a sign of invalid data.

Become a Server Side Tagging Pro with owntag

Take control of your digital data collection with Server Side Tagging and Server Side GTM – easily hosted with owntag.

App screenshot