Referring domain increasingly appear as not set in a YOY analysis
There are a few documented reasons why $referring_domain (or $initial_referring_domain) may increasingly appear as (not set) in your reports:
1. The property is simply absent from events
$referring_domain is only collected when document.referrer returns a value in the browser. It will be omitted if:
The user lands directly on your site (typed URL, bookmark, email link, etc.)
The referring website adds the rel="noreferrer" parameter to its links
In those cases, the property is not sent at all, which Mixpanel displays as (not set). [Default Properties]
2. Privacy settings and browser changes
Over time, more browsers and security settings prevent referrer data from being passed. This is a known trend — browsers increasingly strip or block referrer headers, which means more events arrive without a referring domain. This would explain a year-over-year increase in (not set) values. [Traffic Attribution]
3. Server-side tracking without manual enrichment
If any portion of your tracking has shifted to server-side over time, $referring_domain is not automatically collected — it must be parsed manually from the Referer request header. If this isn't done, the property will be missing. [Server-Side Best Practices]
4. Organic / direct traffic growth
If your share of direct or organic traffic has grown YoY, you'd naturally see more (not set) for UTM and referrer properties, since those users arrive without a referrer. [Traffic Attribution]
To mitigate this, for server-side implementations you can manually extract and forward the referrer:
from urllib.parse import urlparse
if "Referer" in request.headers:
properties.update({
"$referrer": request.headers["Referer"],
"$referring_domain": urlparse(request.headers["Referer"]).hostname
})For client-side tracking, this is handled automatically by the JavaScript SDK, but you cannot recover referrer data that browsers choose not to send.
ℹ️ Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.
