What Is a UTM Parameter?
A UTM parameter is a tag added to the end of a URL that tells your analytics platform where the click came from. UTM stands for Urchin Tracking Module.
A UTM parameter is a tag added to the end of a URL that tells your analytics platform where the click came from. UTM stands for Urchin Tracking Module, the name of the analytics product the convention came from. It is not a cookie, and it identifies nothing about the person clicking. It labels the link, not the visitor.
Why UTM parameters matter
Untagged campaigns do not vanish from your reports. They get misfiled. Analytics platforms infer a source from the referrer the browser sends, and plenty of clicks arrive carrying no referrer at all: email clients, messaging apps, PDFs, native mobile apps. Those sessions land in Direct, sitting next to the people who typed your domain from memory.
The distortion runs one way. Direct inflates, the channel that earned the visit gets nothing, and the next budget decision rests on a number you already know is wrong. It is not recoverable later either. A session recorded without a source keeps that gap permanently, because there is no field to go back and fill. Tagging is the one part of attribution you fully control, which is why it deserves settling before anyone argues about models. If you want to see where your traffic really came from, the tagging has to be clean first.
How the tags are read
A UTM parameter lives in the query string, after the question mark, as a key and a value joined by an equals sign. Five keys are conventional. Three of them do the real work.
- utm_source. The named origin of the click: newsletter, linkedin, partner-site. One value per platform, spelled identically every time you use it.
- utm_medium. The type of channel: email, cpc, social, affiliate. Channel grouping is built on this field, which makes it the one you cannot afford to improvise.
- utm_campaign. The initiative a link belongs to, so several sources roll up into one activity rather than scattering.
- utm_term. The paid keyword, used when you tag search ads manually instead of relying on the ad platform’s own auto-tagging.
- utm_content. The variant, used to separate two links that sit in the same email or the same ad unit.
- The handoff. On arrival the values are read straight from the URL and attached to the session as its acquisition data. Everything the visitor does afterwards inherits that label, which is exactly how GA4 stores acquisition data for the rest of the visit.
Values are case-sensitive and nothing is corrected for you. The platform records what it is given, then groups it against rules you did not write.
| What you tag | What it becomes in reporting |
|---|---|
| utm_medium=email | Groups cleanly into the Email channel |
| utm_medium=newsletter | Falls outside the default rules and shows as unassigned |
| utm_source=Facebook plus utm_source=facebook | Two rows, one campaign, both totals wrong |
| utm_medium=cpc on an unpaid post | Paid performance you never bought |
A tagging sheet agreed once, and used to generate every link, prevents nearly all of this. Typing tags into the address bar creates all of it.
The blunt version
Never put UTM parameters on your own internal links. Google’s Analytics documentation says the same thing, and marketing teams do it anyway, usually with the best intentions.
Here is the mechanism. Someone arrives from an organic search result. They click a homepage banner tagged utm_source=homepage and utm_medium=banner. The campaign values on that internal click replace the acquisition data already attached to the session, so the visit stops being credited to organic search and starts being credited to your banner. The channel that actually brought the person in has been overwritten by a link on a page they had already reached.
Repeat that across a site and the reporting turns self-congratulatory. Banners, promo strips and nav modules appear to drive conversions. Search, email and paid all shrink, because every one of their sessions gets relabelled somewhere along the journey. Nobody has lied. The measurement is crediting the last internal nudge instead of the thing that produced the visitor, and you are now paying to optimise your own furniture.
Tag links that point at your site from somewhere else. Tag nothing between your own pages. If you genuinely need to know which internal module gets clicked, that is an event, not a campaign, and it belongs in a different report. Learning how to read a reporting dashboard tends to start here.
Example
Say a retailer emails 40,000 subscribers about an early-access sale. The email links carry utm_source=newsletter, utm_medium=email and utm_campaign=early-access, and the landing page converts well. So far the data is honest. Then someone tags the site-wide banner promoting the same sale with the same campaign name, because knowing how many people clicked it seemed useful. Within a day, sessions that began in paid search, organic and the email itself are all being relabelled as they move through the site. The campaign report now shows one enormous internal source and three real ones quietly shrinking. Nothing is broken. The tags did precisely what they were built to do, in the wrong place.
FAQ
Do UTM parameters affect SEO?
Only when you point them at yourself. A tagged URL is a distinct URL, so internal links or sitemap entries carrying UTMs create crawlable duplicates of pages you already have. Inbound tagged links are fine, because Google consolidates them to the canonical version. Keep the tags out of your own markup and there is nothing to fix.
Are UTM values case-sensitive?
Yes, and it costs teams a row in the report every time. utm_source=Newsletter and utm_source=newsletter are two separate entries, splitting a single campaign into two half-totals. Nothing warns you that it happened. Choose lowercase, write the rule into a shared tagging sheet, and build every link from that sheet.
Which UTM parameters do I actually need?
Source, medium and campaign. Those three carry the reporting weight, and medium matters most because channel grouping depends on it. Term and content are refinements for paid keywords and creative variants, useful only when you will genuinely analyse them. If you cannot explain a value to a colleague in one sentence, drop it.
Related terms
- Semantic Chunking — how retrieval systems cut a page up, which decides what can be quoted from it.
- GPTBot — one of the crawlers filling your access logs, and a very different question from attribution.
- Google Analytics (GA4) — the platform that reads these tags and turns them into channel reports.
If your campaign report says your own homepage is one of your best traffic sources, you have tagged your internal links. Strip them, wait a fortnight, and watch the credit move back to whatever was really doing the work.