Why Half Your Shopify Traffic Shows as '(direct)' — And What Converlay Just Fixed
Open your Converlay Campaigns page and look at the (direct) row. For most Shopify stores, it is the biggest number on the page — often 40%, 60%, sometimes more than 70% of all attributed sessions. It dwarfs paid campaigns, email, and social combined. And if you are like most merchants, you have learned to just ignore it.
You should not have to. "(direct)" is an admission of defeat from your analytics tool — a way of saying "a visitor showed up and we have no idea where they came from." But that is rarely true. Most of those visitors came from somewhere traceable. They just did not arrive through a UTM-tagged link.
With the v2.16.0 release, Converlay now classifies those visitors using referrer data — so organic search, social media, and referring sites appear as what they actually are, not as a mystery "(direct)" bucket.
What Is Actually Hidden in Your (Direct) Traffic
When a visitor lands on your store without a UTM tag, most analytics tools look at their session data and, finding no campaign parameters, file them under (direct)/(none). This sounds reasonable until you realise how much real traffic that category absorbs.
Consider how people actually find Shopify stores:
- Google organic search — Someone searches "blue leather wallet" and clicks your product listing. No UTM tag. Result: (direct).
- Instagram profile link — A potential customer taps the link in your bio and lands on your store. No UTM. Result: (direct).
- Blog or media referral — A review site, an affiliate blog, or a news article links to your store. Unless that link is manually tagged, every click is (direct).
- Reddit or forum thread — Someone recommends your store in a community. Every click lands as (direct).
None of these are mysteries. Every browser sends an HTTP Referer header that identifies where the visitor just was — google.com, instagram.com, someblogsite.com. The information is right there in every event. Most analytics tools just do not use it for traffic that lacks UTM tags.
How Converlay's Referrer Classification Works
Starting with v2.16.0, Converlay reads the referrer hostname for any session that arrived without UTM parameters or ad click IDs. It then assigns a real source/medium pair using a three-way classification:
- organic/search — Traffic from Google, Bing, DuckDuckGo, Yahoo, Baidu, and other major search engines is correctly labelled as organic search rather than direct.
- organic_social/social — Visitors from Instagram, Facebook.com (non-paid), Pinterest, Twitter/X, TikTok.com, YouTube, and LinkedIn are classified as organic social.
- referral — Any other external domain that sent visitors — a blog, a news article, a forum, a review site — is classified as referral traffic.
Traffic that genuinely has no referrer — someone who typed your URL directly, or arrived via a bookmarked link — still shows as (direct). The goal is not to eliminate the (direct) row; it is to make it honest.
Critically, this classification happens at read time, not at storage time. Converlay does not modify the original event data. Instead, it enriches the campaign breakdown query by inspecting the referrer hostname stored on each event and assigning the right source and medium when building the report. That means the improvement applies retroactively to all your existing events — your entire campaign history gets better labels without any re-processing.
What Changes in Your Campaign Dashboard
In your Converlay Campaigns page, you will notice a few concrete changes in how your breakdown looks.
The (direct) row shrinks. For stores with meaningful organic search presence, this can be significant. A store getting 2,000 organic search sessions per month that were all filed as (direct) will see those sessions correctly attributed to google/organic. If those sessions include purchases, that revenue moves from the "(direct)" attribution to "google/organic" — giving your SEO investment the credit it deserves.
New rows appear. You may see channels you did not know were sending traffic: a referring blog, a forum thread, an organic social channel. These were always there; Converlay can now surface them.
Fragmented rows merge correctly. If a single referrer host — say, google.com — was sending traffic from multiple country subdomains, those fragments now merge into a single google/organic row rather than splitting across many tiny sub-rows. The same applies to Facebook traffic arriving from different Facebook domains.
Rows that gained their source/medium through referrer classification display the same Inferred badge as click-ID inferred rows, so you can always tell at a glance which rows came from UTM tags and which were derived by Converlay's attribution engine.
Why This Matters More Than It Looks
Inflated (direct) traffic is not just an aesthetic problem. It actively misleads the decisions merchants make every day.
If your SEO investment is driving 300 organic sessions a month and all of them are showing as (direct), you have no evidence the investment is working. You might cut organic search spend while your best-converting channel quietly performs. Conversely, if you think you have unusually loyal direct customers, you might underinvest in the referral channels actually sending those visitors.
Attribution does not need to be perfect to be useful. But it does need to be honest. A campaign breakdown that silently absorbs organic search and referral traffic into a catch-all "(direct)" category is quietly working against your ability to understand what is growing your store.
The Attribution Priority Order Converlay Uses
Converlay's attribution engine follows a clear priority order when deciding how to label a session:
- UTM parameters win first. If a visitor arrived with a
utm_sourcetag, that is authoritative — it represents intentional tracking by you or your ad platform. - Ad click IDs come next. A
gclid,fbclid,ttclid, or similar parameter gets inferred to the correct ad platform and medium (google/cpc, facebook/paid, tiktok/paid, and so on). - Referrer classification is the third signal. If there is no UTM and no click ID but there is a referrer hostname, Converlay classifies by host — giving organic search, organic social, and referral traffic their proper labels.
- (direct) is the true last resort. Only sessions with no UTM, no click ID, and no referrer — or a self-referral from your own domain — are filed as (direct).
This layered approach means your campaign breakdown now reflects the actual channel mix driving your Shopify store. The (direct) number still exists, but it now means what it says.
Getting the Most From the New Attribution
You do not need to do anything to enable this. Referrer classification is live in your Converlay dashboard automatically. If you have not checked your Campaigns page recently, now is a good moment — the channel mix you see may be meaningfully different from what was there before.
A few things worth checking:
- Look at how much your (direct) row has changed. If it dropped significantly, the difference has redistributed into organic search, organic social, and referral rows — channels that were always driving traffic but never visible as such.
- Find referral sources you did not know about. Referral domains you were not aware of — affiliate sites, media mentions, community forums — can now appear in your breakdown with their actual revenue contribution attached.
- Re-evaluate channels you thought were underperforming. If organic search was invisible inside your (direct) bucket, the real picture of how SEO contributes to revenue is now visible for the first time.
If you see a channel appear in your breakdown that surprises you — a blog or a forum sending meaningful traffic you were not tracking — that is referrer classification doing exactly what it should. Converlay surfaces the sources that were always there. Now you can see them, and act on them.