TL;DR, Quick Answer
8 min readGA4 files a session as Organic Search when the source matches Google's list of search sites or the medium is exactly "organic", and the channel includes Google's AI Overviews and AI Mode. Matomo checks AI assistants, campaigns and direct entry first, then matches the referrer host against 297 engine definitions in its community list. Neither tool receives the search query, so Matomo shows "Keyword not defined" and keyword data has to come from Search Console, whose click counts will not match analytics sessions for five reasons Google documents.
What is organic traffic in analytics?
In web analytics, organic traffic is the set of visits a tool files under search because the referring hostname matched its list of search engines and no campaign tag or ad click identifier outranked that match. Google's description of the GA4 channel reads: "Organic Search is the channel by which users arrive at your site/app via non-ad links in organic-search results, including Google's AI Overviews and AI Mode."
The number in your report comes from a rule that reads source and medium, and the rule leaks in both directions: real search visits land elsewhere, and visits that never touched a search engine land in Organic Search.
How does GA4 decide a session is Organic Search?
GA4 files a session as Organic Search when one of two conditions holds, and Google publishes both: "Source matches a list of search sites listed under 'SOURCE_CATEGORY_SEARCH' OR Medium exactly matches organic." The first condition catches untagged clicks from search engines, since GA4 sets the source from the referrer. The second condition catches anything you tagged utm_medium=organic, whatever the source.
Google's help page lists the manual-traffic channels in a fixed order, and several rules that touch search sites sit above Organic Search:
| GA4 channel | Rule Google publishes | What it means for search visits |
|---|---|---|
| Paid Search | Source matches a list of search sites AND the medium matches the paid regex, which accepts values containing "cp", plus "ppc", "retargeting" and anything starting with "paid" | A search source only becomes paid when the medium says so |
| Organic Shopping | Source matches a list of shopping sites OR the campaign name matches a regex for "shop" or "shopping" | A campaign name containing "shop" pulls a visit here first |
| Organic Social | Source matches a regex list of social sites OR Medium is one of ("social", ...) | Social platforms with search boxes still count as social |
| Organic Video | Source matches a list of video sites OR Medium matches regex ^(.*video.*)$ | A YouTube search click is Organic Video, not Organic Search |
| Organic Search | Source matches a list of search sites listed under "SOURCE_CATEGORY_SEARCH" OR Medium exactly matches organic | Includes AI Overviews and AI Mode |
| AI Assistant | The medium exactly matches "ai-assistant" | ChatGPT and similar services leave Organic Search |
| Referral | Medium is one of ("referral", "app", or "link") | Search engines missing from Google's list fall here |
Google Ads clicks follow a separate rule set. Paid Search for Google Ads traffic reads: "Source platform is 'Google Ads' AND Google Ads ad network type is one of ('Google Search', 'Google Partners')." That rule depends on auto-tagging, which adds a parameter "called GCLID, short for 'Google Click Identifier'" to the landing URL. Google warns that "If your website uses redirects, it's also important to make sure the GCLID is passed to the final landing page." When a redirect strips the GCLID and the ad carries no UTM tags, the session reaches the manual rules with a Google referrer and no paid medium, and the Organic Search rule matches it.
Google publishes the source list as a downloadable spreadsheet on the same help page, so any search engine you depend on can be checked rather than assumed. The rule order also explains why utm_medium is the field to get right; how GA4 channel rules settle utm_source vs utm_medium walks through it.

