UTM Parameters Lost After Redirect
Updated
A redirect is sending visitors to a hard-coded destination without the original query string. Test with obvious UTM values, record every hop, and fix the first redirect where the parameters disappear so it forwards them. Then retest the full public campaign URL.
Find the exact redirect hop that removes your campaign attribution before traffic reaches the landing page.
The most common pattern is simple: the first URL contains UTMs, the redirect sends the browser to a clean hard-coded destination, and the final page receives none of the original query string. The page still works, but analytics loses the campaign context.
What to check
1. Test with obvious values
Use a URL such as ?utm_source=test&utm_medium=paid&utm_campaign=redirect_test so the parameters are easy to recognize.
2. Record every hop
Do not compare only the first and last URL. The useful question is which redirect first removes the query string.
3. Inspect the Location destination
A hard-coded redirect target without the incoming query string will drop UTMs unless the platform explicitly forwards them.
4. Check shorteners and vanity domains
Branded links, tracking domains and affiliate redirectors add extra places where parameters can be rewritten or removed.
5. Check locale and app redirects
Geo, language, login and marketing-site-to-app redirects frequently rebuild URLs and can forget campaign parameters.
6. Retest the entire production URL
After the rule is fixed, retest from the exact public campaign URL rather than only testing the destination page.
What you see and what it usually means
UTMs are in the ad link but not in the address bar
A server redirect dropped the query string. Read the Location header of each hop to see which one first returns a URL without parameters.
UTMs arrive, then vanish a moment later
A script on the page is rewriting the URL, often the router of a single-page app or a snippet that cleans the address. Analytics may still read them if its tag runs first, so check the order.
Only some parameters survive
An allow-list forwards the keys it knows and discards the rest. Add the missing ones, including click IDs such as gclid and fbclid.
Parameters survive on desktop but not on mobile
Mobile traffic often takes another route: an app link, a separate mobile domain or an in-app browser. Test the same URL on a phone.
A typical case
Worked verification (illustrative): submit https://example.com/sale?utm_source=newsletter&utm_medium=email&utm_campaign=october. Hop 1 returns Location: https://example.com/en/sale and drops all three campaign fields. After updating the redirect rule, the expected destination is https://example.com/en/sale?utm_source=newsletter&utm_medium=email&utm_campaign=october. Compare the decoded parameter values at entry, every hop and the final document request. The redirect status alone does not preserve the query string. Forward only the campaign fields your implementation deliberately allows; do not copy arbitrary sensitive parameters to another domain. Finally check that analytics reads the campaign fields before any client-side URL cleanup. A clean address bar alone cannot prove attribution was lost or restored.
Before you call it fixed
- UTMs present on entry URL
- Every redirect recorded
- First broken hop identified
- Query forwarding enabled
- Click IDs preserved where needed
- Final URL retested after fix
Check the production URL
A correct configuration on paper can still fail after redirects, deployment or consent logic. Use the exact URL your campaign will send traffic to.
Check a campaign URLVerify the signal directly
Related troubleshooting guides
Common questions
Do redirects always remove UTM parameters?
No. A redirect keeps them when the rule passes the query string on to the destination. They are lost when the destination is written as a fixed URL.
Is a 301 or a 302 better for keeping UTMs?
The status code makes no difference. What matters is whether the Location header includes the original parameters.
Can I put the UTMs on the redirect destination instead?
Not safely. Parameters written into the destination label every visitor who passes through that redirect with the same campaign, whichever link they clicked. Forwarding the incoming parameters keeps each source separate.
Scan the full campaign route.
See where the click lands, what survives the redirect chain and which supported tracking signals are visible on the final page.