Fix Missing Query Separator in 30 Seconds

UTMGuard Team
5 min readtroubleshooting

Your campaign URL is missing the ? before UTM parameters. GA4 isn't tracking anything.

Here's the 30-second fix.

🚨 Not sure what's breaking your tracking?

Run a free 60-second audit to check all 40+ ways UTM tracking can fail.

Scan Your Campaigns Free

✓ No credit card ✓ See results instantly

The Problem (5-Second Version)

❌ BROKEN:
shop.com/products&utm_source=facebook

Missing: The ? question mark

Without ?, GA4 treats your UTM parameters as part of the URL path (not tracking data).

The Fix (3 Steps)

Step 1: Add Question Mark (10 seconds)

Change this:

shop.com/products&utm_source=facebook&utm_medium=cpc

To this:

shop.com/products?utm_source=facebook&utm_medium=cpc
                 ↑
             Added ?

That's it. One character fixes everything.

Step 2: Update Campaigns (15 seconds)

Replace broken URL in:

  • Social media posts
  • Email campaigns
  • Paid ads
  • QR codes

Step 3: Test (5 seconds)

  1. Visit corrected URL in incognito mode
  2. Open GA4 → Real-Time
  3. Verify campaign appears

Done? Tracking restored.

😰 Is this your only tracking issue?

This is just 1 of 40+ ways UTM tracking breaks. Most marketing teams have 8-12 critical issues they don't know about.

• 94% of sites have UTM errors

• Average: $8,400/month in wasted ad spend

• Fix time: 15 minutes with our report

✓ Connects directly to GA4 (read-only, secure)

✓ Scans 90 days of data in 2 minutes

✓ Prioritizes issues by revenue impact

✓ Shows exact sessions affected

Get Your Free Audit Report

URL Structure Rules

https://domain.com/path?query_parameters#fragment
                      ↑
             Required question mark

Order:

  1. Domain and path
  2. ? (starts query string)
  3. UTM parameters (connected with &)
  4. # (optional fragment/anchor)

Common Variations

Variation 1: Ampersand Instead of Question Mark

❌ shop.com/page&utm_source=x
✅ shop.com/page?utm_source=x

Variation 2: No Separator At All

❌ shop.com/pageutm_source=x
✅ shop.com/page?utm_source=x

Variation 3: Space Instead of Question Mark

❌ shop.com/page utm_source=x
✅ shop.com/page?utm_source=x

What If URL Already Has Parameters?

Use & to add more parameters:

✅ CORRECT:
shop.com/page?existing=value&utm_source=facebook&utm_medium=cpc
             ↑              ↑               ↑
             ?              &               &

Rule: First parameter uses ?, additional parameters use &.

Quick Validation

// Paste in browser console:
const url = 'YOUR_URL_HERE';
const hasQuestion = url.includes('?');
const utmPosition = url.indexOf('utm_');
 
if (utmPosition > 0) {
  const charBefore = url[utmPosition - 1];
  if (charBefore === '?' || charBefore === '&') {
    console.log('✅ URL structure is correct');
  } else {
    console.log('❌ Missing ? or & before UTM parameters');
  }
} else {
  console.log('No UTM parameters found');
}

Real Example

Before (broken):

https://supplements.com/immune-boost&utm_source=email&utm_medium=newsletter&utm_campaign=jan2024

Problem: GA4 sees "Direct" traffic (0 campaign attribution)

After (fixed):

https://supplements.com/immune-boost?utm_source=email&utm_medium=newsletter&utm_campaign=jan2024
                                    ↑
                                 Added ?

Result: Perfect campaign tracking

Time to fix: 10 seconds Impact: 100% attribution restored

Prevention Template

Use this structure for ALL campaign URLs:

https://[domain]/[path]?utm_source=[source]&utm_medium=[medium]&utm_campaign=[campaign]&utm_content=[content]&utm_term=[term]

Example:
https://shop.com/products?utm_source=facebook&utm_medium=cpc&utm_campaign=spring2024

Checklist: ✅ Domain and path first ✅ Question mark ? before first parameter ✅ Ampersand & between parameters ✅ All parameters lowercase ✅ No spaces (use hyphens or URL encoding)

✅ Fixed this issue? Great! Now check the other 39...

You just fixed one tracking issue. But are your Google Ads doubling sessions? Is Facebook attribution broken? Are internal links overwriting campaigns?

Connects to GA4 (read-only, OAuth secured)

Scans 90 days of traffic in 2 minutes

Prioritizes by revenue impact

Free forever for monthly audits

Run Complete UTM Audit (Free Forever)

Join 2,847 marketers fixing their tracking daily

FAQ

Can I use & without ??

No. The ? is required before the first query parameter. Use & only for additional parameters.

What if I have multiple question marks?

Only one ? is allowed. Use & for all subsequent parameters.

Do all platforms require the question mark?

Yes. The ? is defined in RFC 3986 (URL standard) and is universally required.

Will fixing this affect historical data?

No. Past data remains unattributed. The fix only affects future traffic.

How do I test if the fix worked?

Visit your URL in incognito mode and check GA4 Real-Time reports within 60 seconds.

Conclusion

Missing query separator? Add ? before your first UTM parameter.

❌ BROKEN: domain.com/path&utm_source=x
✅ FIXED:  domain.com/path?utm_source=x

One character. 30 seconds. Perfect tracking restored.


Technical Reference: Missing Query Separator Validation Rule