GA4’s Junk Drawer: Making Sense of Direct Traffic With UTMs

Split image of a clean desk above and a cluttered drawer below with the headline “GA4’s Junk Drawer: Making Sense of Direct Traffic."

Earlier this month, we spent time recapping and analyzing 2025 data for our clients. One common thing we noticed was that “Direct” traffic, aka GA4’s junk drawer, continues to be the catch-all for unattributed traffic. In this post, we’ll review why GA4 over reports Direct traffic and what to do about it. Let’s dive in!

Why GA4 over-reports Direct

GA4 assigns Direct when it can’t see a referrer. Here are some of the common causes:

  • Links in emails (especially non-Gmail clients)
  • Slack, Teams, Zoom chat
  • PDFs, Word docs, slide decks
  • QR codes
  • Social apps / mobile browsers
  • HTTPS → HTTP transitions
  • Some privacy tools & ad blockers

So, the goal of UTMs is not “track everything”, but fill in the biggest attribution blind spots.

Do you need UTMs on everything?

Absolutely not.
This came up just this morning at a client meeting. Not only does over-UTM-ing create noise, breaks attribution, and makes GA harder to trust, it can be challenging to implement across teams. We suggested taking a “just right” Goldilocks approach. 

Do NOT use UTMs on:

  • Internal links (ever)
  • Organic social posts (unless there’s a strong reason)
  • Organic search
  • Paid ads managed in Google Ads (auto-tagging is better)
  • Links you don’t control long-term (e.g., partners reposting)

Where UTMs are most valuable (high ROI)

Think “dark traffic” — places GA can’t naturally identify.

1. Email (highest priority)

  • Newsletters
  • Drip campaigns
  • One-off campaigns
  • Internal team emails that drive traffic

Best practice

  • Use UTMs on every email link
  • Keep naming conventions rigid

Example:

utm_source=newsletter
utm_medium=email
utm_campaign=nutrition_facts
utm_content=cta_button

2. PDFs & downloadable assets

  • Whitepapers
  • Reports
  • Proposals
  • Case studies
  • Slide decks

If someone clicks from a PDF without UTMs → Direct.

Example:

utm_source=pdf
utm_medium=download
utm_campaign=nutrition_toolkit

3. Social links in “non-public” spaces

  • Slack
  • Discord
  • LinkedIn DMs
  • WhatsApp
  • SMS

You don’t need UTMs on public social posts — GA already knows those.

Example:

utm_source=slack

utm_medium=chat

utm_campaign=recipe_launch

4. QR codes (always)

QR traffic without UTMs is basically useless.

Example:

utm_source=qr
utm_medium=offline
utm_campaign=conference_2026

5. Paid media outside Google Ads

  • LinkedIn Ads
  • Meta
  • Programmatic
  • Sponsorships

Use UTMs even if the platform reports clicks — GA attribution still needs help.

A manageable & sustainable UTM system

The secret is constraint, not complexity. By limiting variables, you reduce noise and create a simple, sustainable methodology that team members are far more likely to adopt—and stick with.

Marketing strategy for non-profits. Learn more.

1. Lock down a naming convention (write it down)

Never improvise UTMs. Ever.

Recommended baseline

ParameterRule
utm_sourceWhere the traffic comes from (newsletter, linkedin, qr)
utm_mediumChannel type (email, social, paid, offline)
utm_campaignOrganiztion initiative or campaign
utm_contentOptional: link or CTA identifier

Rules

  • Lowercase only
  • Use underscores, not spaces
  • No dates unless meaningful
  • Be human-readable

2. Keep your medium list VERY small

If you let mediums explode, GA becomes unreadable.

Good medium list (example):

  • email
  • paid
  • social
  • referral
  • offline
  • download

That’s it. Fight the urge to add more. Remember, less is more. 

3. Use the Google URL Builder — but centralize ownership

The URL builder is fine, but the real risk is people using it inconsistently.

Best practice:

  • Create a shared UTM spreadsheet
  • Include:
    • Approved sources
    • Approved mediums
    • Campaign naming rules
  • Copy/paste into Google’s builder

This keeps GA4 clean over time, not just this quarter.

4. Campaigns ≠ dates

This is a common mistake.

❌ utm_campaign=may_newsletter_2026
✅ utm_campaign=sparkle_wednesday

Dates belong in reporting, not UTMs — otherwise you fragment your data.

5. Accept that Direct will never go to zero

Your goal isn’t to eliminate Direct — it’s to:

  • Reduce false Direct
  • Make intentional traffic visible
  • Improve trend reliability

If Direct drops from 35% → 20%, that’s a win.

A realistic workflow

Here’s a sane cadence:

  • Always UTMs for:
    • Email
    • Paid media
    • QR codes
    • PDFs
  • Sometimes for:
    • Private social / messaging
  • Never for:
    • Internal links
    • SEO
    • Public organic social (unless testing)

Remember, a simple, shared approach to UTMs keeps your data clean, your reporting honest, and your team aligned, without adding unnecessary complexity.

Contact Us About Digital Marketing Services