Why privacy-first analytics reports your social traffic as direct

You switched analytics tools a few weeks ago. Total pageviews look roughly the same. But the referral column that used to name social sources has flattened, and direct has swollen by close to whatever social used to hold. The instinct is that the new tool is undercounting. The likelier reading is that every one of those visits still arrived and still got counted, and only the label changed, because the information needed to build that label stopped showing up at the door.

What “direct” actually counts

Direct is not a category of visitor. It is a residue. A tool assigns a visit to direct when the browser sent no Referer header at all, or sent one the tool could not resolve to a known source. That is a bucket for unrecognised origin, not a bucket for “this person had no origin”. Someone who typed your URL, someone who clicked a bookmark, and someone who tapped a link inside an app that dropped the header all land in the same row, and the dashboard cannot tell them apart.

The distinction matters most in the fortnight after a migration. If total traffic is flat, publishing cadence is unchanged, and the only thing that moved is the split between named referrers and direct, you are looking at a change in what your reporting can see, not a change in where visitors came from. Fathom’s troubleshooting documentation makes the mechanism explicit: when you see only a homepage instead of a full pathname while filtering by a referrer, it is likely because the referring site’s referrer policy excludes the full pathname, and where a site sets no policy of its own, the visitor’s browser default applies instead.

The trip a social click actually takes

A tap on a link in a social app is rarely one hop. It usually opens an in-app browser, a webview living inside the app rather than the phone’s default browser. From there the URL may pass through a link wrapper or shortener before the destination server hears about it. Each transition is a place where the Referer header can be dropped, truncated to a bare origin, or overwritten with the wrapper’s own domain. That header is the only source signal your analytics script gets for free, and none of it is under your control.

The floor under all of this was lowered years ago for everyone, not just for social clicks. Plausible’s explainer records that Chrome changed its default referrer policy to strict-origin-when-cross-origin in version 85, released in August 2020, that Firefox made the same change in March 2021 with version 87, and that Safari follows the same policy. MDN’s Referrer-Policy reference confirms that value as the policy applied when none is specified or an invalid one is provided, and notes the previous default was no-referrer-when-downgrade. A cross-origin click now hands over the origin only. The path and query string of the referring page are gone before your server sees the request.

What a specific platform’s in-app browser sends on top of that is a separate question. No first-party developer or help documentation from Instagram, TikTok or X could be retrieved on the day of writing. Those requests returned error documents or no readable text, and an unsourced sentence about a named platform’s webview is worth less than an honest gap. Plausible’s post does document the general shape of the problem under the heading of dark traffic: the referrer is not passed when a visitor arrives through something other than a link on a page, and it is dropped whenever a request moves between HTTP and HTTPS. Wrappers add a layer on top, and the category that sells them is covered in how link management tools meter and price the wrapper itself.

What three privacy-first tools document about it

What follows records what each vendor states in its own documentation, alongside its current entry-level price. It is not a ranking, and the price rows are not comparable, because each vendor’s cheapest tier includes a different set of limits.

ToolEntry-level price, verified 30 August 2026What its own documentation says about referrers
PlausibleStarter at $9 per month on monthly billing, up to 10,000 monthly pageviews, one site.Its referrer-policy post states that under strict-origin-when-cross-origin you will see the referring domain but not the exact page URL, and lists mechanisms where no referrer is passed at all.
Fathom$15 per month on monthly billing, up to 100,000 pageviews, 50 sites included.Its troubleshooting page attributes a missing full referrer URL to the referring site’s policy, or to the browser default where none is set, and lists that default as strict-origin-when-cross-origin in Chrome, Safari, Firefox, Edge and Brave.
Simple AnalyticsSelf-serve at $20 per month on monthly billing at the 100,000 pageview setting, including one user, with a free tier for hobby sites.Its metrics documentation states that browsers send the previous site’s URL as a referrer in most cases, that it stores referrers the same way it stores URLs, and that it checks source a second way, through UTM parameters.

Prices verified 30 August 2026 from each vendor’s own pricing page. This is not Watchdog data and is not on the re-verification schedule, so check the vendor before budgeting against these figures. followedapp is published by the team behind RecurPost, and RecurPost is a covered vendor here under the same rules as every other vendor.

This is not the tool losing your data

Nothing above singles out a culprit, because there is not one. Referer header loss is older than every product named on this page and sits upstream of all of them. By the time any analytics script executes, the header has already either arrived or not. A script cannot reconstruct a value the browser declined to send, and no vendor has privileged access to the missing string.

So the visit was not lost. The pageview was recorded. Session count, page depth, conversion event, all of it survived intact. The one field that degraded is the attributed source, and it degraded before your page finished loading. Reading a swollen direct bucket as proof the tool is broken sends you shopping for a replacement that will report the same number. This piece stays inside analytics tooling and is not a comparison of social media management products.

Walking through the surprise

Here is the pattern, offered as a hypothetical walkthrough for diagnosis rather than a reported case. Picture a team posting on its usual schedule, sharing the same kinds of links to the same landing pages. Under the old tool, a named social platform sat in the referral list with a respectable share of arrivals. After the cutover, sessions land within normal weekly variation, but that source is thin and direct has grown by roughly the size of the gap.

What moved is not the traffic, and not really the tool either. Both were reading the same degraded referrer. The older one simply put more interpretation between that header and the label printed on the dashboard.

Where the fix actually lives

  • Not by switching tools again. A referrer stripped before the click landed is unrecoverable by any script running on your page. Migrating a third time changes the dashboard, not the header.
  • At the moment the link is created. Campaign parameters travel in the query string, part of the URL the visitor actually navigates to. They survive the in-app browser, the wrapper and the redirect chain, because they are the destination address rather than a header attached to it. Fathom’s campaign documentation puts this plainly, saying it includes UTMs on the dashboard because many referrers remove referral data. Simple Analytics documents the same fallback.
  • With a convention, not ad hoc tags. Inconsistent tagging produces near-duplicate sources that are harder to read than the direct bucket was. The scheme is out of scope here; use a UTM convention that survives the handoff.
  • Forward only. Tags affect clicks made after the tags are in place. Visits already logged as direct cannot be reclassified retroactively, so set your baseline from the first fully tagged week.

FAQ

Does switching to a privacy-first analytics tool cause me to lose social traffic?

No traffic is lost. The visits still happen, still get counted, and still appear in your totals. Only the labelled source changes, because a tool can report only the referrer information the browser hands it, and that information is often reduced or removed before the request arrives.

Which privacy-first analytics tool reports referrers best?

That is not a question this piece answers with a winner. All three tools examined here report what the Referer header contains when it reaches their script, and none can recover a header stripped upstream. What differs between them is how clearly each documents the limitation, not how much missing data any of them retrieves.

Will adding UTM tags now fix my past reports?

No. Tags take effect only on clicks made after they are added to a link. Visits already logged as direct cannot be reclassified after the fact, because the source information that would have labelled them was never recorded in the first place.

Sources

Scroll to Top