If your answer to "where are your customers coming from?" is "mostly Google, I think" — you're probably wrong, and this guide will show you why.
The "Direct" traffic lie
When someone clicks a link in WhatsApp, copies a URL from Slack, taps a link in a TikTok caption, or opens a link from Apple Mail — their browser often arrives at your site with zero referrer information. Your analytics tool has no idea where they came from, so it dumps them into "Direct."
Here's what that actually looks like in practice:
| Where the click actually happened | What Google Analytics reports |
|---|---|
| WhatsApp group chat | Direct |
| Instagram DM | Direct |
| iMessage link | Direct |
| TikTok bio (in-app browser) | Direct or sometimes l.instagram.com (wrong) |
| Slack message | Direct |
| Telegram channel | Direct |
| Email (Apple Mail, some Outlook) | Direct |
| Podcast show notes (mobile) | Direct |
This isn't a bug. WhatsApp and iMessage intentionally strip referrer headers for privacy. In-app browsers on TikTok and Instagram are sandboxed environments that often don't pass referrer data at all. The result: your fastest-growing channels are invisible.
Three ways to fix this, compared honestly
There's no single perfect solution. Here's how the real options stack up:
1. UTM parameters on every link
You manually append ?utm_source=instagram&utm_medium=bio to your URLs. Google Analytics can then read these parameters and attribute the visit correctly.
- ✅ Free, works with any analytics tool
- ❌ Ugly URLs that scare off clicks
- ❌ Users can strip or modify them
- ❌ No click-level data — you only see sessions, not individual clicks
2. Unique short links per channel
You create a different short link for each channel: yourbrand.co/ig for Instagram, yourbrand.co/nl for your newsletter, yourbrand.co/tw for Twitter. Each click is logged server-side before the redirect happens.
- ✅ Works even when referrers are stripped (WhatsApp, iMessage, Telegram)
- ✅ Clean, branded URLs that people actually trust
- ✅ Click-level data: device, OS, country, timestamp
- ❌ Requires a link management tool
3. Short links + UTM parameters combined
You add UTM parameters to the destination URL, then wrap it in a short link. You get server-side click data from the shortener AND behavioral data (pages visited, conversions) from Google Analytics.
- ✅ Best of both worlds — click data + on-site behavior
- ✅ Still looks clean to the end user
- ❌ Slightly more setup per campaign
For most people running marketing across 3+ channels, option 3 is the right answer.