How does Matomo decide a visit came from a search engine?
Matomo decides on the referrer host and runs its checks in a fixed sequence in plugins/Referrers/Columns/Base.php. It tries AI assistant detection first, then campaign parameters, then direct entry, search engine and social network, and only when all of those fail does it fall back to REFERRER_TYPE_WEBSITE. A search visit gets REFERRER_TYPE_SEARCH_ENGINE, which core/Common.php declares as the integer 2.
The search engine match comes from SearchEngines.yml in the community-maintained searchengine-and-social-list repository, which held 297 engine definitions when we parsed it for this article. Each definition carries hostnames, the "request parameters (or regexes), that can be used to get the search keyword" and "hidden keyword paths". Google's entry lists hosts such as google.com, google.{} and encrypted.google.com, reads the keyword from the q parameter, and declares hidden keyword paths including / and /search.
The hidden keyword paths matter more than they look. Matomo's extraction code treats a missing keyword on a declared path as a match, with the comment "$key === false is the special case 'No keyword provided' which is a Search engine match." When the keyword is missing and the referrer path is not declared as hidden, the function returns false and the visit falls through to the website type. So Matomo can file a click from a known search host as a referring website, while GA4 files the same click as Organic Search because its rule reads the source alone.
Why does organic traffic arrive without the search keyword?
Organic traffic arrives without the search term because search engines stop sending it and browsers trim the referrer to the origin on cross-origin requests. Matomo's FAQ says the "Keyword not defined" label means "the search engine did not pass to your website the keyword used by your visitors", because "Search engines hide the keyword for privacy reasons." It adds that the label "means that Matomo has detected that the visitor came from a search engine, but the keyword was not provided in the Referrer URL."
The mechanics of the header itself, including why a cross-origin referrer carries only the hostname, are covered in what counts as referral traffic. The practical consequence is that no client-side analytics tool can recover the query from the visit. Query-level data lives in the search engine's own reporting, which for Google means Search Console, and Matomo offers a premium Search Engine Keywords Performance feature that imports keywords from Google, Bing and Yahoo for the same reason.
Why don't Search Console clicks match organic sessions in analytics?
Search Console clicks and analytics organic sessions measure different events, so the two numbers never line up exactly. Search Console defines Clicks as "The number of times a user clicked your site from Google Search results", while GA4 counts sessions that its channel rules assigned to Organic Search after the tag loaded. Google's troubleshooting page for the Performance report names five causes of the gap:
- Privacy. "To protect user privacy, the Performance report does not show all data. For example, it omits some queries that are searched a very small number of times."
- Processing. Google removes duplicates and applies other processing to the source data before it reaches the report.
- Time lag. Google says collected data is usually available in two to three days.
- Time zones. "In all views (except the 24-hour view), the Performance report tracks and labels daily data in Pacific Time (PT)."
- JavaScript. "Some tools, such as Google Analytics, track traffic only from users who have enabled JavaScript in their browser."
A click also becomes a session only if the page loads and the tag fires, and GA4 closes a session after inactivity, as what a session is in web analytics explains. One search click can produce zero sessions or several.
What moves search visits in and out of the organic channel?
Four common cases move visits across the Organic Search boundary, and each one leaves a signature you can check.
Flowsery
Start Your 14-Day Free Trial
Real-time dashboard
Goal tracking
Cookie-free tracking
| Cause | Where the visit lands | How to spot it |
|---|---|---|
Referrer lost, such as a link from an app or a page with a no-referrer policy | Direct | Deep landing pages that nobody types or bookmarks showing Direct as the top channel |
| GCLID stripped by a redirect on an untagged ad | Organic Search | Organic sessions on pages that only ads link to |
A newsletter or partner link tagged utm_medium=organic | Organic Search | Organic sessions with a source that is not a search engine |
| Search engine missing from the tool's list | Referral in GA4, website in Matomo | A search domain in the referral report |
Visits that match no rule at all become Unassigned in GA4, which what unassigned traffic in GA4 means covers, and visits with no referrer become Direct, covered in why direct traffic is the bucket for everything analytics could not attribute.

