Skip to content
Browse tools

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 handWhat the report showsShould have been
utm_source=Newslettera separate source rowutm_source=newsletter
utm_source=newsletterthe 'real' rowutm_source=newsletter
utm_medium=Emaila separate medium rowutm_medium=email
utm_campaign=October Launchtruncated at the spaceutm_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

  1. Everything lowercase. Always.
  2. Hyphens inside a value, not spaces and not underscores: october-launch, not October Launch.
  3. Use all five parameters deliberately, and leave the ones you do not use out entirely rather than sending them empty.
  4. utm_medium describes the channel type and is drawn from a fixed short list you control — email, cpc, social, referral — never free text.
  5. 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.

Spotted something wrong in these numbers? Tell us — corrections are the fastest thing we ship.