Direct traffic explained, and what dark social hides
Direct traffic means visits that arrived with no referrer and no campaign tag, and it is not the same as people typing your address. A large share of it is dark social: links shared in chats, emails, notes and apps that hide where the click came from. Splitting Direct into parts makes it readable.
Fig.“Direct” mixes typed visits with shared links nobody tagged. Sample data, not a real site.
What "Direct" really means
Analytics tools assign a source from signals sent by the browser: the referrer header, UTM tags, or an ad click id. When none of those exist, the visit is filed as Direct. That is a statement about missing information, not about intent.
A true direct visit is someone typing your address, using a bookmark, or returning on their own. But many other visits end up in the same bucket:
- A link pasted into a private message or group chat.
- A link in an email app that strips the referrer.
- A link opened from a notes app or document.
- A link inside an app whose in-app browser passes nothing.
- Visits from a secure page to a non-secure one, in some setups.
The first four are the reason the term "dark social" exists. Sharing is happening, but it can't be seen.
Why it matters for decisions
If 40 percent of your traffic is Direct, you are blind on 40 percent of your story. Worse, if buyers often come back by typing your name after reading about you elsewhere, a last-touch view will hand sales to Direct and hide what earned the interest. See first touch vs last touch for how that plays out.
How Ownlytics splits Direct
Ownlytics doesn't leave Direct as one lump. According to the sources and attribution docs, it separates it into buckets:
| Bucket | Meaning |
|---|---|
| Direct, typed or bookmark | Returning visitors, or new desktop visitors who landed on your home page |
| Direct, shared link | New visitors on a deep page, or on a phone, with no referrer: a link from a chat, email, notes or an app that hides its origin |
| Checkout return | Buyers coming back from the payment page |
The logic is simple and easy to check. Someone who arrives fresh on a deep article page didn't type that long address. They followed a link someone gave them. That is shared-link traffic, and it's a signal that people are passing your pages around.
The checkout return bucket is a different issue: it is never credited for a sale when the buyer had an earlier visit, so the payment step can't steal credit from the visit that brought them in.
Ownlytics also recognizes in-app browsers from Instagram, Facebook, TikTok, LinkedIn, Threads, Snapchat, Pinterest, Reddit, Telegram, Discord, Slack, WeChat and the Google app, and credits the app instead of Direct. One caveat from the docs: the X app on iPhone can't be told apart from Safari, so add ?ref=x to links you post there.
Example (made-up numbers for illustration)
Imagine 1,000 visits last month, all filed as Direct in a basic tool. A split view might show:
| Part of "Direct" | Visits | What it suggests |
|---|---|---|
| Typed or bookmark | 280 | Returning readers, brand recall |
| Shared link | 520 | Your pages are circulating in chats and email |
| Checkout return | 200 | Buyers returning from payment, mostly not new traffic |
The headline "1,000 Direct visits" becomes three different stories. More than half is shared links, which says you should look at which pages are being shared and whether you could make them easier to share. These numbers are invented, but the exercise is real: ask what each slice implies.
- Read “Setup guide”x.comNov 1 · 3 min on page
- Came back from a newsletternewsletterNov 6 · read pricing
- Opened checkoutNov 12 · 14:02
- Paid $49Dodo PaymentsCredited to the newsletter visit (last non-direct)
Fig.A buyer who looked direct on the last visit. Sample data, not a real site.
Five ways to shrink Direct
- Tag links you place.
utm_sourceand?ref=win over the referrer, so a tagged link is never Direct. Our UTM guide has naming rules. - Name each post as a campaign. A named campaign shows up with its own visits and sales even when the referrer is hidden.
- Use link shortener pages you control for chats and bios, so the tag survives.
- Check redirects. A redirect that drops query strings turns tagged traffic into Direct.
- Use a first-party proxy if blockers remove your tracking script; see ad blockers and proxy.
A quick diagnostic
- Open your sources report for the last 30 days.
- Note the Direct share of visits and of revenue.
- Split Direct into typed, shared link and checkout return, if your tool can.
- Check landing pages for the shared-link slice. Deep pages with strong Direct traffic are being passed around.
- Tag one outbound channel properly for two weeks and see whether Direct falls.
What you can't fix
Some Direct traffic will stay unexplained. Private messaging apps are private by design, and nothing in analytics can read a conversation. Treat the shared-link bucket as a measure of word of mouth, not as a failure of tracking. Also, a split is a reasoned guess about an unlabelled visit, not a record of what happened. A new desktop visitor landing on your home page might have typed your address, or clicked a link that hid its origin.
If you're asking whether Direct buyers are real buyers: yes, they are. The question is only which earlier touch deserves credit. Reading path to purchase shows how often the source that found a customer differs from the one credited with the sale.
Direct is where analytics files visits it can't explain. Split it before you decide what it means.
One more look
If you'd like to see how a split Direct view reads next to sales, the live demo has a sample site you can click through.
FAQ
Is high direct traffic good?
Not automatically. It can mean strong brand recall, or it can mean untagged links and hidden referrers. Split it before judging.
What is dark social?
It is sharing that analytics can't see: messages, group chats, emails and apps that don't pass a referrer. The traffic arrives, but its origin is hidden.
Can I eliminate Direct traffic?
No. Some traffic is genuinely direct, and some origins can't be recovered. You can only shrink the unexplained part with tags and better setup.
Does Direct traffic ever get credit for a sale?
It can, if the model credits the last visit. The default last non-direct model credits the most recent visit with a real source instead.