Four ways UTM tracking silently breaks, and the naming rules that prevent it
Campaign tracking rarely fails loudly. It splits one campaign into three rows and credits the wrong source. The four causes, and the rules that stop them.
By X Centrix AIMarketing Analytics5 min read
UTM tracking fails quietly, which is why it goes unnoticed
A broken analytics tag throws an error or sends nothing, and you find out within a day. Broken UTM tagging does the opposite: it reports success. The visits arrive, the dashboard fills up, and the numbers are wrong in a way that looks like real data.
Four causes account for most of it. None of them announce themselves.
One: case sensitivity splits a single campaign into several
utm_source=Newsletter and utm_source=newsletter are different values. So are Email, email and EMAIL. When different people build different links by hand, all three spellings end up in the wild, and the report shows three sources that are actually one.
The damage compounds. You look at the newsletter row, see weak performance, and conclude the newsletter is underperforming — when a third of its traffic is sitting in two other rows you did not notice.
Lowercase every UTM value. Always. It costs nothing, removes an entire class of error, and there is no legitimate reason to use capitals in a parameter that is only ever read by a machine.
Two: UTM parameters on your own internal links
This one is subtle and expensive. Campaign parameters are session-scoped: the most recent tagged link is what the session gets credited to.
Put a tagged link in your own navigation, or in an email footer pointing at your own homepage, and a visitor who arrived from an organic search will have that original source overwritten. The credit moves to your internal link. Your organic traffic figure drops, a new self-referral source appears, and the campaign that actually brought the visitor is recorded as having lost them.
- Never tag a link that points at your own domain from your own site.
- Never tag the links inside your email signature or your own footer.
- Only tag a URL when it is the destination a stranger arrives at from somewhere else.
If you have already done this, look for a referral source in your reports matching your own domain. That entry is the fingerprint.
Three: the redirect, the wrapper and the in-app browser
A tag only survives to the destination if every hop preserves the query string. Several ordinary things do not:
- A 301 redirect that builds its target URL from the path alone drops everything after the
?. - Email platforms and some shorteners wrap your link in their own tracking URL. If the wrapper is misconfigured, your parameters are lost and only theirs remains.
- Some in-app browsers open links through an intermediate viewer that strips parameters before handing the URL on.
The test is straightforward and takes a minute: click your own tagged link from the real place you are publishing it, and look at the address bar on arrival. If the parameters are gone, the link was the problem, not the analytics. Doing this once per channel before a campaign costs less than diagnosing it afterwards.
Four: encoding differences
A space in a URL is not legal, so it gets encoded. The trouble is that it can be encoded two ways: %20 or +. Different tools pick differently, and a parameter built by a tool that chose one will not match a report assembled from the other.
The same problem appears with capital letters in values, accented characters, and unescaped ampersands — the last of which is the worst, because an unescaped & ends the parameter and silently starts a new one, truncating your campaign name mid-value.
Avoid the question entirely: use lowercase letters, digits, hyphen and underscore in UTM values, and nothing else. Every argument about encoding then disappears before it starts.
A messy campaign, cleaned up
Illustrative. This is what three people independently building links for the same October newsletter produces, and what it should have been.
| Built by hand | What the report shows | Should have been |
|---|---|---|
| utm_source=Newsletter | a separate source row | utm_source=newsletter |
| utm_source=newsletter | the 'real' row | utm_source=newsletter |
| utm_medium=Email | a separate medium row | utm_medium=email |
| utm_campaign=October Launch | truncated at the space | utm_campaign=october-launch |
Four links, four sources of fragmentation, one campaign. The fix is a written convention plus one person who builds the links — the convention alone tends to decay the moment someone is in a hurry.
The convention worth writing down
- Everything lowercase. Always.
- Hyphens inside a value, not spaces and not underscores:
october-launch, notOctober Launch. - Use all five parameters deliberately, and leave the ones you do not use out entirely rather than sending them empty.
utm_mediumdescribes the channel type and is drawn from a fixed short list you control — email, cpc, social, referral — never free text.- One canonical builder. A tool that lowercases, slugifies and encodes for you removes the human step that causes all four failures above.
Build the link correctly the first time
The UTM Campaign URL Builder lowercases and slugifies every value, drops empty parameters rather than sending blanks, encodes what needs encoding, and shows you the finished URL with the parameters separated so a truncated campaign name is visible before you publish rather than after.
What good tracking still cannot tell you
Correct tagging tells you where a visit came from. It does not tell you whether the visit was worth having, and it says nothing about what happened after the click. A campaign can be perfectly attributed and still be a bad campaign — which is the question the reports will not answer for you.
Frequently asked questions
Are UTM parameters case sensitive?
The values are compared as written, so Newsletter and newsletter are different sources. Treat every value as case-sensitive and lowercase all of them, which removes the problem permanently.
Should I use UTM parameters on internal links?
No. Because the parameters are session-scoped, a tagged internal link overwrites the source that genuinely brought the visitor. Tag only links a visitor follows to arrive at your site from somewhere else.
What is a self-referral and why does it appear?
It is your own domain showing up as a traffic source. Usually it means a tagged or mishandled link on your own site is starting a new session and claiming credit from wherever the visitor actually came from.
Do UTM parameters hurt SEO?
Not on their own. Search engines handle query parameters and rely on canonical tags. The real risk is the reporting one: tagging internal links fragments your own attribution badly enough to mislead you about what search is delivering.
Read next
- Advertising & Monetisation · 5 min readCPM vs RPM: why your ad revenue never matches the CPM you were quoted
- Social Media · 5 min readEngagement rate vs reach: the number your client is actually asking about
- Pricing & Profit · 5 min readMarkup vs margin: the difference that costs money at discount time
Spotted something wrong in these numbers? Tell us — corrections are the fastest thing we ship.