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 Console | Google Analytics 4 | |
|---|---|---|
| Question it answers | How Google shows your site and how many people click through | What visitors do once they arrive, and which channels sent them |
| How data is collected | Google’s own search logs; nothing runs on your site | A tag on your pages sends events |
| Core metrics | Clicks, impressions, CTR, average position | Sessions, users, engaged sessions, key events, revenue |
| Traffic covered | Google Search (web, image, video, News tab), Discover, Google News | Every channel: all search engines, paid, social, email, referral, AI assistants, direct |
| Search queries | Yes, except rare queries hidden for privacy | Only through the Search Console link |
| Indexing and crawling | Page indexing, URL Inspection, sitemaps, crawl stats | None |
| History | 16 months | Standard reports keep history; explorations follow your retention setting (2 or 14 months on standard properties) |
| Day boundary | Pacific Time | Your 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_startand 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 nopage_viewevent, 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.
| Question | Use | Why |
|---|---|---|
| How visible are we in Google Search? | Search Console impressions and average position | Only Google knows when your page was shown |
| How many people came from Google Search? | Search Console clicks | Counted by Google, unaffected by consent or blockers |
| Which queries bring those clicks? | Search Console, or GA4’s Queries report once linked | GA4 can’t see queries on its own |
| How much traffic came from all search engines? | GA4 Organic Search, plus Bing Webmaster Tools for Bing clicks | Search Console covers Google only |
| Did organic visitors engage and convert? | GA4 engaged sessions, key events and revenue, filtered to google / organic | Search Console stops at the click |
| How much traffic do AI assistants send? | GA4’s AI Assistant channel, treated as a floor | Search Console doesn’t see ChatGPT or Gemini visits |
| How often do we appear in AI Overviews and AI Mode? | Search Console’s generative AI report | GA4 has no impressions and mixes these clicks into Organic Search |
| Did our Google traffic really drop? | Search Console clicks, checked against GA4’s trend | If 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 link Search Console to GA4
Linking brings Search Console’s four metrics into GA4, so you can see clicks next to sessions for each landing page. You need the Editor role on the GA4 property and must be a verified owner of the Search Console property. The steps follow Google’s linking guide:
- In GA4, go to Admin, find Product links and choose Search Console Links.
- Select Link.
- In the “Link to Search Console properties I manage” row, select Choose accounts, pick the property, then Confirm and Next.
- Choose the site’s web data stream, select Next, then review and submit.
- Open Library in the left-hand navigation and publish the Search Console collection. It is unpublished by default, which is why many people link the accounts and then can’t find the reports.
The two reports you get
- Queries (Google Organic Search Queries): Google queries with clicks, impressions, CTR and average position, with drill-downs by Search Console dimensions only.
- Google organic search traffic: landing pages with Search Console and GA4 metrics side by side, with Country and Device drill-downs. This is the most useful view in the integration.
Inside GA4 the metrics are named Organic Google search clicks, impressions, click through rate and average position.
Limits worth knowing
- One to one. A web data stream links to one Search Console property, and a Search Console property to one web data stream.
- No trend charts. The Search Console reports in GA4 don’t support time-series charts.
- No conversions by query. Search Console metrics only work with Search Console dimensions plus Landing page, Device and Country.
- 16 months, 48 hours behind. GA4 shows at most Search Console’s 16 months, and data arrives about 48 hours after Search Console collects it.
- No queries in the API. The Data API schema lists the four Search Console metrics (such as
organicGoogleSearchClicks) but no Search Console query dimension, so query-level work still needs Search Console or the Search Console API.
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.
- 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.
- Match the source. Filter GA4’s Traffic acquisition report to
google / organicand use Sessions, not Views. - Match the surfaces. Add Search Console’s Image, Video and News search types, Discover and Google News for an “all Google” total.
- Compare landing pages. Line up top pages by clicks with their sessions and look for outliers, not a perfect fit.
- 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.
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.
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.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.readonlyscope. - Read tools include
get_account_summaries,run_report,run_realtime_report,run_funnel_reportandrun_conversions_report. - Read-only by default.
--allow-writewith theanalytics.editscope 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:
Using analytics-mcp, callrun_reportfor 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’squery_search_analyticsto 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.
Withcompare_search_periods, compare the last 28 days with the same weeks a year earlier for example.com, by page. Then use analytics-mcp’srun_reportto 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 see | Likely cause | First check |
|---|---|---|
| Both fall together | A real loss of Google traffic | Diagnose the drop from Search Console clicks |
| GA4 falls, Search Console holds | A tag removed, a consent banner change, a new template | The tag on top landing pages, consent settings, recent deploys |
| GA4 rises, Search Console holds | Split sessions, UTM-tagged links, bots or other search engines | Session source / medium and hostnames in GA4 |
| Search Console falls, GA4 Organic Search holds | Other engines offsetting the Google loss | GA4 Organic Search split by session source |
| The ratio shifts on one exact day | A deploy, a consent change or a GA4 setting change | GA4 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.