Why do my UTM parameters disappear after a redirect?
23 September 2026 · by Nordva, who make Nordva Launch
The short answer
Because something between the click and your page rebuilt the address without its query string. A redirect from http to https, from www to the bare domain, to add a trailing slash, or to a login page can drop everything after the question mark, and so can a router that tidies the address before your analytics script runs. The visit then arrives untagged and usually counts as direct.
Where the tags go
UTM tags are part of the address: https://example.com/pricing?utm_source=newsletter&utm_campaign=launch. Analytics reads them from the address of the first page. Anything that sends the visitor to a different address before that page loads decides whether the tags come along.
A redirect doesn’t carry the query string on its own. The server answering the first request writes the new address, and if it writes only the host and the path, the tags are gone.
The usual places
- http to https, and www to bare domain (or the reverse). Host settings and rewrite rules sometimes rebuild the address from the host and path only.
- Adding or removing a trailing slash.
/pricingto/pricing/is a redirect too, and some frameworks drop the query while doing it. - Login walls. A tagged link to a page that needs a login sends the visitor to the login page, and back afterwards, often without the tags.
- Link shorteners and link-in-bio tools. Some add their own tags, some strip yours.
- Client-side routers. A single-page app can replace the address (to remove the tags, or to redirect to a default route) before the analytics script has read it.
- Consent banners. If analytics waits for a click on the banner and the app changed the address in the meantime, the tags are already gone.
Test your own links
- Paste your tagged link into a browser with the developer tools open, on the Network tab, with “Preserve log” on.
- Look at every response with a status in the 300s and its
Locationheader. Each one should still end with your tags. - Or from a terminal:
curl -sIL "https://example.com/pricing?utm_source=test" | grep -i locationprints every hop. - When the page has loaded, check the address bar. If the tags are there, the redirects are fine and the problem is later.
How to fix it
- Link to the final address. The simplest fix: use the exact address the page ends up on, with the right host and the right trailing slash.
- Pass the query string on in your redirect rules. Most hosts have a setting or a placeholder for it; with your own rules, append the original query to the new address.
- Save the tags before a login wall. Read them on arrival, keep them (a cookie, or the login state), and use them after the login.
- Let analytics read the address before the router changes it. Load the script early, or have the router keep the query.
With Nordva Launch
Launch’s script reads the tags on the first page of a visit and keeps them as the visitor’s first touch, so later pages and later visits don’t need them. It can only read what arrives, though: tags lost in a redirect before the page loads are lost for every tool, and the fix is in the redirect.
When Launch is the wrong tool
If your tagged links land on the final address with no redirect in between, and the tags show in the address bar when the page loads, the cause is elsewhere: check that the tags are spelled right and that your analytics loads on that page.
- Why are my UTM tags not showing up in analytics?
- Does a 301 redirect keep UTM parameters?
- Why does my campaign traffic show as direct?