GUIDE · FOR MARKETERS, SEOS AND SITE OWNERS

Search Console vs Google Analytics 4: Why the Numbers Differ

Search Console counts what happens on Google before a visit; Google Analytics 4 counts what happens on your site after it. This guide covers what each tool measures, every real reason their numbers disagree, which figure to trust for which question, how to link them, and how to query both with AI.

By GSC MCP Server teamUpdated 16 min read

Search Console vs Google Analytics: the short answer

Google Search Console measures what happens on Google before a visit: how often your pages appear (impressions), how often people click them (clicks), click-through rate and average position, by query and page. Google Analytics 4 measures what happens on your site after the visit, from every channel: sessions, users, engagement, key events and revenue. Search Console clicks and GA4 sessions are counted in different places by different rules, so they never match exactly. Use Search Console for search visibility and GA4 for behaviour and conversions.

Most of the gap comes from consent banners, blockers, other search engines inside GA4’s Organic Search channel, time zones and different rules for which page gets the credit. A steady gap is normal; a gap that suddenly changes usually means your tracking did.

We make GSC MCP Server, a hosted MCP server that lets AI assistants read Search Console and Bing Webmaster Tools. It doesn’t read Google Analytics, so where GA4 is involved we point to Google’s own tools. Google product details below were checked against Google’s documentation on 30 October 2026.

What Search Console and GA4 each measure

The simplest way to hold the difference in your head: Search Console stops at the click, and GA4 starts at the page load. Everything in between, including a cookie banner, an ad blocker and a slow page, is where the numbers drift apart.

Google Search ConsoleGoogle Analytics 4
Question it answersHow Google shows your site and how many people click throughWhat visitors do once they arrive, and which channels sent them
How data is collectedGoogle’s own search logs; nothing runs on your siteA tag on your pages sends events
Core metricsClicks, impressions, CTR, average positionSessions, users, engaged sessions, key events, revenue
Traffic coveredGoogle Search (web, image, video, News tab), Discover, Google NewsEvery channel: all search engines, paid, social, email, referral, AI assistants, direct
Search queriesYes, except rare queries hidden for privacyOnly through the Search Console link
Indexing and crawlingPage indexing, URL Inspection, sitemaps, crawl statsNone
History16 monthsStandard reports keep history; explorations follow your retention setting (2 or 14 months on standard properties)
Day boundaryPacific TimeYour property’s reporting time zone

Each of Search Console’s four metrics has counting rules of its own; Search Console metrics explained goes through them one by one. This article sticks to where the two tools meet.

Why Search Console clicks and GA4 sessions don’t match

Before you suspect broken tracking, rule out the differences in what each tool counts. Some push Search Console higher, some push GA4 higher.

A click is not a session

In Google’s definition, a click takes someone from Google Search, Discover or News to a page outside Google, and clicking the same result again after coming back counts once. A GA4 session starts when someone views a page with no session active, and by default ends after 30 minutes of inactivity. Two of your results clicked within minutes are two clicks and one session; one click on a tab left open over lunch can become two sessions. Compare clicks with sessions, never with views.

GA4’s Organic Search includes every search engine

GA4’s Organic Search channel matches any source on its list of search sites, or any session with the medium organic. Bing, DuckDuckGo, Yahoo and the rest all land there; Search Console only knows about Google. Use GA4’s Traffic acquisition report with Session source / medium set to google / organic, and check Bing in Bing Webmaster Tools.

Search Console splits Google into several reports

The Performance report opens on the Web search type. Image, Video and News tab clicks are separate search types, and Discover and Google News have their own reports. GA4 doesn’t make those distinctions. Image search clicks typically arrive as google / organic, and Google doesn’t document how Discover visits are attributed: in practice they arrive with a Google referrer (Organic Search) or with none (Direct). If Discover matters to you, add its report to any comparison; see Google Discover in Search Console.

Pages get the credit differently

Search Console attributes clicks, impressions and position to the canonical URL of the link, the URL Google chose to represent a set of duplicates. GA4’s Landing page is the path of the first page view in a session, after any redirect. Parameter URLs, redirected URLs and pages whose Google-selected canonical differs from yours end up on different rows. Clicks to PDFs and other files that can’t run a tag appear only in Search Console.

