← All guides

Marketing · 8 min read · Updated June 10, 2026

What Are UTM Parameters? A Practical Guide for Marketers

UTM parameters are short tags added to the end of a URL that tell your analytics tool exactly where a click came from. Without them, a visit from your email newsletter, a paid search ad, and a partner's blog post can all show up as the same anonymous "direct" or "referral" traffic — and you have no honest way to compare what is working.

This guide explains what each of the five parameters does, the naming conventions that keep reports usable, how tools like Google Analytics 4 actually read the tags, and the situations where adding UTM parameters does more harm than good.

What are UTM parameters?

UTM stands for Urchin Tracking Module, a naming leftover from Urchin, the web analytics software Google acquired in 2005 and turned into Google Analytics. UTM parameters are ordinary query-string parameters — key-value pairs that come after a ? in a URL — with five standardized names that analytics tools recognize: utm_source, utm_medium, utm_campaign, utm_term, and utm_content.

Here is a concrete example. Suppose you are promoting a spring sale page in your email newsletter. The plain URL is https://example.com/spring-sale. The tagged version looks like this:

https://example.com/spring-sale?utm_source=newsletter&utm_medium=email&utm_campaign=spring-sale-2026

The page that loads is identical — UTM parameters do not change what the visitor sees. They exist purely so that when the visit lands in your analytics, it is attributed to the newsletter, the email channel, and that specific campaign instead of being lumped into a generic bucket. If you want to see how a tagged URL breaks down into its parts, paste it into a URL parser and inspect the query string field by field.

The five UTM parameters explained

Three of the five parameters should be set on every campaign link; the other two are optional refinements. The table below summarizes what each one answers.

The five standard UTM parameters, whether each is required, the question it answers, and typical example values.
ParameterRequired?What it answersExample values
utm_sourceYesWhere did the click come from?google, newsletter, linkedin
utm_mediumYesWhat type of channel was it?cpc, email, social, qr
utm_campaignYesWhich campaign or promotion?spring-sale-2026, launch
utm_termOptionalWhich paid keyword triggered it?url+shortener, link+tracking
utm_contentOptionalWhich ad, link, or creative variant?header-cta, variant-b

The pair people mix up most is source and medium. Source is the specific place; medium is the category of channel. A Facebook ad is source facebook, medium paid-social. A link in your monthly digest is source newsletter, medium email. A flyer QR code might be source print-flyer, medium qr. If you reversed them — medium facebook — your channel report would fragment into dozens of one-off values instead of clean groups like email, paid search, and social.

utm_term exists mainly for paid search, where it records the bid keyword. utm_content is for telling apart two links that share everything else — the button versus the text link in the same email, or creative A versus creative B in the same ad set. If you never run A/B tests or paid search, you may never need either.

Naming conventions that keep reports clean

UTM values are free text, and analytics tools treat them as case-sensitive literal strings. Email, email, and EMAIL become three separate rows in your reports, silently splitting one channel's numbers three ways. A few rules prevent almost all of the mess:

  • Always lowercase. Pick lowercase once and never deviate; it is the convention the rest of the industry already uses.
  • Use dashes or underscores instead of spaces. A space becomes %20 or + after encoding, which is ugly in reports and easy to get inconsistent.
  • Keep a shared vocabulary. Maintain a simple spreadsheet of approved source and medium values so the whole team writes paid-social, not paidsocial, Paid Social, and fb-ads interchangeably.
  • Match medium values to your analytics tool's channel definitions. GA4 groups traffic into default channels using the medium value, so email, cpc, and social slot in automatically while invented values fall into Unassigned.
  • Make campaign names self-explanatory. spring-sale-2026 will still mean something in a report next year; campaign-7 will not.
The single most damaging mistake: never put UTM parameters on internal links between pages of your own site. Clicking a tagged internal link starts a new attributed session in most analytics tools, overwriting the real acquisition source. Reserve UTM tags for links that live outside your site — emails, ads, social posts, partner placements.

Other common mistakes worth checking your existing links for: tagging links with only a source and no medium, stuffing channel information into the campaign field, and forgetting to URL-encode special characters so the value gets cut off at the first stray ampersand.

