In short
Because direct is not a channel, it is what a session is called when no source could be recorded. Typed addresses and bookmarks are a small part of it. The rest comes from untagged links, redirects that strip parameters, clicks from apps and messaging, links in email clients, checkout journeys crossing domains, and sessions where consent or a blocker prevented the original source from being stored. Most stores can move a meaningful share of it into real channels with tagging and configuration work.
Direct is a fallback, so anything unattributed lands there
When a session begins, the analytics tag looks for a campaign parameter, then a referrer, then a previously stored source. If none of those is available, the session has to be called something, and direct is the label.
That means direct grows whenever something interferes with those three lookups. A link with no parameters and no referrer, a redirect that discards the query string, an app that opens a browser without passing referrer information, or a returning visitor whose stored source has expired all end up in the same bucket.
So a high direct share is usually not a report about people typing your address. It is a report about how much of your marketing is arriving unlabelled.
Unassigned is a related but separate label, appearing when a source exists but does not map to any channel grouping rule, and it usually points at a campaign parameter with an unexpected medium value rather than at a missing one.
The causes, roughly in order of size
Untagged links come first. Email links without campaign parameters, links in social profiles, links in printed material, QR codes, affiliate links, partner sites and links in your own app: each of these produces a session with no source unless somebody added parameters.
Redirects come second. Link shorteners, vanity domains, and server redirects that drop the query string all remove the parameters before the tag ever sees them. Testing a shortened link end to end usually reveals this immediately.
Apps and messaging come third. Clicks from within messaging apps, mobile applications and some email clients arrive with no referrer at all, and the traffic is genuine and unlabelled. This is what people mean by dark social.
Domain problems come fourth. If your checkout or any part of the journey sits on a different domain without cross-domain measurement configured, the return to your main site looks like a new session from a referrer, or from nowhere. Payment providers and third-party checkouts are the usual case.
Consent and storage come fifth. A visitor who declines storage may not have their original source retained across sessions, so a later visit that would have been credited to search arrives as direct.
How to reduce it
Tag everything you control. Agree one convention for campaign parameters and apply it to email, social profiles, partner links, affiliate links, QR codes, print campaigns and any link in your own app. Keep a single sheet of the convention so five people do not invent five spellings of the same source.
Check your redirects. Follow every shortened link and vanity URL to its destination with the parameters attached, and fix the redirect rules that strip query strings.
Configure cross-domain measurement for any domain in the purchase journey, and add payment providers and any third-party checkout to the referral exclusion list so a return from them does not start a new session.
Audit your own internal links for stray campaign parameters. A parameter accidentally left on an internal link restarts the session with a new source, which both inflates direct and corrupts the channel it names.
Then re-measure after a month. Most stores see a meaningful part of direct move into email, social and referral once the tagging is consistent.
What to do with what remains
Some direct traffic is real and valuable. Returning customers who know your address, people arriving from a bookmark, and word-of-mouth visits are all genuine, and they tend to convert well because the person already knows you.
Read it as a brand signal rather than as a channel to optimise. Direct sessions rising in step with advertising that creates awareness is one of the few visible traces of that advertising working, and it is worth tracking alongside branded search volume.
Do not attempt to fix it by reassigning direct traffic to whichever channel you favour. That converts an honest gap into a flattering fiction, and it will disagree with every other system you have.
Instead, use it as a quality check on measurement. A direct share that jumps after a website change, a new consent tool or a new app usually means something broke, and treating a sudden movement in direct as an alert catches problems that would otherwise be discovered a month later.
Where one store's direct traffic actually came from
- Untagged email and profile links
- Moved to email and social after tagging
- Shortened links stripping parameters
- Fixed in the redirect rules
- Checkout on a separate domain
- Fixed with cross-domain measurement
- Payment provider return
- Fixed with a referral exclusion
- Messaging app clicks
- Genuinely unattributable
- Bookmarks and typed visits
- Genuinely direct, and valuable
An illustrative breakdown. The first four rows are recoverable with configuration, and the last two are the honest remainder that no setup will label.
Related questions
Is high direct traffic a sign of strong brand?
Sometimes, and it is more often a sign of untagged links. Check the recoverable causes first, then look at whether the remaining direct traffic rises alongside branded search volume. If both move together after awareness advertising, that is a brand signal worth tracking.
What is the difference between direct and unassigned?
Direct means no source could be determined. Unassigned means a source exists but does not match any channel grouping rule, which usually points at a campaign parameter using an unexpected medium value. The fix for unassigned is a naming convention, not more tagging.
Should I exclude my payment provider as a referrer?
Yes, along with any third-party domain in the purchase journey. Without the exclusion, a return from that domain starts a new session credited to it, which both inflates that referral and strips the original source from the order.