Different days, different delays

Search Console tracks each day in local time in California, and the Search Analytics API takes dates in Pacific Time (UTC−8 or UTC−7). GA4 uses your property’s reporting time zone. For a property on UK time, a Search Console “day” runs from 08:00 to 08:00 for most of the year, so daily figures never line up. Search Console data also takes 2–3 days to arrive in full.

Search Console hides rare queries

To protect privacy, Search Console leaves very rare queries out of query tables, though chart totals still include their clicks. Query rows never add up to the total, but site totals are unaffected.

Tracking gaps: consent, blockers and tags that don’t fire

These are why Search Console is usually the higher number. It records the click on Google’s side, so nothing on your site can stop it. GA4 only records a visit if its tag loads, runs and is allowed to send data.

Consent banners and consent mode

  • Basic consent mode, or a banner that blocks the tag: Google tags wait until the visitor agrees. Anyone who declines, or ignores the banner and leaves, produces no GA4 data.
  • Advanced consent mode: tags load before the banner and send cookieless pings when consent is declined, which GA4 can use for behavioural modelling of sessions and users.

Modelling only switches on when a property has at least 1,000 events a day with analytics storage denied for 7 days, at least 1,000 daily consenting users on 7 of the previous 28 days, and Reporting identity set to Blended. Many smaller sites never qualify, so their GA4 numbers simply leave out everyone who declined. Expect the gap to jump on the day you change your banner.

Blockers and tags that don’t fire

  • Ad blockers and privacy tools often block Google Analytics. Those visitors still clicked on Google, so Search Console counts them. Nobody can tell you exactly how many there are, which is one reason the gap varies so much between audiences.
  • Missing tag: landing pages built in another tool, a template that skips the tag, or a subdomain without it.
  • Late tag: the click counts the moment someone leaves Google. If they press Back before a slow page loads the tag, there is no session.
  • Misconfigured tag: if the Google tag in Google Tag Manager doesn’t fire on the Initialization trigger, sessions can miss session_start and report (not set) as source and medium, according to Google’s “(not set)” article.
  • Redirects that drop the referrer: a JavaScript redirect or a hop through another domain can strip the referrer, turning a Google click into a Direct session.

Filters and bot exclusion

An internal traffic filter in the Active state removes matching visits from GA4 permanently; the excluded data is never processed. GA4 also excludes known bots automatically, and you can’t see how much it removed. Search Console removes robot visits and duplicates by its own rules.

When GA4 is higher than Search Console

  • Sessions split by the 30-minute timeout.
  • Your own links tagged with utm_medium=organic, which GA4 files under Organic Search.
  • Bots that fake a Google referrer and get past known-bot filtering.
  • A GA4 property that covers more hostnames than the Search Console property you’re comparing.
  • Comparing GA4’s whole Organic Search channel, rather than google / organic, with Google-only clicks.

Channel grouping, attribution and “(not set)”

Even when GA4 records a visit, it has to land in the right bucket. GA4’s default channel group sorts sessions by rules on source, medium and campaign:

  • Organic Search covers non-ad search results and, per Google, includes AI Overviews and AI Mode. Search Console counts those clicks in its Web totals too, so here the tools agree.
  • Organic Shopping and Organic Video are separate. A visit from YouTube is Organic Video, even if the viewer found the video through Google.
  • AI Assistant arrived on 13 May 2026, according to Google’s release notes. When the referrer matches an assistant such as ChatGPT, Gemini, Copilot, DeepSeek or Grok, GA4 sets the medium to ai-assistant. Before that, these visits usually showed up as Referral, so read channel trends across May 2026 with care. Assistants that send no referrer still land in Direct, and none of this traffic appears in Search Console.
  • Direct collects visits with no usable referrer, including some Discover and app traffic.
  • Unassigned means no rule matched, often because source and medium are (not set).

For AI referrals, including a custom channel group as a backstop, see how to measure AI search visibility.

“(not set)” and “(other)”

  • (not set) as a landing page means the session had no page_view event, for example because the page view didn’t fire or the session restarted on another event.
  • (other) groups less common values once a report hits its row limit. Landing pages with many query-string variants are a common cause, leaving their Search Console clicks with nothing to match.

