What Is Direct Traffic in Google Analytics? (Most of It Isn't)

- Direct traffic in Google Analytics means a visit arrived with no referrer and no campaign tag. It does not mean someone typed your address.
- In GA4, the Direct channel is source exactly
(direct)and medium(not set)or(none), per Google's own default channel group definitions. - Most missing referrers come from ordinary browser and app behavior, not secrecy.
- On one of our own sites, 856 of 1,628 visits over 7 days (53%) arrived with no referrer and no campaign tag, and 798 of those 856 (93%) started on a page other than the homepage.
- A deep landing is evidence of a link. The landing page is a clue to the source, never its name.
Direct traffic in Google Analytics is a visit that arrived with no referrer and no campaign tag. That is the whole definition. It says nothing about intent, loyalty, or whether a human typed your domain from memory.
What GA4 means by Direct
Google's default channel group definitions are strict. The Direct channel is source exactly (direct) and medium (not set) or (none). Unassigned is the value Analytics uses when no other channel rule matches the event data. Google describes Direct as users arriving via a saved link or by entering your URL. That is one common cause, not the definition.
This is the direct traffic meaning most people miss. The label describes what the request carried, not what the person did.
Why the referrer goes missing
Browsers drop or shorten the referrer for routine reasons. None of them involve anyone hiding.
Clicks inside your own site
A click from one page to another on the same site carries no outside referrer. Counted by pageview, this dominates. Over 7 days, one of our own sites logged 5,774 pageviews and 1,628 visits. Of those pageviews, 3,841 (66.5%) had no outside referrer. Counted by visit, only 856 (53%) arrived with no referrer and no campaign tag. A visit here means a run of pageviews with gaps of 30 minutes or less. Same traffic, two very different numbers.
The default referrer policy shortens the header
MDN's Referrer-Policy page documents strict-origin-when-cross-origin as the default when a site sets no policy. On a same-origin request the header carries the origin, path and query string. On a cross-origin request it carries the origin only, and only when the protocol stays HTTPS to HTTPS. It sends no Referer header from HTTPS to HTTP. A link marked rel=noreferrer sends no referrer at all. That is the default doing its job.
Apps often send nothing
Many apps open links with no referrer. Email clients, chat apps and native mobile apps often send none. A click from a message can land in Direct with no trace of where it started.
Campaign tags beat a missing referrer
If a link carries UTM parameters, a tool that reads utm_source has a source even when the referrer is absent. ChatGPT adds utm_source=chatgpt.com to the links in its answers. Over 30 days, 360 visits (5.3%) to one of our sites carried that tag and no referrer. A tool that reads only the referrer would have counted every one of them as direct.
The homepage test sorts typed visits from mystery links
People rarely type a deep address by hand. That gives you a rough sorting rule: a typed or bookmarked visit starts on the homepage, and a link can start anywhere.
| Window | No-referrer visits | Started deep | Started on homepage |
|---|---|---|---|
| 7 days | 856 | 798 (93%) | 58 |
| 30 days | 3,035 | 2,802 (92%) | 233 |
Of the 856 no-referrer visits in the 7-day window, 798 started on a page other than the homepage. Over 30 days the pattern held across 6,745 visits, with 3,035 (45%) arriving with no referrer and no tag.
Here is the same traffic counted two ways, which explains most of the argument about Direct:
| What you count | Total | No outside referrer | Share |
|---|---|---|---|
| Pageviews, 7 days | 5,774 | 3,841 | 66.5% |
| Visits, 7 days | 1,628 | 856 | 53% |
Pageview counting makes Direct look enormous because every internal click resets the referrer. Visit counting is closer to the truth.
Timing cannot separate AI visits from the rest
We tried. We matched a direct visit to an AI assistant's read of the same page in the 10 minutes before. That found 1 to 2% more matches than chance, with no peak in the first 2 minutes. Timing cannot tell you which direct visits came from AI. Do not build a report on it.
AI traffic overlaps with Direct, and crawlers are not visitors
AI answers increasingly decide who gets found, and not all of that traffic announces itself. Some of it lands looking direct. The AI search for small business picture is worth understanding before you read your Direct row as brand demand.
A crawler is not a visit. ClaudeBot (Anthropic's training crawler) fetches pages in bulk and sends no traffic. ChatGPT-User (OpenAI's live fetcher) fetches a page because one person asked a question, and that fetch can lead to a referral. A server-side receiver classifies these user agents, and neither of them is a person.
Robots.txt control tokens are a separate thing. Applebot-Extended (a robots.txt control token, not a crawler) has no user-agent and never appears in a log. Disallowing it controls how content Apple already crawled may be used.
What Kymo does with no-referrer visits
Kymo counts sources by visit, not by pageview, so a run of pages inside your site does not inflate the Direct row. It splits no-referrer visits in two: typed or bookmarked, when the visit started on the homepage, and link, no referrer, when it started on any other page. For the second kind it shows which page the visit landed on. That page is a clue to the source, never a name for it.
Every feature is included on both plans, and the plans differ only by event volume. Solo is $9 a month or $90 a year up to 10,000 events a month. Studio is $29 a month or $290 a year up to 100,000 events a month. AI crawler tracking does not count against your event limit, and both plans start with 14 days free, no card required. Exceed the limit and the dashboard pauses. Your data is not deleted.
You can see the shape of it in the Live Kymo demo dashboard with no login, and Reading the AI report explains what each column means. A deep landing with no referrer and a high bounce rate usually means the link promised something the page did not deliver, and Bounce Rate for Small Business Sites: What's Normal covers what normal looks like. If you have ever stared at Unassigned and wondered what it means, Why Is GA4 So Complicated? (And What Small Sites Actually Need) is the longer version.
Publishing an llms.txt file is a cheap bet. Adoption is partial, no major operator documents it as a signal their crawlers follow, and publishing the file is not the same as a crawler fetching it. Only your own server sees which one happened. Kymo's free llms.txt generator and validator builds one in a few minutes. For the wider picture, read LLM SEO: What It Means and How to Start and The Small Business Guide to AEO.
Do the homepage test this week if you're still treating Direct as brand loyalty. Split your no-referrer visits into homepage starts and deep starts, then look at what the deep landings have in common.
Stop guessing. Watch.
Point start tracking it at your own site and you get one dashboard for human visitors and AI crawlers: which pages AI engines read, how many people AI answers send there, and which of those people complete a goal. Tools that ask a chatbot and report a guess cannot show you that. If you want a look first, the free AI visibility check at kymo.in/tools/ai-visibility-checker reads a URL from public signals, needs no account, and the site does not need Kymo installed, with the report arriving by email.
Start free → 14-day free trial. No card required.