How do I reduce direct traffic in GA4?
Reduce direct traffic in GA4 by giving visits a source it can read. Put UTM tags on every link you send, keep them through redirects, tag your ad clicks and filter out your team. What stays in Direct is mostly typed and bookmarked visits, and those you keep.
By Joris van Huët, Founder & CEOUpdated 7 min read
Run the numbers for your store: the free UTM coverage calculator.
You usually reduce direct traffic in GA4 by giving more visits a source it can read. Tag every link you send with UTM parameters and make sure redirects keep the tags. Tag your ad clicks too, and filter out your team's visits. What remains is mostly people who typed or bookmarked your address, and those you keep.
What one store's data shows
The usual answer is a tidy checklist: tag your links, fix your redirects, filter out your office. It is right, as far as it goes. One store's export shows where on the buyer's journey that checklist has to land.
One store's anonymised GA4 export, 1 January 2024 to 21 August 2026. It holds shares of revenue only: no ad spend, no order counts.
| What the export shows | Share of revenue | Source cell |
|---|---|---|
| Direct, in last click, first click and touched views | 57.7% | Channels sheet, Direct row |
| Journeys with 1 touch (0.5 days to buy) | 79.5% | Journeys sheet, 1 touch row |
| Journeys with 2 or more touches, the three longer rows added | 20.6% | Journeys sheet, 2 to 3, 4 to 9 and 10+ touches rows |
On the Channels sheet, Direct holds 57.7% of revenue under first click as well as last click. So in this one store, Direct does not just close journeys that other channels opened. As GA4 recorded them, more than half of the revenue began with a visit that carried no source.
The second row shows why that first visit carries so much weight. On the Journeys sheet, journeys with 1 touch hold 79.5% of revenue, with 0.5 days to buy. For most of this store's revenue, the first visit GA4 saw was also the last one.
Put the two rows together and the job gets specific. On a one-touch journey, GA4 has no earlier campaign to fall back on. The label on that single visit is the whole record. If the visit came through an untagged link, the sale is filed under Direct, and a tag added next month cannot reach back to it.
The last row holds the other fifth, from journeys of two or more touches. On the Journeys sheet they add up to 20.6% of revenue (12.2% + 5.4% + 3.0%). There, the first tag does double duty. GA4 gives a session that starts with a direct entrance the user's earlier campaign values, and the key event lookback window applies to that too. A buyer who first clicked a tagged link and later typed your address can keep the tagged source, if GA4 still recognises them.
So on both kinds of journey, the first visit's label does most of the work. One-touch buyers leave nothing else, and later typed visits can inherit it.
What the export cannot show is how much of the 57.7% was fixable. A typed address, a tip from a friend and an untagged email click all arrive as one visit with no source. Only your own landing pages can start to tell them apart.
Why can shrinking Direct mislead you?
Because it sounds like growth work, and it is filing work. A tag moves a visit from one row to another. A filter removes your own team's visits. Neither adds a single sale, and total revenue stays exactly where it was.
Google frames Direct the same way. Its help on (direct) / (none) traffic is about crediting sources accurately, not about making the row small. It asks you to make sure your tags are still intact when visitors arrive.
Three traps sit inside the checklist.
- Some fixes trade Direct for a worse row. A tag whose medium matches none of GA4's channel rules lands in Unassigned. The visit has left Direct and still has no channel.
- Some of Direct is the good stuff. GA4 defines Direct as arriving through a saved link or by entering your URL. Loyal regulars and word of mouth often arrive exactly that way. Pushing the row toward zero on paper does not make them any less real.
- Filters are a one-way door. Google's help says data filters do not affect historical data, and that once applied, the effect is permanent. Excluded data is never processed, so an IP range typed wrong can throw away real buyers' visits.
Some visits cannot be traced however tidy your tags are. Ad blockers can interfere with the cookies GA4 uses to work out where a visit came from. Shopify's help, explaining its own reports, adds referrer data blocked by a proxy or firewall. Those visits stay sourceless, and that is fine.
If you want the longer list of causes first, read why direct traffic runs high.
What can a smaller Direct number not tell you?
It cannot tell you that marketing improved. If Direct falls because your newsletter finally carries tags, the same readers clicked. GA4 can now say which email brought them, and that is all that changed.
It cannot tell you that the newly named channel caused the sale. A tagged click shows the last door a buyer used, not why they walked through it.
It cannot tell a cleaner report from a weaker brand. Fewer people typing your address also shrinks Direct, which is bad news dressed up as tidiness. Read Direct next to total revenue every month, never on its own.
And it cannot tell you what your ads add to the typed visits that remain. That needs a holdout: switch one channel off in a set of regions and see whether Direct and total sales drop there.
What to do this week
- Find the direct landings nobody types. In GA4, open Reports > Engagement > Landing page and add Session source / medium as a secondary dimension, a pairing Google's help suggests. Pass: rows marked (direct) / (none) start mostly on your home page. Fail: they start on deep product, offer or order pages, which usually means links that lost their tags.
- Tag the links that start journeys. Give affiliate, creator, press, bio and QR code links their own utm_source, utm_medium and utm_campaign, since a first click is often the only one. Pass: a week later they show under their own source in Reports > Acquisition > Traffic acquisition. Fail: they sit in Unassigned, so the medium matches no channel rule, and a value GA4 knows, such as affiliate, fixes it.
- Check that your fixed links did not land in Unassigned. In Reports > Acquisition > Traffic acquisition, find the Unassigned row, then add Session source / medium as a secondary dimension. Pass: there is no Unassigned row, or only values you can explain. Fail: your new tags sit there, so switch their medium to one GA4's rules know, such as email or affiliate.
Check the homework. Your GA4 Attribution paths export already holds the evidence. Causality Engine reads that one file and shows what each channel caused next to what last-click gave it, in 1 to 2 minutes, for €99 once (excluding VAT), refundable within 30 days. Check the homework
Sources, 1 October 2026: Understand (direct) / (none) traffic (Google); Default channel group (Google); Scopes of traffic-source dimensions (Google); Select attribution settings (Google); Data filters (Google); Landing page report (Google); Marketing reports (Shopify).
Related answers
Frequently asked questions
Should I try to get direct traffic down to zero?
No. GA4 defines Direct as visits through a saved link or a typed address, and many come from people who already know you. Aim to shrink the part that comes from untagged links and your own team, then watch what is left from month to month.Will reducing direct traffic increase my sales?
No. Tags and filters change which row a visit lands in, not how many people buy, so total revenue stays the same. What improves is your view of which channels brought the buyers, which is what you need before you move budget.Why is some direct traffic impossible to fix?
Because some visits arrive with no source to recover. Typed addresses and bookmarks never had one. Ad blockers can interfere with the cookies GA4 uses to find a visit's origin. Shopify's help also names referrer data blocked by a proxy or firewall.
Go deeper: Causal attribution, explained.
Sixty-second versions of these ideas: Causality Engine on YouTube Shorts.
Keep reading
Terms in this article
- AttributionAttribution identifies user actions that contribute to a desired outcome and assigns value to each. It reveals which marketing touchpoints drive conversions.
- Direct TrafficDirect Traffic refers to website visitors who arrive by typing the URL directly into their browser or through bookmarks. They do not come from search engines or referrals.
- IncrementalityIncrementality measures the true causal impact of a marketing campaign. It quantifies the additional conversions or revenue directly from that activity.
- Incrementality TestingIncrementality Testing measures the additional impact of a marketing campaign. It compares exposed and control groups to determine causal effect.
- Landing PageLanding Page: A single web page that appears after clicking a search result, marketing promotion, email, or online advertisement.
- NewsletterNewsletter is a regularly distributed email publication containing news, updates, and promotional content for subscribers.
- UTM ParametersUTM Parameters are URL tags marketers use to track campaign effectiveness across traffic sources. They provide data for accurate campaign tracking and attribution in analytics platforms.
- Word of MouthWord of Mouth is the passing of information from person to person through oral communication. It is one of the most trusted forms of marketing.