Aplon
← Blog

Direct Is Not A Traffic Source. It's Where Your Analytics Gave Up.

AttributionThe Aplon team6 min read

Nobody types your URL. Direct is the bin for visits your analytics could not identify, and a growing share of it now comes from AI chat.

Open your analytics. Find the Direct row.

Whatever percentage is sitting there, almost none of it is what the word means.

Direct is supposed to mean somebody typed your address into a browser or used a bookmark. Ask yourself honestly how often you have typed a full store URL from memory in the last year. Now look at the number claiming that a tenth of your customers did.

Direct is not a channel. It is the bin your analytics puts a visit in when it could not work out where the visit came from. Every one of those orders came from somewhere. You are just not being told where, and the label makes it sound like a finding instead of a failure.

How a visit loses its name

When you click a link, your browser usually tells the destination which page you came from. That is the referrer. Everything your analytics knows about channels rests on it, plus whatever tags are stuck on the URL.

Here is what strips it.

In-app browsers. Instagram, TikTok, Facebook and the rest open links inside their own app. That built-in browser frequently passes nothing useful. Your customer came from Instagram; your report says Direct.

Email. A link clicked in a desktop mail app has no web page to have come from. Unless your email tool tagged the link, that customer arrives anonymous. This is why email is chronically undervalued in ecommerce reporting — a big slice of its results are filed under Direct and credited to nothing.

Messaging. WhatsApp, iMessage, Messenger, a link pasted into a group chat. Word of mouth is the most valuable traffic you will ever get and it is almost entirely invisible.

Redirects and shorteners. Every hop is a chance for the referrer to be dropped. A link shortener into a redirect into your store often arrives naked.

QR codes, packaging, podcasts, anything offline. No referrer exists to send. If you did not put a tagged URL on it, it lands in Direct.

AI chat. This is the new one, and it is growing.

The part that is actually new

People now ask an assistant what to buy, and the assistant links them straight to a product page.

Those visits are a mess to classify. Some send no referrer. Some send one your analytics has never heard of and does not have a rule for. Either way they land in Direct, and unlike the other causes on this list, this one is getting bigger every month.

Two changes usually recover a meaningful slice of it. Write rules that recognise AI assistants as a named source in their own right, rather than letting them fall through as unknown. Then go back through click IDs you have stored but never matched, and give those visits their real origin.

Neither is dramatic on its own. What matters is the direction: a share of "no idea where this came from" turns into a named source, and a chunk of it will be traffic that did not meaningfully exist two years ago and is still missing from most analytics tools' rules today.

Five ways a visit reaches you with its name stripped off — and why each one lands in Direct.
Five ways a visit reaches you with its name stripped off — and why each one lands in Direct.

If you are not separating AI-assistant traffic yet, it is not that it is zero. It is that it is inside your Direct number wearing a disguise.

The bug nobody looks for: your tool is misfiling on purpose

Two mistakes in how referrers get matched are extremely common, and both are silent.

Matching by substring. The lazy way to check whether a visit came from your own site is to ask whether the referrer contains your domain. yourstore.com is inside yourstore.com. It is also inside notyourstore.com, yourstore.com.reviews-site.net, and anything else somebody registers. A competitor or an affiliate on a lookalike domain gets counted as your own internal traffic and disappears from your reports entirely.

The fix is to match on the domain boundary, not on whether the text appears somewhere.

Comparing against the wrong domain. Your Shopify store has a myshopify address and a real one. If your analytics only knows one of them, traffic bouncing through the other reads as external when it is internal, or the reverse. Both of your addresses need to be on the list.

Both are the sort of thing that never errors and never gets reported, because a misfiled visit looks exactly like a correctly filed one. Neither will ever appear as a problem — it will only ever appear as a channel that seems to be underperforming.

Shrink your Direct number this month

You will never get it to zero, and you should not try. Some people really do bookmark.

But most of it is recoverable, and the work is boring rather than hard.

  1. Tag every link you control. Email, your own social posts, your newsletter, your packaging insert, the link in your bio. If you put the link somewhere, put a tag on it. This alone usually takes the biggest bite.
  2. Give every offline thing its own URL. A QR code on an insert should point at a tagged address. Now your printed material has a measurable result, probably for the first time.
  3. Check your own-domain matching. Confirm both your addresses are recognised, and that the check is on the whole domain rather than a substring.
  4. Add rules for AI assistants, or pick a tool that has them. This is the fastest-growing slice of your unknown traffic.
  5. Look at what is left. Whatever survives all four is closer to genuine direct — repeat customers and people who actually remember you. That is a number worth watching, and it means something. The one you have today does not.

Why bother

Because you are making budget decisions with this.

Every visit that lands in Direct is credit taken away from whatever actually earned it. Your email looks weaker than it is. Word of mouth looks like it barely exists. Your organic social looks like it does nothing, so you stop posting.

Meanwhile paid ads look comparatively strong, because paid traffic arrives with a tag attached and almost never loses its name.

That is the quiet bias in nearly every ecommerce report: the channels you pay for are the best at identifying themselves. So the free ones lose the argument, month after month, and the budget follows.

Fixing Direct is not a reporting nicety. It is finding out which of your free channels has been carrying you.


Aplon classifies traffic on the full domain, recognises AI-assistant referrals as their own channel, and shows you what is really left in Direct. [See your channel mix](/).


Aplon turns your Shopify store into profit analytics. See how it works.

Direct Is Not A Traffic Source. It's Where Your Analytics Gave Up. · Aplon