Use the session-scoped Traffic acquisition report for these comparisons. User acquisition credits each user’s first-ever source, which answers a different question.

Which number to trust for which question

Neither tool holds the “true” number. Each is the right number for certain questions.

QuestionUseWhy
How visible are we in Google Search?Search Console impressions and average positionOnly Google knows when your page was shown
How many people came from Google Search?Search Console clicksCounted by Google, unaffected by consent or blockers
Which queries bring those clicks?Search Console, or GA4’s Queries report once linkedGA4 can’t see queries on its own
How much traffic came from all search engines?GA4 Organic Search, plus Bing Webmaster Tools for Bing clicksSearch Console covers Google only
Did organic visitors engage and convert?GA4 engaged sessions, key events and revenue, filtered to google / organicSearch Console stops at the click
How much traffic do AI assistants send?GA4’s AI Assistant channel, treated as a floorSearch Console doesn’t see ChatGPT or Gemini visits
How often do we appear in AI Overviews and AI Mode?Search Console’s generative AI reportGA4 has no impressions and mixes these clicks into Organic Search
Did our Google traffic really drop?Search Console clicks, checked against GA4’s trendIf only GA4 fell, suspect tracking first

Our guide to Search Console’s generative AI report explains what that report shows. For client reports, a sensible split is Search Console clicks as “traffic from Google Search” and GA4 for what that traffic did next; SEO client reporting with AI shows how to build a monthly report around it.

How to reconcile the two, step by step

You won’t make the numbers match, but you can explain the difference. Work through these in order and stop when the gap makes sense.

  1. Match the scope. A Search Console Domain property covers every subdomain and protocol; your GA4 tag may only be on www. Compare weeks or months of complete days.
  2. Match the source. Filter GA4’s Traffic acquisition report to google / organic and use Sessions, not Views.
  3. Match the surfaces. Add Search Console’s Image, Video and News search types, Discover and Google News for an “all Google” total.
  4. Compare landing pages. Line up top pages by clicks with their sessions and look for outliers, not a perfect fit.
  5. Explain the outliers. Check the tag, any redirect, and whether Google picked a different canonical.

Steps 3 to 5 are where a Search Console MCP server saves the most time, because the assistant can pull every search type and inspect URLs without exports.

Try this prompt
Using Search Console, get clicks for example.com from 1 to 30 September 2026 with query_search_analytics and the date dimension, once for each search type: web, image, video, news, discover and googleNews. Use final data only. Give me weekly totals per type and an all-Google total, and remind me that the days are in Pacific Time.

That is six tool calls. The assistant can batch them with multicall, though each still counts towards your monthly allowance.

Try this prompt
Get the top 50 pages by clicks for example.com over the last 28 days with get_search_pages. I’ll paste GA4’s landing page report with google / organic sessions for the same dates. Match rows by path, ignoring query strings and trailing slashes, and list pages where sessions are less than half of clicks.
Try this prompt
For the five pages with the biggest gap, run inspect_url and tell me whether each is indexed, when Google last crawled it, and whether Google’s chosen canonical matches the URL. Flag any page whose Google canonical points elsewhere, because Search Console credits its clicks to that other URL.

Google Analytics MCP and Search Console MCP together

For an AI assistant to answer questions that span both tools, it needs two MCP servers: Google’s own server for GA4, and a separate one for Search Console. For ads, CRM and other sources, see the best MCP servers for marketing.

Google’s official Google Analytics MCP server

Google publishes the Google Analytics MCP Server on GitHub as googleanalytics/google-analytics-mcp, under the Apache 2.0 licence. In brief:

  • It runs on your machine with pipx run analytics-mcp, and the repository also covers running it as a remote server.
  • It needs a Google Cloud project with the Analytics Admin and Data APIs enabled, and Application Default Credentials with the analytics.readonly scope.
  • Read tools include get_account_summaries, run_report, run_realtime_report, run_funnel_report and run_conversions_report.
  • Read-only by default. --allow-write with the analytics.edit scope adds tools to create annotations, custom dimensions and key events (see the README for the current list).
  • Clients: Google’s setup page (updated 26 October 2026) covers Antigravity CLI and IDE, Claude Desktop, Claude Code and Cursor, and notes that Gemini CLI is deprecated.

