🔴CriticalImpact: 100% data loss
🔗Category: URL Syntax

What This Rule Detects

Browsers NEVER send URL fragments (anything after #) to servers. When # appears before ?, all UTM parameters are completely invisible to GA4. This causes 100% tracking failure.

🔍 Want to scan for this issue automatically?

UTMGuard checks for this and 39 other validation rules in 60 seconds.

Try Free Audit

Why It Matters

Business Impact:

  • 100% attribution loss for affected traffic
  • Campaigns show as Direct traffic
  • Impossible to measure ROI
  • Ad spend attribution fails completely

Technical Impact:

  • Browser behavior: Only sends URL up to # character
  • GA4 receives: example.com/page# (query string stripped)
  • Result: Zero UTM data captured

Common Scenarios

Scenario 1: Single Page Apps (SPA)

Many React/Vue apps use hash routing:

yoursite.com#/products?utm_source=facebook
yoursite.com?utm_source=facebook#/products

Marketing emails with jump links:

yoursite.com/guide#section-3?utm_source=email
yoursite.com/guide?utm_source=email#section-3

Scenario 3: Accidental Hash Placement

Copy-paste errors or CMS issues:

yoursite.com/page#?utm_source=google
yoursite.com/page?utm_source=google

😰 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

How to Fix

Step 1: Identify Affected URLs

  1. Check your campaign URLs in:

    • Email templates
    • Social media posts
    • Ad platforms
    • QR codes / printed materials
  2. Search for pattern: # before ?

Step 2: Reorder URL Structure

Correct Order: domain + path + ? query + # fragment

Step 3: Verify in GA4

  1. GA4 → Reports → Acquisition → Traffic acquisition
  2. Check if campaigns now appear
  3. Verify Source/Medium attribution

Examples

❌ Incorrect Examples

https://example.com#top?utm_source=facebook&utm_medium=cpc
Result: GA4 sees only https://example.com#top
Tracking: FAILS (100% data loss)

✅ Correct Examples

https://example.com?utm_source=facebook&utm_medium=cpc#top
Result: GA4 receives all UTM parameters
Tracking: SUCCESS (attributed to Facebook CPC)

GA4 Impact Analysis

Channel Grouping:

  • Affected traffic: Appears as "Direct" channel
  • Lost attribution: 100% of sessions with this pattern

Session Attribution:

  • First-click: Lost (defaults to Direct)
  • Last-click: Lost
  • Multi-touch: Missing from attribution path

✅ 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

External Resources

Last Updated: January 15, 2024
Rule ID: fragment_before_query
Severity: Critical
Category: Syntax