Clicktag traffic sources
Website traffic sources: see where every visitor comes from
Clicktag is a free web analytics tool that shows where every visit comes from across search engines, referrals, UTM tags and AI assistants. You get one 4 KB script, up to 50 goals per site and 50 websites per account, with no credit card and no cookies.
Website traffic sources tell you how people found your site before loading a page. Analytics tools work this out from two places in the browser: URL query parameters such as utm_source, source, or ref, and the HTTP Referer header sent when someone clicks a link on another domain. Clicktag reads both on every pageview, strips out clicks between your own pages, and groups the results into a single report so you can see which channels bring visitors and which ones convert.
The main types of website traffic sources
Most visits fall into seven buckets based on the query string or the referring hostname:
- Search: Visitors clicking through from search engines such as Google, Bing, or DuckDuckGo. You can pair referrer data with Search Console analytics to see which Google queries earn clicks.
- Social: Clicks from social networks, communities, and forums where someone shared your URL.
- Referral traffic: Links on other websites, blogs, directories, documentation pages, or news articles that point to your domain.
- Email: Readers clicking links in newsletters or transactional emails. When tagged or opened in webmail, these show the email provider or campaign source.
- AI assistants: People clicking citations and links inside AI tools like ChatGPT, Perplexity, Claude, Gemini, and Copilot.
- Campaigns: Links you control where you attach UTM parameters (
utm_source,utm_medium,utm_campaign) or a shortreftag to track a specific newsletter, ad, or launch post. - Direct: Visits that arrive without a referrer header and without any source parameter in the URL.
| Source type | How Clicktag records it | Example in reports |
|---|---|---|
| Campaign or tagged link | Reads utm_source first, then source or ref query parameters |
newsletter, partner-blog |
| Search engine | Matches the referring hostname and groups Google search domains | google.com |
| AI assistant | Reads utm_source=chatgpt.com or the AI tool's referring host |
chatgpt.com, gemini.google.com |
| Reads your UTM tag, webmail referrer, or the Gmail Android app | mail.google.com |
|
| Referral or social | Uses the referring website's hostname or Android package name | github.com, news.ycombinator.com |
| Direct | No UTM tag, no source or ref parameter, and no referring host |
Direct / none |
How Clicktag decides a visit's source
When a page loads, a visitor might have both a referring domain from the site they just left and a query parameter in the address bar. Clicktag resolves the source using a strict priority order so tagged links are never overwritten by the browser's referrer header:
- Stored or query
utm_source: If the URL carriesutm_source, that value wins. For example, ChatGPT automatically appendsutm_source=chatgpt.comto links it displays, so those visits show aschatgpt.comeven if the browser strips the referrer. - Short query parameters (
sourceorref): If there is noutm_source, Clicktag checks for?source=or?ref=in the URL. - Referring hostname: When no source parameters are present, Clicktag uses the hostname from the browser's
Refererheader. - Direct / none: If the request has no source query parameters and no referrer header, Clicktag records the visit under Direct / none.
Clicktag evaluates
utm_sourcefirst, thensourceorref, and finally the referring domain, so your tagged links always override a generic browser referrer.
Grouping rules that keep reports clean
Raw referrer logs are messy because search engines run dozens of regional domains and mobile apps often identify themselves by package name instead of a web URL. Clicktag normalizes these before they hit your dashboard:
- Same-site navigation is excluded: Clicks from one page of your site to another, including jumps between your apex domain and its
wwwsubdomain, are left out of the sources report rather than relabeled as direct or self-referrals. - Google search unification: Regional Google search domains, the Android Google app, and Google AI Overviews all group under
google.com. Other Google products stay separate, so traffic from Google's AI chat shows up asgemini.google.com. - Gmail and Android apps: Traffic from Gmail's Android app is grouped under
mail.google.com. Other Android apps that pass an app referrer appear by their package name. - Bots are excluded: Automated hits are left out of visits and pageviews so scraper traffic does not inflate your referrer list. To see AI and search crawlers, including the ones that never run JavaScript, connect Cloudflare on the Crawlers tab.
Reading the sources report and combining it with goals
In the Clicktag dashboard (which you can explore with synthetic sample data on the demo), the sources breakdown lists each referrer along with its pageviews and distinct daily visitors. You also get separate report dimensions for utm_source, utm_medium, and utm_campaign.
You can stack up to 12 filters at once on your reports. Filter by a source such as chatgpt.com or google.com and the rest of the dashboard narrows to those visits, so you can see which pages they land on, which countries and devices they use, and their median time on page (calculated across pageviews lasting 5 seconds or more).
To see whether a traffic source actually brings customers, set up goal tracking. Clicktag lets you define up to 50 goals per site, including multi-step funnels of 2 to 6 steps completed on the same UTC day. A goal can be a specific pageview (like /welcome) or a custom event triggered with window.tt_event().
Once you add a goal, you can break its converted visitors down by referrer. Because Clicktag computes goals from the data you already collected, a new goal covers your past traffic sources too.
Querying traffic sources through the Stats API
If you build internal dashboards or automated reports, you can pull your referrer and UTM breakdowns over HTTPS as JSON for any date range up to 400 days. Public sites work without an API key; private sites accept a management key (tt_mk_) with the read scope.
curl --fail-with-body --silent --show-error --max-time 20 \
'https://clicktag.io/api/sites/demo.bitgate.dev/breakdown?dim=referrers&limit=10'
You can also pass sort=rising to rank sources by growth beyond normal noise compared to the previous period, or spark=1 to get hourly or daily trend buckets for every referrer row.
FAQ
Why do some visits show up as Direct / none?
A visit is labeled Direct / none when the browser sends no HTTP Referer header and the URL contains no utm_source, source, or ref query parameter. This usually happens when someone types your URL into the address bar, uses a bookmark, clicks a link in a desktop app or PDF, or arrives from an AI app or messaging client that hides referrer data.
Does Clicktag track utm_term and utm_content?
Clicktag stores them, but they are not report dimensions: breakdowns and filters cover utm_source, utm_medium, and utm_campaign only.
How does Clicktag count visitors per source without cookies?
Clicktag sets no cookies, uses no local storage, and never stores IP addresses. It counts visitors using a daily salted SHA-256 hash and deletes the salt once each UTC day ends, which means someone visiting from a source on Tuesday and again on Wednesday counts as one visitor on each day.
Do clicks from Google AI Overviews get their own traffic source?
No. Clicks from AI Overviews come from Google search domains, and Clicktag groups all of those under google.com. Visits from Google's standalone Gemini web app stay separate under gemini.google.com.
Does Clicktag track outbound link clicks to other websites automatically?
No, latest.js does not record outbound clicks, file downloads, or form submissions on its own. To track clicks leaving your site, call window.tt_event(name, metadata, callback) on the link click and put the destination you want to compare into the event name, since event metadata cannot be grouped or filtered in reports.
Updated October 30, 2026