5 Redirect Mistakes That Strip UTM Parameters and GCLIDs

Discover how 301 server redirects, HTTP-to-HTTPS hops, and trailing-slash mismatches silently erase campaign parameters and turn paid ads into Direct.

Reviewed by UTMCraft Editorial Team

Last reviewed

Sources IETF, Apache Software Foundation Full references

Server redirect chain showing initial URL with UTMs and final destination URL with stripped parameters
Table of Contents
  1. Why Redirects Silently Destroy Campaign Attribution
  2. The 5 Critical Redirect Tracking Mistakes
  3. 1. Server 301 Redirects Without Query String Append (QSA)
  4. 2. HTTP to HTTPS Protocol Upgrades Dropping Parameters
  5. 3. Trailing Slash Mismatches (/landing vs /landing/)
  6. 4. CDN Edge Rules Stripping Unrecognized Query Strings
  7. 5. Client-Side JavaScript Redirects That Forget window.location.search
  8. Server Configuration Fixes for Apache and Nginx
  9. Frequently Asked Questions

You spend thousands on advertising, verify that your campaign URLs are tagged flawlessly, and launch. Yet when you check GA4, 100% of your visitors appear under Direct / (none). The culprit is almost always an intermediate server redirect that silently strips the query string.

Why Redirects Silently Destroy Campaign Attribution

When a web server returns an HTTP 301 (Moved Permanently) or 302 (Found) status code, it sends a Location header instructing the browser where to go next. If the server does not explicitly re-append the incoming query string to the new location, the browser requests the target page completely stripped of UTMs.

The 5 Critical Redirect Tracking Mistakes

1. Server 301 Redirects Without Query String Append (QSA)

In Apache web servers, rewrite rules without the [QSA] flag discard incoming query parameters upon redirection.

2. HTTP to HTTPS Protocol Upgrades Dropping Parameters

Ad links pointing to http://example.com that redirect to https://example.com can drop parameters if the SSL redirection rule is misconfigured.

3. Trailing Slash Mismatches (/landing vs /landing/)

Most content management systems (WordPress, Webflow) enforce canonical trailing slashes. Advertising /promo?utm_source=... causes the CMS to redirect to /promo/?utm_source=.... If poorly coded, the query parameters disappear.

4. CDN Edge Rules Stripping Unrecognized Query Strings

Aggressive CDN caching rules (Cloudflare, Fastly) configured to optimize cache hit ratios may strip query strings before passing requests to your origin server.

5. Client-Side JavaScript Redirects That Forget window.location.search

Single Page Apps executing window.location.href = '/new-page' without appending window.location.search erase campaign attribution instantly.

Server Configuration Fixes for Apache and Nginx

In Apache, ensure rewrite rules append query strings:

RewriteRule ^old-page$ /new-page [R=301,L,QSA]

In Nginx, always include $is_args$args:

return 301 https://example.com/new-page$is_args$args;

Frequently Asked Questions

How can I tell if a redirect is stripping my UTM parameters?

Open an incognito browser window, open DevTools Network tab, paste your tagged URL, and check the 301/302 response Location header. If the query string is absent in the Location URL, your parameters are being stripped.

Does a 301 redirect pass Google Ads GCLID?

Only if your server redirect configuration preserves query strings. Otherwise, the GCLID is stripped and your paid search click becomes Direct.

Sources & Authoritative References