Search Console vs Google Analytics: why clicks don't match GA4
Search Console counts clicks on Google results; GA4 counts sessions on your site. What each measures, why the numbers differ, and when to use which.
Search Console and Google Analytics 4 will never show the same number, because they count different things in different places. Search Console counts clicks on your results in Google Search, recorded by Google on its own results pages. GA4 counts sessions recorded by a tag on your website, from every source, for visitors whose browsers run that tag and, depending on your consent setup, who have not opted out. Small differences are normal; a large gap usually comes from missing tags, consent, time zones, canonical URLs or comparing GA4’s whole Organic Search channel with Google alone.
What Search Console measures
Search Console reports what happens on Google before anyone reaches your site: impressions, clicks, click-through rate and average position, broken down by query, page, country, device and search appearance, along with whether your pages are indexed at all. It covers Google and nothing else, split into web, image, video and news results, with Discover in a separate report.
Outside its 24-hour view, its daily data is labelled in Pacific Time, and you cannot change that. It keeps 16 months of data, and collected data is usually available two to three days later. None of it depends on anything installed on your site, which is why it still counts clicks to pages your analytics never sees.
What GA4 measures
GA4 reports what visitors do after they arrive: sessions, users, engagement, key events and revenue, from every channel, including other search engines, social, email and direct visits. It depends on the tag. A page without it, a browser that blocks it, or a visitor who declines tracking is a visit GA4 may never record. Its reports use the time zone set on the property.
GA4 does not report the queries people typed into Google. The query data you can see inside GA4 comes from Search Console, through the integration described below.
Side by side
| Search Console | Google Analytics 4 | |
|---|---|---|
| Counts | Impressions and clicks on Google results | Sessions, users and events on your site |
| Recorded by | Google, on its results pages | A tag on your pages |
| Sources | Google Search; Discover in its own report | Every channel |
| Search queries | Yes, with rare queries left out of tables | Imported from Search Console when linked |
| Page URLs | The canonical URL Google chose | Every URL that carries the tag |
| Time zone | Pacific Time, fixed | The property’s time zone |
| History | 16 months | Standard reports are not affected by the retention setting; explorations keep 2 or 14 months |
| Affected by consent and blockers | No | Yes |
Why the numbers don’t match
- A click is not a session. Search Console counts a click when someone follows your result out of Google. GA4 counts a session when the tag on the landing page runs. Someone who clicks and leaves before the page finishes loading is a click with no session.
- Missing tags. Pages without the GA4 tag still receive clicks from Search, and Search Console counts them. The same goes for PDFs and other non-HTML files shown in results: Search Console includes them, while a tag cannot run inside a PDF.
- Consent, JavaScript and blockers. Google’s own guidance notes that if visitors opt out of tracking, Analytics data is skewed, and that Analytics tracks traffic from users who have JavaScript enabled, not from those who have not. Some browsers and extensions block analytics scripts too. None of this affects Search Console.
- Time zones. Search Console’s days run on Pacific Time; GA4’s run on whatever the property is set to. For a property set to London time, the two tools’ days are eight hours apart for most of the year, so they share 16 of their 24 hours and daily figures never line up exactly.
- Channels and attribution. GA4’s Organic Search channel counts sessions from a list of search sites, not Google alone, and assigns each session to a channel by its own rules. Search Console counts every click from Google Search.
- Canonical URLs. Search Console attributes clicks to the canonical URL Google selected. GA4 counts whichever URL carried the tag, parameters included, so page-level comparisons drift apart, especially when Google picked a canonical you did not expect.
- Privacy filtering and row limits. To protect privacy, Search Console leaves rare queries, often called anonymised queries, out of its tables but includes them in chart totals, and a table shows at most 1,000 rows. Adding up the query rows will usually fall short of the total.
- Bots and timing. GA4 automatically excludes known bots. And Search Console’s most recent days are still being collected, so a comparison that includes them is comparing an unfinished number with a finished one.
Why Search Console data is days behind covers the timing point in more depth.
How to compare them fairly
- Pick a date range that ended at least three days ago, so Search Console’s numbers have settled.
- In GA4, open Reports → Acquisition → Traffic acquisition, change the table’s primary dimension to Session source / medium, and read sessions for the google / organic row.
- In Search Console, open Performance → Search results for the same dates and read total clicks.
- Allow for the time-zone offset before reading anything into a single day.
- For page-level detail, link the two. In GA4 go to Admin → Product links → Search Console links and choose Link; you need the Editor role on the Analytics property and must be a verified owner of the Search Console property. Then publish the Search Console collection from the Library, where it sits unpublished by default.
Once linked, the Google Organic Search Traffic report lists landing pages with Search Console and Analytics metrics together, and Google Organic Search Queries shows queries with their Search Console metrics. A web data stream can link to one Search Console property, and Search Console metrics there combine with three Analytics dimensions and no others: landing page, device and country. Google’s guide to using the two together and the Search Console help on data discrepancies go further.
When to use which
Use Search Console for questions about Google: are we being shown, for which queries, in which positions, did people click, and are our pages indexed. It is the place to start when organic traffic falls, because it tells you whether the change happened on Google or on your site; clicks dropped, now what is the investigation step by step. Search Console metrics explained covers how to read its four numbers.
Use GA4 for questions about your site: what visitors from search did next, whether they converted, and how search compares with every other channel. A fall in GA4’s google / organic sessions that Search Console’s clicks do not share usually points at your tag or consent setup rather than at Google.
Use both when a client asks whether SEO is working: Search Console for the traffic Google sent, GA4 for what it was worth.
Where QueryWatch fits
QueryWatch reads Search Console and nothing else. The clicks, impressions, CTR and positions in the app are Search Console’s figures through Google’s API, labelled with the last complete day, so they line up with the Search Console website for the same dates and differ from GA4 for every reason above. There is no GA4 data in the app; a GA4 overlay is on the “later” part of the roadmap, without a date. If you want your Search Console numbers on your phone, with an alert when they move, the product page explains what the app does.
Questions
Should I report Search Console clicks or GA4 sessions to a client?
Use each for the question it answers. Search Console clicks show how much traffic Google Search sent and for which queries; GA4 shows what those visitors did once they arrived. Say which one a number comes from, and do not put the two side by side as if they should match.
Why does GA4 show more organic traffic than Search Console?
Usually because GA4's Organic Search channel includes other search engines, not just Google, and because GA4 records every URL that carries its tag while Search Console reports the canonical URL Google chose. Filter GA4 to the google / organic source and medium before comparing.
Can I see Search Console queries inside GA4?
Yes, once you link the two. The link adds a Search Console collection with Google Organic Search Queries and Google Organic Search Traffic reports, which is unpublished by default and has to be published from the Library. The data covers up to 16 months, because that is what Search Console keeps.
How big a difference is normal?
Google does not publish a threshold. Its guidance treats small differences as normal and large ones as worth investigating, using causes such as missing tags, consent choices, time zones and canonical URLs.
Keep reading
Get QueryWatch
Free on iPhone and Android for every property you have, with no site limit. Open Demo Mode first if you want to look around before you connect a Google account.
iPhone needs iOS 26 or later; Android needs Android 12 or later. Free to download, with an optional Pro subscription. An independent app, not affiliated with Google.