What UTM parameters are

UTM parameters are short tags added to the end of a URL that record where the traffic came from. When someone clicks a tagged link, the analytics tool on the landing page reads the tags and credits the visit to a source, a channel, and a campaign. That is the entire mechanism - the tags do nothing to the page itself; they exist purely so the click carries its own origin story.

The name is a fossil. UTM stands for Urchin Tracking Module, after Urchin - the web-analytics company Google acquired in 2005, whose product became Google Analytics. The trace lingered for years: early Google Analytics pages loaded a tracking script literally named urchin.js. Urchin itself was retired in 2012, but its five little parameters became the de facto standard the whole industry still uses, far beyond Google's own tools.

Why it matters is one question: which of your links actually work? Without tags, a visit from a newsletter, a LinkedIn post, and a paid ad can all look the same. With tags, each arrives labeled.

Anatomy of a tagged link

UTM tags ride in the URL's query string - the part after the ?, made of key=value pairs separated by & (the full anatomy is in What is a URL?). A fully tagged link looks like this:

https://example.com/?utm_source=linkedin
                    &utm_medium=social
                    &utm_campaign=spring_launch

Two properties make this design work:

  • The page does not change. The server returns the same page with or without the tags. They are metadata about the click, not instructions to the site.
  • The values are just strings you define. There is no registry and no validation. utm_source=linkedin means whatever your team decides it means - which is exactly why naming discipline matters (section 05).

You rarely type these by hand. Campaign URL builders - Google's own, or the link shorteners that add tags for you - assemble the query string from a form, which also keeps typos out.

The five parameters

Five standard parameters, from most used to least. The first three answer where, how, and why; most links need only those.

  • utm_source - where the traffic originates: google, linkedin, newsletter. The referrer, named by you.
  • utm_medium - the channel type: cpc (paid clicks), email, social, referral. Sources fit inside mediums: LinkedIn is a source; social is the medium.
  • utm_campaign - the specific push the link belongs to: spring_launch, black_friday_2026. Lets you compare one effort across every channel it ran on.
  • utm_term - the paid keyword that triggered the ad. Mostly meaningful in search advertising; rarely used elsewhere.
  • utm_content - distinguishes variants of the same placement: two buttons in one email, an A/B test of ad creative, header_cta vs footer_cta.

The three-parameter habit - source, medium, campaign on every outbound link you control - is the whole game for most teams. Term and content earn their place only once you are optimizing inside a channel.

How attribution works

The flow, end to end: you publish a tagged link. Someone clicks it. Their browser requests the landing page, tags and all. The analytics script on that page - GA4's gtag.js, or any other tool - reads the query string, finds utm_ parameters, and stores the visit's session attributed to that source, medium, and campaign. Everything the visitor does next - pages read, sign-ups, purchases - is credited back to the link that brought them.

That last part is the payoff. Attribution is not about counting clicks; it is about connecting outcomes to origins. "The newsletter drove 40% of sign-ups this month" is a sentence you can only say if the newsletter's links were tagged.

The honest limits: attribution follows the click. A link forwarded from a tagged email keeps its email tags even though the second reader never saw the email. A link copied from a browser bar and pasted into chat carries its tags along too. UTM data is directionally excellent and precisely wrong - treat it as a strong signal, not an audit trail.

Naming is the hard part

Because the values are free-form strings, the failure mode is not technical - it is inconsistency. Analytics tools treat values as case-sensitive, so these are three different sources in your reports:

utm_source=LinkedIn
utm_source=linkedin
utm_source=Linked-In   # three names, one platform, split reporting

The fix is a naming convention, decided once and written down:

  • Lowercase everything. Removes the whole class of case-split duplicates.
  • Underscores, not spaces. Spaces become %20 in URLs and read badly in reports.
  • Keep one list of allowed values. A shared sheet of sources and mediums beats every person inventing their own.

And one rule that outranks the others: never put UTM tags on internal links - links from one page of your site to another. Clicking an internally tagged link starts a new attributed session and overwrites the visitor's real origin. Tags belong on links that point into your site from outside: emails, posts, ads, partner pages.

Where UTM meets search

This article sits in the search series for a reason: search engines and analytics tools read the same URL, for different jobs. The engine reads the path to identify the page; analytics reads the query string to identify the click. Usually they coexist fine - but there is one collision worth knowing.

To a crawler, /launch and /launch?utm_source=linkedin are two different URLs with identical content. If tagged links get crawled and indexed, the duplicates can dilute the page's standing - the crawl-vs-index distinction from robots.txt and sitemaps, biting from a new angle. The standard fix is a canonical tag on the page, declaring the clean URL as the one that counts:

<link rel="canonical" href="https://example.com/launch">

With that in place, every tagged variant folds its credit back into the canonical page, analytics keeps its attribution, and the index stays clean. One line, both systems happy.

The other UTMs

The acronym is overloaded, so a quick disambiguation before you search for more: Universal Transverse Mercator is a geographic coordinate system for maps, and UTM is also an open-source virtual machine app for macOS and iOS. Neither has anything to do with links or analytics. In a web context, UTM almost always means the tracking parameters covered here.