It handles GA4 questions well: sessions and key events by channel or landing page, funnels, realtime users. It can’t give you search queries, because the Data API has no Search Console query dimension.

A Search Console MCP server alongside it

Ours, GSC MCP Server, is hosted and read-only. It reads Search Console performance data, URL Inspection and sitemaps, plus Bing Webmaster Tools, with no Google Cloud project to set up. It doesn’t read GA4, Search Console’s Page indexing report or Core Web Vitals. Some open-source servers bundle GA4; our comparison of the best Google Search Console MCP servers lists them. To get started, see how to connect Search Console to Claude, ChatGPT and Cursor; for first-party data against suite estimates, read Search Console MCP vs Ahrefs and Semrush MCP.

With both connected to the same client, name the source at each step:

Try this prompt
Using analytics-mcp, call run_report for GA4 property 123456789 from 1 to 30 September 2026: sessions, engagedSessions and keyEvents by landingPage, filtered to sessionSource google and sessionMedium organic. Then use the Search Console connector’s query_search_analytics to get clicks by page for the same dates. Join on path and show the ten pages with the most clicks and the fewest key events per 100 clicks.
Try this prompt
With compare_search_periods, compare the last 28 days with the same weeks a year earlier for example.com, by page. Then use analytics-mcp’s run_report to get google / organic sessions by landing page for both periods. Split the pages into “lost clicks and sessions” (a real loss) and “lost sessions only” (check tracking or attribution first).

When the gap is a real problem

Google doesn’t publish a “normal” gap, and it varies with your audience’s consent choices, browsers and blockers. Instead of chasing a benchmark, track one ratio week by week: GA4 google / organic sessions divided by Search Console web clicks. Whatever your ratio is, the warning sign is a change in it.

What you seeLikely causeFirst check
Both fall togetherA real loss of Google trafficDiagnose the drop from Search Console clicks
GA4 falls, Search Console holdsA tag removed, a consent banner change, a new templateThe tag on top landing pages, consent settings, recent deploys
GA4 rises, Search Console holdsSplit sessions, UTM-tagged links, bots or other search enginesSession source / medium and hostnames in GA4
Search Console falls, GA4 Organic Search holdsOther engines offsetting the Google lossGA4 Organic Search split by session source
The ratio shifts on one exact dayA deploy, a consent change or a GA4 setting changeGA4 change history and annotations

If both numbers fell, the gap isn’t your problem; the traffic is. Work through our step-by-step diagnosis of an organic traffic drop. If only GA4 fell, check tracking before you touch any content.

To try the Search Console half on your own site, our Free plan connects one Google or Bing account with 30 tool calls a month, and Google’s Analytics server is free and open source.

Frequently asked questions

Is Google Search Console part of Google Analytics?

No. They are separate free Google products with their own sign-ins and permissions. Search Console reports how your site performs in Google Search and whether Google can index it; Google Analytics 4 reports what visitors from every channel do on your site. You can link them so that Search Console’s clicks, impressions, CTR and average position appear in two GA4 reports.

Why are my Search Console clicks higher than GA4 sessions?

Because GA4 misses visits that Search Console still counts: declined analytics consent, blockers, tags that don’t fire, and clicks to files such as PDFs.

Why does GA4 show more organic traffic than Search Console?

GA4’s Organic Search channel includes every search engine, and one click can become two sessions. Filter GA4 to the session source google before you compare.

Can I see Search Console queries in GA4?

Yes. Once you link the two and publish the Search Console collection from GA4’s Library, the Queries report shows Google queries with clicks, impressions, CTR and average position. You can’t combine queries with GA4 metrics such as engagement or key events, because Search Console metrics only work with Search Console dimensions plus Landing page, Device and Country.

How big a gap between Search Console and GA4 is normal?

Google doesn’t publish a normal range, and it varies with your audience’s consent choices, browsers and blockers. Measure your own ratio of GA4 google / organic sessions to Search Console web clicks over a few months. A stable ratio is fine; a sudden change in it usually means tracking, consent or attribution changed.

Can Search Console show conversions?

No. Search Console stops at the click, so it has no sign-ups, purchases or other key events. Use GA4 for those, filtered to session source google and medium organic, and join it to Search Console by landing page.