Back to blog
//8 min read

UTM Parameters Not Showing in GA4? Fix It in 5 Minutes

UTM parameters in URL but not in GA4? Follow this diagnostic flowchart to identify and fix the issue in 5 minutes.

By UTM Guardutm not showing ga4ga4 utm fixutm troubleshootingga4 realtime
Quick troubleshooting guide for UTM parameters not showing in GA4

The Problem

You added UTM parameters to your campaign URLs. You launched. You opened GA4 to check performance and... nothing.

Your email campaign shows as Direct. Your social ads appear as Referral. The UTMs are in the URL, but GA4 acts like they don't exist.

Stop. Before you spend hours debugging, follow this 5-minute diagnostic process.


Quick Diagnostic: 3 Tests to Run First

Test 1: Check the GA4 Realtime Report

This confirms whether GA4 is tracking anything from your campaign.

  1. Go to Reports -> Realtime in GA4
  2. Click your campaign link from the actual channel (email, social, etc.)
  3. Look at the event stream

What you're checking:

  • Does your session appear at all?
  • What source/medium is shown?
  • Is there any campaign data visible?

If you see NO session data -> GA4 isn't loading. Jump to Fix #1: GA4 Not Loading

If you see session data but wrong source/medium -> Continue to Test 2


Test 2: Inspect the Browser URL

After clicking your campaign link, look at the address bar.

Are the UTM parameters still there?

What You See What It Means Next Step
OK UTMs are in the URL Problem is with GA4 tracking Continue to Test 3
X UTMs disappeared Redirect stripped them Jump to Fix #2: Redirects
! URL changed completely Site redirect removed parameters Jump to Fix #2: Redirects

Test 3: Check Fragment Placement

If UTMs are in the URL, check their position.