How do you audit your organic traffic numbers?
You audit organic traffic by comparing the channel against the rule that built it, one input at a time:
- Break Organic Search down by session source. Every source should be a search engine; anything else arrived through
utm_medium=organic. - Break it down by landing page. Pages that no search result links to point at a stripped GCLID or a mistagged link.
- Check the referral report for search domains. Each one is a search engine missing from the source list.
- Compare weekly organic sessions against Search Console clicks for the same pages, and treat a sudden change in the ratio as a tracking change rather than a ranking change.
- Fix the tags at the source. A corrected
utm_mediumrepairs future data, and Google does not allow edits to the default channel group itself.
How does Flowsery report organic traffic?
Flowsery reports organic traffic as one of the channels in its revenue attribution view. The Revenue by Source report shows "which channels, organic, paid, social, direct, generate the most revenue", and Revenue per Visitor calculates "the true value of each traffic source", so you can see "what a click from Google, Twitter, or your newsletter is worth." Payments from Stripe, Paddle, Polar, Shopify or Lemon Squeezy tie back to the session that converted. The revenue tracking feature shows how the source breakdown works.
Frequently asked questions
Is organic traffic the same as SEO traffic?
In analytics reports the two are the same set of visits. GA4 fills Organic Search from the search site list or medium=organic, so any visit that meets the rule counts, whether or not SEO work produced it.
Does traffic from Google AI Overviews count as organic traffic?
Yes, in GA4. Google's own channel description says Organic Search includes "Google's AI Overviews and AI Mode." Visits from ChatGPT, Gemini and similar assistants go to the separate AI Assistant channel instead.
Why does GA4 show google / organic for traffic I paid for?
The Google Ads click reached your site without its GCLID and without UTM tags. Google's auto-tagging page warns that redirects must pass the GCLID to the final landing page. Without it, GA4 sees a Google referrer and no paid medium, and the Organic Search rule matches.
Can I see which keywords brought organic traffic in my analytics tool?
No client-side analytics tool receives the query, because search engines withhold it from the referrer. Matomo labels these visits "Keyword not defined" and GA4 shows no query dimension on the visit. Keyword data comes from Search Console, either directly or through the Search Console link in GA4.
Why is YouTube search traffic not in Organic Search?
GA4 evaluates Organic Video before Organic Search in its published rule list. A visit from a source on the video site list, or with a medium containing "video", lands in Organic Video. The same logic sends shopping sites to Organic Shopping.
Does Matomo count Bing and DuckDuckGo as search engines?
Yes. Matomo's SearchEngines.yml holds definitions for the major engines, each with hostnames, keyword parameters and hidden keyword paths. A visit from a listed host gets REFERRER_TYPE_SEARCH_ENGINE unless an AI assistant, campaign or direct entry check matched first.
Can you edit GA4's default channel grouping rules?
Google doesn't allow edits to the default channel group. Correcting a wrong utm_medium repairs sessions going forward, and visits already filed keep their default channel. To regroup past visits, build a custom channel group, which Google says can be applied to your reports retroactively.
Where do visits go when they match no GA4 channel rule at all?
GA4 files them as Unassigned, a channel separate from Organic Search, Referral and Direct. A visit lands there when its source, medium and campaign data don't satisfy any rule in Google's published list, including the manual rules for search, social, video and shopping.
Why might a page that ranks in search show Direct as its top channel?
A page shows Direct on top when many of its visitors arrive with no referrer, such as from bookmarks, apps or links under a no-referrer policy. A Google Search click does not drop its referrer on the way to an HTTP page, because Google sets a referrer policy of origin, which sends Google's origin even on a downgrade, so GA4 can still match it against the search site list.
What does Matomo call its paid keyword recovery feature?
Matomo calls it Search Engine Keywords Performance, a premium feature that imports keyword data from Google, Bing and Yahoo. It is included in Matomo Cloud plans and sold on the Matomo Marketplace for On-Premise users. It exists because the referrer never carries the query, so "Keyword not defined" visits have no other source for the term.
Was This Article Helpful?
Let us know what you think!
See us more often in Google
One click marks Flowsery as a preferred source, so our articles sit higher in your Top Stories, AI Mode, and AI Overviews.
Before you go...
Flowsery
Revenue-first analytics for your website
Track every visitor, source, and conversion in real time. Simple, powerful, and cookie-free.
Real-time dashboard
Goal tracking
Cookie-free tracking
Related Glossary Terms


How to Link Search Console to GA4 and Publish Its Reports
Learn how to link Search Console to GA4 in Admin, which roles you need, how to publish the two reports in Library and what the data can't join.


When Data Sampling Starts and How to Spot It in a Report
In GA4, data sampling starts above 10 million events on standard properties and 100 million on Analytics 360, and one icon is the only on-screen tell.


What Counts as Referral Traffic, and What Quietly Does Not
Referral traffic is decided by two different rules. GA4 reads the medium, Matomo reads the referrer host, and the Referer header drops most of the URL.


Why Unique Visitors Meaning Changes From Tool to Tool
The unique visitors meaning depends on the tool: GA4 estimates it, Matomo refuses to compute it on long ranges, Adobe dedupes it across the whole report.


Why Your GA4 Bounce Rate Is Just Engagement Rate Flipped
Your GA4 bounce rate is the share of sessions that were not engaged. How Google defines it, how it differs from Universal Analytics, and where to add it.


What the GA4 Landing Page Report Counts and Where It Goes Blank
Google's GA4 landing page report lists the first page of every session. Where to find it, its default metrics, why (not set) rows appear and how to add source.
Related Articles


How GA4 Site Search Tracking Records What Visitors Type
Set up GA4 site search with enhanced measurement, add your own query parameters, find the Search term dimension and track searches without a URL.


Setting GA4 User Properties and Reporting on Them
Set GA4 user properties with gtag or Tag Manager, register them as user-scoped custom dimensions and stay inside the 25-property limit.


How to Build GA4 Calculated Metrics Inside a Five-Slot Quota
Google caps GA4 calculated metrics at 5 per standard property. Learn the formula syntax, the units, where they appear and what a formula can't use.

