Clicktag direct traffic guide
Direct traffic: what it really is and how to shrink it
Clicktag is a free web analytics tool that separates real referrals, UTM tags and AI sources from Direct / none traffic. Install one 4 KB script with no credit card and no cookies to track up to 50 websites and filter reports with up to 12 filters at once.
Direct traffic is the bucket where analytics tools put every visit that arrives without an HTTP referrer and without query tags like utm_source. It includes people who type your URL into the address bar or click a bookmark, plus dark traffic from mobile apps, desktop email clients, PDFs and some AI tools that strip referrer data.
How Google Analytics 4 defines Direct traffic
In Google Analytics 4's channel rules, a session falls into the Direct channel when the source exactly matches (direct) and the medium is either (not set) or (none). Google's documentation states that these users arrive via a saved link or by entering your URL.
In practice, (direct) / (none) is a fallback for missing data. When a browser or app opens your page without sending a Referer header and the link has no tracking parameters, GA4 has nothing to read.
Here is what actually lands in that bucket:
- Typed URLs and browser autocomplete: Someone types your domain or picks it from their address bar history.
- Bookmarks: Clicks from bookmarks bars, speed dials, or reading lists.
- Links in documents: Clicks inside a PDF, Word doc, or spreadsheet.
- Apps that send no referrer: Desktop email clients, messaging apps, and mobile apps that open links in a blank browser context.
- AI app visits without tags: While GA4 added an AI Assistant channel in a May 13, 2026 release note for sources like ChatGPT, Gemini, Deepseek, Copilot, or Grok, native AI apps that pass neither a referrer nor a UTM parameter still drop into Direct.
How Clicktag labels and groups Direct / none
Clicktag shows visits with no referrer and no tracking parameters as Direct / none in your traffic sources report. To keep that bucket as small and accurate as possible, Clicktag checks several signals in a fixed order before giving up and labeling a visit Direct / none.
- Query parameters first: Clicktag checks
utm_sourcefirst, then the shortersourceorrefquery parameter. If you shareexample.com/?ref=newsletter, Clicktag creditsnewsletterinstead ofDirect / none. - Referring host second: If there is no tag in the URL, Clicktag reads the referring hostname.
- Same-site navigation excluded: Moving from one page on your site to another (including between your apex domain and
www) is excluded from source attribution. It is never relabeled as Direct. - Android app referrers: When an Android app passes an
android-app://referrer, Clicktag reads it. Traffic from Gmail's Android app is grouped undermail.google.com, and other Android apps appear by their package name. - Search and AI grouping: Google search country domains and the Android Google app are grouped under
google.com(so clicks from Google AI Overviews count asgoogle.com), whilegemini.google.comstays separate. ChatGPT, Perplexity, Claude, and Copilot also show as their own sources when they pass a referrer or tag.
Direct traffic is a leftover bucket: every visit that arrives with no referrer and no tags on the link lands there.
Common causes of dark traffic and how to fix them
You can't stop someone from typing your URL, and you don't want to. The goal is to shrink the dark traffic portion of Direct / none where you control the link.
| Cause | Example | How to fix it |
|---|---|---|
| Untracked email links | A subscriber clicks a link in a desktop mail client or webmail that strips referrers | Add ?utm_source=newsletter&utm_medium=email to every link in your email template |
| PDFs and slide decks | A reader clicks a link inside a downloaded PDF guide | Put ?utm_source=pdf&utm_campaign=guide-name on all URLs before exporting the file |
| Social bio and QR codes | Someone scans a booth banner QR code or taps a link in a mobile profile | Point the QR code or bio link to a URL with ?ref=qr-booth or ?utm_source=bio |
| Redirects that drop queries | yoursite.com/pricing redirects to www.yoursite.com/pricing and drops ?utm_source=... |
Configure your server or CDN redirect rules to preserve query strings on 301 and 302 hops |
| Client-side script injection | Your tag manager loads late or strips parameters before the analytics script runs | Put Clicktag's 4 KB latest.js script directly in your server HTML <head> |
| Native AI app clicks | A user taps a link inside an AI mobile app that sends no referrer and no UTM | Track utm_source=chatgpt.com where added automatically, and tag any links you feed to custom bots |
How to shrink Direct traffic on your site
Start with the links you publish outside your website. Every link in an email campaign, a social profile, a PDF, or a QR code should carry UTM parameters or a short ?ref= tag. Because Clicktag reads utm_source, source, and ref before checking the browser referrer, a tagged link stays out of Direct / none as long as its query string survives, even when opened from an app that strips referrers.
Next, test your redirects. Open a browser tab and visit your site using a test parameter, such as https://yoursite.com/?utm_source=test. Try both the http:// version and the non-canonical www or apex version. If the address bar finishes loading without ?utm_source=test at the end, your server redirect is stripping query strings before the analytics script can read them.
Finally, separate real visitors from bots. Automated crawlers often send no referrer, so an analytics tool that counts bots will inflate your Direct numbers. Clicktag excludes detected bots from visits and pageviews automatically, and if your site is proxied through Cloudflare, the Crawlers tab shows AI crawler hits from GPTBot, ClaudeBot, PerplexityBot and Googlebot separately from human traffic.
Filtering Direct / none in Clicktag and the Stats API
When you see a spike in Direct / none, breaking it down by landing page, country, or device usually tells you where it came from. A sudden rise in Direct hits to a single deep blog post on mobile devices often points to a share in a messaging app, while Direct traffic to / on desktop is usually people typing your domain or using a bookmark.
In the Clicktag dashboard, filter by Direct / none to narrow the overview, breakdowns and goals to those visits. You can stack up to 12 filters at once.
You can run the same query through the Stats API. This curl request fetches the top 10 pages visited by Direct / none traffic from the Netherlands on the demo site:
curl --fail-with-body --silent --show-error --max-time 20 --get \
'https://clicktag.io/api/sites/demo.bitgate.dev/breakdown' \
--data-urlencode 'dim=pages' \
--data-urlencode 'limit=10' \
--data-urlencode 'f=country:NL' \
--data-urlencode 'f=referrer:Direct / none'
The API returns a JSON list of page paths with their value (pageviews) and visitors (distinct daily visitor hashes) for that exact segment, covering any date range up to 400 days.
FAQ
Does clicking between pages on my own site count as Direct traffic?
No. Clicktag excludes same-site navigation, including movement between your root domain and its www subdomain, so internal clicks are never relabeled as Direct / none.
How does Clicktag count visitors in Direct / none without cookies?
Clicktag sets no cookies and uses no local storage. Visitors are counted with a daily salted SHA-256 hash, and the salt is deleted once each UTC day ends, so the hash cannot link visits across days. IP addresses are never stored.
Why do some ChatGPT visits show as chatgpt.com and others as Direct / none?
ChatGPT adds utm_source=chatgpt.com to links it displays, and Clicktag reads utm_source first, so those clicks appear under chatgpt.com. If a visitor copies a plain URL from an AI answer or taps a link in an AI app that sends neither a referrer nor a UTM parameter, the visit lands in Direct / none.
Which UTM parameters does Clicktag support in reports?
Clicktag reports on utm_source, utm_medium, and utm_campaign, and also checks source and ref when assigning the main traffic source. utm_term and utm_content are not report or API breakdown dimensions.
Can Clicktag import my old Google Analytics Direct traffic?
No, Clicktag does not support Google Analytics imports or CSV uploads, though you can import historical data from Simple Analytics. You can connect Google Search Console to backfill up to 16 months of search clicks and queries alongside your new Clicktag data.
Updated October 30, 2026