You can type the parameters by hand, but hand-built URLs are where typos, stray capital letters, and encoding bugs come from. A form-based UTM link builder is the safer default: it validates the destination URL, encodes special characters correctly, and warns you if the URL already carries utm_* values that your new ones would override. For non-UTM parameters — say, a coupon code or an affiliate ID alongside your campaign tags — a generic query string builder handles arbitrary key-value pairs the same way.

  1. Start from the clean destination URL, including https://.
  2. Set utm_source, utm_medium, and utm_campaign using values from your team's shared vocabulary.
  3. Add utm_term or utm_content only if you are tracking paid keywords or creative variants.
  4. Record the finished URL in your campaign tracking sheet so the same campaign never gets tagged two different ways.

Fully tagged URLs get long, and long URLs look bad in social posts, SMS, and print. The usual fix is to shorten the tagged URL: the short link redirects to the full destination, so every parameter still reaches your analytics intact. This is where ReSlug fits — it shortens the campaign URL and reports clicks per link with geo, device, and referrer breakdowns, so you get click counts at the link level on top of the session data your analytics tool records. You can compare what is included on the features and pricing pages, and if you are weighing shorteners more broadly, our best Bitly alternatives comparison covers the field. Teams generating tagged links at scale — one per ad variant, per region, per send — usually script it; the URL shortener API guide walks through creating short links programmatically.

How analytics tools read UTM parameters

When a visitor lands on a tagged URL, the analytics snippet on the page reads the query string and stores the values as attribution dimensions for that session. In Google Analytics 4, utm_source and utm_medium populate the session source and session medium dimensions, utm_campaign becomes the session campaign, and utm_term and utm_content map to the manual term and manual ad content dimensions. GA4 also recognizes newer optional tags such as utm_source_platform and utm_creative_format, though most teams get full value from the original five.

The convention is not Google-specific. HubSpot, Matomo, Mixpanel, Amplitude, and most attribution tools read the same five parameters, which is exactly why UTM tagging became the lingua franca of campaign tracking: tag a link once and every tool in your stack agrees on where the click came from.

One detail worth knowing: attribution models decide which touch gets the credit. A visitor might click your tagged ad on Monday and return directly on Thursday to buy. Depending on the model, the conversion is credited to the ad, the direct visit, or split across both. UTM parameters supply the raw source data; the model decides how it is counted.

When not to use UTM parameters

UTM tags are for measuring campaigns you run. There are several situations where they hurt more than they help:

  • Internal links. As covered above, tagging navigation between your own pages overwrites the visitor's real acquisition source.
  • Links you expect others to copy and share. If a tagged URL gets reposted, every downstream click is misattributed to your original campaign. Share the clean URL, or strip the tags first with a tracking parameter stripper.
  • Indexable pages without canonical tags. If search engines index ?utm_source=... variants of a page, you get duplicate-URL noise; a canonical tag pointing at the clean URL prevents it.
  • Places where the long query string erodes trust. In plain-text emails or chat, a wall of parameters looks like tracking junk — because it is. Use a short link in front of it instead.

The underlying principle: tag the boundary where traffic enters your site from a channel you control, keep everything inside the site clean, and keep the tagged URL out of contexts where it can leak or get copied. Follow that, set a naming convention, and UTM parameters remain one of the highest-leverage habits in marketing measurement — five small tags that turn an undifferentiated traffic graph into an honest comparison of channels.

Frequently asked questions

Do UTM parameters affect SEO?

Not directly — Google does not treat UTM tags as a ranking signal. The indirect risk is duplicate-content noise if search engines index tagged variants of a page. Use UTM parameters only on external campaign links, never on internal links, and set a canonical tag so the clean URL is the one that gets indexed.

What does UTM stand for?

UTM stands for Urchin Tracking Module. Urchin was the web analytics company Google acquired in 2005 and rebuilt into Google Analytics. The parameter names kept the Urchin prefix, which is why campaign tags are utm_source and utm_medium rather than ga_source and ga_medium.

Do UTM parameters still work in Google Analytics 4?

Yes. GA4 reads the five classic parameters and maps them to session source, session medium, session campaign, manual term, and manual ad content dimensions. GA4 also added optional newer tags such as utm_source_platform and utm_creative_format, but the original five remain the core of manual campaign tagging.

Should I use UTM parameters on internal links?

No. When a visitor clicks a UTM-tagged link between pages of your own site, most analytics tools start a new attributed session and overwrite the original traffic source, so you lose the real acquisition data. Reserve UTM tags for links that point at your site from somewhere else, like emails, ads, and social posts.

Keep reading