Wrong (won't work):

https://example.com/page#section?utm_source=newsletter&utm_medium=email

Correct:

https://example.com/page?utm_source=newsletter&utm_medium=email#section

If UTMs are after the # symbol -> Jump to Fix #3: Fragment Position

If UTMs are before the # or there's no fragment -> Continue to the flowchart below


Troubleshooting Flowchart

Use this to pinpoint the exact issue:

(click to enlarge - right click to open in a new tab)

Flowchart for diagnosing why UTM parameters aren't showing in GA4


Fix #1: GA4 Not Loading

Symptom: No session appears in GA4 Realtime at all

Most Common Causes:

The problem: Users reject cookies, preventing GA4 from firing.

Quick test:

  1. Open an incognito window
  2. Click your campaign link
  3. Reject all cookies on the consent banner
  4. Check GA4 Realtime

If no session appears: Consent is blocking GA4

The fix:

  • Implement Google's Consent Mode v2 to allow basic analytics without full consent
  • Or: Delay consent banner until after first page view (check legal compliance first)
  • Or: Test with consent accepted to confirm this is the issue

GTM Misconfiguration

The problem: GA4 tag isn't set up correctly in Google Tag Manager.

Quick test:

  1. Open Google Tag Manager
  2. Click Preview
  3. Enter your site URL with UTM parameters
  4. Click through and check if GA4 Configuration tag fired

Common mistakes:

  • Tag not firing on all pages
  • Missing or incorrect Measurement ID
  • "Send page view" not enabled
  • Using old UA-era configuration

The fix:

  1. Go to GTM -> Tags -> Your GA4 Configuration Tag
  2. Verify Measurement ID matches your GA4 property
  3. Set trigger to All Pages (or appropriate trigger)
  4. Enable Send a page view event when this configuration loads
  5. Save, publish, and test in Preview mode

Fix #2: Redirects Stripping UTMs

Symptom: UTMs disappear from the URL after clicking

The problem: Your site, URL shortener, or marketing platform strips UTM parameters during redirects.

Common scenarios:

  • Bitly or other URL shorteners not preserving query strings
  • WordPress redirect plugins dropping parameters
  • Email platform click tracking stripping UTMs
  • Multiple redirect hops losing parameters

Quick test:

  1. Paste your full UTM-tagged URL into a browser
  2. Hit Enter
  3. Watch the address bar during page load
  4. Check if UTMs survive to the final URL

If they disappear: You have a redirect issue

The fix:

For URL Shorteners:

  • Test the shortened link before using in campaigns
  • Verify query parameters are preserved
  • Most modern shorteners (Bitly, TinyURL) support this by default
  • If not, switch to a shortener that does

For WordPress Sites:

Check redirect plugins (Redirection, Yoast):

  1. Find redirect rule for your landing page
  2. Enable "Pass query parameters" option
  3. Test the redirect again

For Email Platforms:

  • Test emails in multiple clients (Gmail, Outlook, Apple Mail)
  • Watch for "Safe Links" or link protection features
  • Consider using platform's native tracking alongside UTMs
  • Monitor for redirect domains like safelinks.protection.outlook.com in GA4

Fix #3: Fragment Position

Symptom: UTMs are in the URL but GA4 doesn't see them

The problem: UTM parameters placed after # are invisible to analytics.

Why this happens: Fragment identifiers (#section) don't get sent to servers. Browsers keep everything after # local.

Visual example:

X Wrong:

https://example.com/pricing#plans?utm_source=newsletter&utm_medium=email

OK Correct:

https://example.com/pricing?utm_source=newsletter&utm_medium=email#plans

The fix:

  1. Identify where the # fragment is being added (your CMS, URL builder, marketing platform)
  2. Restructure the URL to place UTMs in the query string (after ?, before #)
  3. Test the corrected URL to verify UTMs appear in GA4

Quick validation: If you see # before ? in your URL, it's wrong.


Still Not Working? Advanced Issues

If none of the above fixes work, you might be dealing with:

  • JavaScript redirect timing: Page redirects before GA4 loads
  • App-to-web transition issues: Mobile apps stripping parameters
  • Multiple GA4 tags: Conflicting configurations
  • Cross-domain tracking: Parameters lost during domain handoff

These require more in-depth debugging. See our comprehensive guide to UTM troubleshooting for detailed solutions.


Prevention: Stop This From Happening Again

1. Validate Before Launch

Every campaign URL should be checked for:

  • OK UTM parameters present
  • OK Parameters before any # fragment
  • OK Values are lowercase (prevents case-sensitivity issues)
  • OK No spaces or special characters
  • OK All three required parameters: source, medium, campaign

Use UTM Guard to automatically validate URL structure before launch.


2. Test the Full Journey

Don't just test in your browser. Test how users will actually experience it:

  • Email clients: Gmail, Outlook, Apple Mail
  • Social apps: Instagram, Facebook, LinkedIn in-app browsers
  • Mobile devices: iOS Safari, Android Chrome
  • Desktop browsers: Chrome, Firefox, Safari, Edge

Click the actual campaign link. Watch the URL. Check GA4 Realtime.

Catch issues before thousands of users experience them.


3. Monitor Immediately After Launch

Within 5 minutes of launching a campaign:

  1. Check GA4 Realtime report
  2. Look for your campaign name, source, and medium
  3. If missing -> stop the campaign and investigate
  4. Don't wait -> broken tracking wastes budget every hour

Set up a GA4 alert for sudden Direct traffic spikes (often indicates stripped UTMs).


Quick Reference: Diagnostic Checklist

Use this when troubleshooting:

  • Session appears in GA4 Realtime?

  • No -> Check consent settings and GTM configuration

  • Yes -> Continue

  • UTMs visible in browser URL bar?

  • No -> Test redirect chain and URL shorteners

  • Yes -> Continue

  • UTMs placed before # fragment?

  • No -> Restructure URL

  • Yes -> Continue

  • Page redirects immediately after load?

  • Yes -> Check JavaScript timing or server redirects

  • No -> See comprehensive guide


Real-World Fix: Email Campaign Example

Problem: Email newsletter clicks showing as Direct in GA4

Diagnosis:

  1. OK Checked Realtime -> session appeared
  2. OK Checked URL bar -> UTMs were present
  3. X Opened email in Outlook -> UTMs disappeared after click

Root cause: Outlook Safe Links stripping query parameters

Fix: Updated email platform settings to preserve parameters through click tracking

Result: Email campaigns now correctly attributed as source=newsletter, medium=email

Time to fix: 8 minutes


Next Steps


TL;DR

3 Quick Checks:

  1. GA4 Realtime -> Session appears? (No = consent or GTM issue)
  2. Browser URL -> UTMs visible? (No = redirect issue)
  3. Fragment check -> UTMs before #? (No = URL structure issue)

Most Common Fixes:

  • Configure redirects to preserve query strings
  • Move UTMs before the # fragment
  • Fix GTM tag configuration
  • Test with consent accepted

Prevention:

  • Validate URLs before launch (use UTM Guard)
  • Test in actual email clients and apps
  • Monitor GA4 Realtime immediately after launch

Still broken? See the comprehensive troubleshooting guide.

FAQ

How quickly should UTMs appear in GA4?

UTM data should appear in the GA4 Realtime report within seconds. If you don't see it within 5 minutes, something is wrong.

What's the #1 reason UTMs don't show in GA4?

The most common cause is redirects stripping query parameters. Always test your full redirect chain before launching campaigns.

Can I fix UTM tracking without developer help?

Most UTM issues can be diagnosed and fixed without coding. The main exceptions are GTM configuration and JavaScript redirect timing.

Why do my UTMs work in testing but not in production?

This usually indicates an environment-specific issue like cookie consent blocking in production, email client link protection, or platform-specific redirects.

Related reading