When UTM Parameters Break Your Landing Page
Some pages error out when a link adds parameters they don't expect. Why it happens, how to spot it, and how to keep tracking without breaking the page.
· Written by the team that runs Track Link
Short answer
A landing page breaks with tracking parameters when it checks its own URL and rejects names it doesn't expect, or when one of your parameter names clashes with one the site already uses, such as WordPress's name, p or s. Open the tracked link and the bare page side by side in a private window, remove parameters one at a time to find the one that breaks it, then rename it, move it, or switch it off for that link.
You add tracking tags to a link, send it out, and people start telling you the page shows an error, a "page not found", or the wrong page entirely. Without the tags, the page loads fine. Most websites ignore parameters they don't recognise. A few don't, and when you hit one of those, tracking and the page itself pull against each other.
Here's what causes it, how to find the parameter at fault in a few minutes, and how to keep tracking without breaking the page.
The Zoho page that taught us this
By default, every Track Link link adds a click ID to the destination, as utm_click=…. It's what lets a sale or sign-up be matched to the exact click that led to it (the conversion docs explain how). Most pages simply ignore it.
The lesson was bigger than Zoho. Some pages read every parameter in their URL and treat anything unexpected as an error. When you control the link but not the page, you need a way around that.
Why a page breaks when you add parameters
- The page checks its own URL. Some forms, booking widgets, payment pages and hosted landing pages validate the full URL or expect an exact set of parameters. An extra one makes them refuse to load.
- A parameter name clashes with the site's own. WordPress treats some query names as instructions to itself:
name,p,page,sandyearamong them. Add?name=springand WordPress looks for a post called "spring", finds none, and shows a 404.?s=turns the page into search results. - Parameters after a #. Everything after
#stays in the browser and never reaches the server, so the page never sees parameters placed there. Track Link warns you when you create a link whose destination has parameters after the#. - A second question mark. A URL takes one
?; any extra parameters join with&. Hand-built links likepage?a=1?utm_source=xturn the second part into a broken value. - Redirects that drop the query string. If the page redirects, from http to https, from an old address to a new one, or through several trackers in a row, a hop that isn't set to keep the query string strips your tags on the way.
- App store pages and app links. These often ignore extra parameters entirely. The page opens, but your tags never show up in web analytics.
One more thing that looks like breakage but isn't: mixed case and spaces. Facebook and facebook are different values to most analytics tools, so one campaign appears as two. The page is fine; the report is split.
How to find the parameter that breaks it
- Open a private browser window, so cookies and a logged-in session don't hide the problem.
- Open the bare destination, with no parameters. Confirm it loads.
- Open your tracked link in the same window. If it fails, copy the full address from the address bar: that's the URL the page actually received.
- If the link passes through several redirects, paste it into the link tracer to see every hop and whether your parameters survive each one.
- Take the failing URL and delete one parameter at a time, reloading after each, until the page loads. The last one you removed is the culprit.
- Check whether it's the name (a clash, like
nameorp) or the value (spaces, odd characters, or something the page tries to validate).
| What you see | Likely cause | Fix |
|---|---|---|
| Error about missing or invalid parameters | The page rejects names it doesn't expect | Turn off the click ID for that link, or rename the parameter |
| 404 or the wrong page on WordPress | A name clash such as name, p, page, s or year | Rename the parameter |
| Page loads but analytics shows no tags | Tags after #, or a redirect dropped them | Move tags before #; fix the redirect |
| One campaign split into several rows | Mixed case or spaces in values | Lowercase tags with underscores |
Fixes, from quickest to most thorough
Turn off the click ID for that link
If the culprit is utm_click, edit the link and switch off Append click ID to destination. The page loads, and Track Link still counts every click. You lose the ability to match conversions to clicks on that link.
Put the click ID under a name the page accepts
If the page accepts some parameter names but not others, place {click_id} in the destination under a name it does accept, for example https://example.com/offer?ref={click_id}. Track Link fills in the click ID there and stops adding utm_click, so you keep conversion matching. This is the same approach affiliate networks use with sub-ID fields, covered in our postback checklist.
Rename a clashing parameter
If you added your own parameter, say name for personalisation, rename it to something no platform claims, such as visitor_name. Prefixing your own parameters with your brand or campaign keeps them clear of any site's reserved names.
Move parameters before the #
For a destination like example.com/#/signup, the tags belong before the #: example.com/?utm_source=newsletter#/signup. Track Link already adds its own parameters in the right place, but parameters you type into the destination stay where you put them.
Build tags with a builder, in lowercase
The UTM builder puts the ? and & in the right places. Keep values lowercase and use underscores instead of spaces, as the UTM docs recommend.
Ask the page owner to ignore unknown parameters
The lasting fix is on the page: it should ignore parameters it doesn't use. If it's your own site or form tool, raise it with the developer or vendor. Tracking links of every kind add parameters, and the page will meet them again.
How Track Link passes parameters along
Knowing what the redirect does helps you read the URL you copied in step 3:
- UTM tags and any other parameters on the short link are passed through to the destination.
- If the destination already has a parameter with the same name, its value is kept and ours isn't added. Tags you put in the destination win.
- Parameters are joined to the destination's existing query string correctly, with
&rather than a second?, and placed before any#. utm_clickis added last, unless you switched it off or placed{click_id}in the destination yourself.
When the page won't accept any parameters
Some pages reject every extra parameter and you can't change them. You can still measure them: make one short link per placement, such as one for the newsletter and one for the Instagram bio, with the click ID off and no tags. Each link's click count is your split by source, with nothing added to the page's URL. Expect those counts to differ from the page's own analytics; our post on why link clicks never match Google Analytics explains why.
Questions people ask
Can UTM parameters cause a 404?
Yes, on some sites. WordPress treats names like name, p, page, s and year as its own, so a parameter with one of those names can send visitors to a missing or wrong page. The standard utm_ names don't clash with them.
What is utm_click on my Track Link links?
It's the click ID Track Link adds to each visit so a sale or sign-up can be matched to the click that caused it. You can switch it off per link with Append click ID to destination, but conversions can't be tied to clicks on that link.
Will turning off the click ID stop Track Link counting clicks?
No. Track Link still records every click on the link. It only stops adding the click ID to the destination URL.
Why don't parameters after a # work?
Everything after # is a fragment. Browsers keep it on the device and never send it to the server, so the page's server never sees those parameters. Put them before the #.
Does Track Link overwrite UTM tags already in my destination URL?
No. If the destination already has a utm_source or any other parameter, that value is kept, and the same parameter on the short link isn't added.
See it on your own links
Track Link is free to start: sign in with Google or Microsoft, no credit card.