UTM parameters that actually matter for short links

Five UTM fields exist; only four matter. Honest naming patterns that keep your campaign data clean for short links across email, social, and print.

May 8, 2026 11 min read Linked.Codes
UTM parameters that actually matter for short links

UTMs are the small text additions glued onto the end of a URL — ?utm_source=newsletter&utm_medium=email&utm_campaign=spring-launch — that tell your analytics tool where a click came from. Five UTM fields exist in the standard. Most posts on the topic explain all five with equal weight, which is misleading because in practice only four matter, two carry almost all the information, and one is universally misused.

This post covers what each parameter is actually for, the naming patterns that keep multi-channel data clean, the mistakes that quietly corrupt your reports, and the patterns that make UTMs useful with short links specifically. By the end you'll know how to tag a campaign once and have the data still make sense six months later when you've forgotten what utm_content=v3 meant.

What each UTM parameter is for

UTM stands for Urchin Tracking Module, named after Urchin Software — the analytics company Google bought in 2005 to build what became Google Analytics. The five fields, in priority order:

  • utm_source — where the link is shared. Examples: newsletter, twitter, linkedin, partner-blog, print-magazine.
  • utm_medium — the type of channel. Examples: email, social, cpc, print, referral.
  • utm_campaign — the marketing initiative the link is part of. Examples: spring-launch, q2-pricing-test, affiliate-2026.
  • utm_content — distinguishes between multiple links inside the same campaign — usually for A/B tests or different placements. Examples: header, footer, red-button, variant-b.
  • utm_term — paid search keyword (legacy). Used almost exclusively by Google Ads.
Anatomy of a UTM-tagged URL Anatomy of a UTM-tagged URL linked.codes/p/sale ? utm_source=email & utm_medium=newsletter & utm_campaign… destination URL where the click came from channel type marketing initiative Required for clean data: utm_source, utm_medium, utm_campaign Optional, A/B-test only: utm_content (placement / variant) Mostly ignored today: utm_term (Google Ads paid search keyword)
Three parameters carry the signal. utm_content matters when you A/B test. utm_term is a legacy field — leave it alone unless you run paid search.

The order matters because it reflects how analytics tools group data. Source plus medium together becomes the "channel" dimension in Google Analytics. Campaign overlays a time-bounded view. Content gives you variant-level attribution inside that. Term gives you paid-search keyword granularity if (and only if) you run paid search.

What to fill in and what to skip

The honest list, by use case:

Always fill in: utm_source, utm_medium, utm_campaign. These three are the minimum that makes the click attribution meaningful. Skip any of them and the click ends up in your "(not set)" or "direct" bucket, which is the data graveyard. If your tags survive the redirect but the destination still reports "(direct)" traffic, the short link debug guide on UTM stripping walks through the apps and extensions that quietly drop query parameters between the click and the page view.

Fill in for tests: utm_content. Use this when you have two or more links in the same campaign, in the same source, in the same medium, and you want to tell them apart. Header vs footer link in the same email. Red button vs blue button in the same ad. Article variant A vs variant B in the same A/B test.

Skip unless paid search: utm_term. The original definition was the keyword someone searched for. Modern paid platforms autopopulate this from the keyword that triggered your ad. Setting it manually for non-paid-search clicks just confuses the data. Leave the field empty for organic, social, email, and print.

Naming patterns that keep data clean

The single biggest mistake teams make is inconsistent naming. The same medium gets typed three ways — email, Email, and e-mail — and the analytics tool treats all three as separate channels. Six months later your "email" report shows 30% of the traffic because the other 70% is hiding under capitalisation variants.

Three rules that solve 90% of this:

  1. Lowercase everything. Always. UTM values are case-sensitive on the analytics side. Twitter and twitter are different channels.
  2. Use hyphens, not spaces. spring-launch not spring launch (the URL encoder will turn the space into %20 and the value reads as spring%20launch in reports — ugly, but more importantly, prone to typos).
  3. Pick one vocabulary and stick with it. Either social or social-media, never both. Either paid or cpc, never both. Either linkedin or li, never both.

The second-biggest mistake is putting variable data into utm_campaign. Your campaign is the marketing initiative — spring-launch, q2-pricing-test. It is not the date you ran the link, the customer's email address, or a session ID. UTM values become permanent dimensions in your analytics database. Putting unique values in there blows up your dashboard with millions of one-click "campaigns".

UTM tagging conventions across channels Common conventions by channel CHANNEL utm_source utm_medium utm_campaign Newsletter newsletter-2026-05 email spring-launch Twitter post twitter social spring-launch Google Ads google cpc spring-launch Print magazine vogue-2026-05 print spring-launch
Same campaign across four channels. utm_campaign stays constant; source and medium change. Notice the issue-specific source for newsletter and print — that's how you A/B issues without polluting the campaign field.

Here's where short links matter to UTM hygiene. A short link redirects from linked.codes/p/sale to whatever long URL you set, and the long URL can carry UTMs. There are two patterns:

Pattern A — UTMs on the long URL only. The short link is clean (/p/sale); the redirect destination has the UTMs (https://example.com/landing?utm_source=...). Pros: the printed or shared short link looks clean and shareable. Cons: every click on a given short link gets the same UTMs, so you can't differentiate by where the short link was shared.

Pattern B — UTMs on the short link's query string. The short link picks up UTMs from the inbound URL and forwards them to the destination. Same /p/sale short link, but linked.codes/p/sale?utm_source=twitter vs ?utm_source=newsletter lets the same short link carry different attribution per share. Pros: one short link, many channels. Cons: the URL is ugly to share manually.

For most marketing use, Pattern A wins for printed and broadcast channels (one channel = one set of UTMs = one short link), and Pattern B wins for digital share where the URL gets shared by multiple parties. Linked.Codes supports both — set UTMs on the destination URL via the link editor, or pass them in the inbound short URL and they'll forward through. If your site runs WordPress, double-check the parameter-passing settings: the URL shortener for WordPress comparison covers a Pretty Links default that quietly strips inbound UTMs unless you flip a checkbox.

A short link without UTMs is a measurement decision, not a default. Decide deliberately whether the click counts as channel-attributed or just "direct".

A UTM URL builder

Plug in your channel details. The widget produces a clean URL with the right encoding so you can paste it into your link editor or shorten it.

The widget normalises capitalisation and replaces spaces with hyphens — both common manual mistakes. If you're tagging more than a handful of URLs in a week, set up the same normalisation in your link tool's defaults so the team can't fight the convention.

Tag your campaigns once. Use the same short link across email, social, and print, with channel-aware redirects.

See how short links handle UTMs
Two patterns for UTMs with short links Where to put the UTMs — two patterns Pattern A — UTMs on the destination only linked.codes/p/sale → redirects to example.com/landing?utm_source=… Clean printable short link · one channel attribution per short link · best for print/broadcast Pattern B — UTMs on the inbound short link, forwarded linked.codes/p/sale?utm_source=twitter → forwards UTMs to destination
Pattern A keeps the printed short link clean — one channel per short link. Pattern B lets one short link carry different attribution across digital shares.

Common mistakes that quietly corrupt data

Five issues that show up in almost every UTM audit:

  1. Inconsistent capitalisation. Email vs email. Fix at the source — normalise on tag-creation.
  2. Spaces in values. spring launch becomes spring%20launch. Fix by hyphenating.
  3. Date or session data in utm_campaign. q2-pricing-test-2026-05-15-bob@example.com is not a campaign; it's a unique row. Use date prefixes only when needed for grouping (q2-spring-launch).
  4. Missing utm_medium. Causes Google Analytics to report the click as "(not set)" — the data hole everyone ignores until they realise it's 25% of their traffic.
  5. Tagging your own internal links. A click from your homepage to your pricing page does not need UTMs; tagging it overwrites the original referrer attribution and hides the actual source. Only tag external-to-internal traffic.

The audit tool: open Google Analytics, look at the Source/Medium report, and scroll through the values. Anywhere you see two variants of the same name (twitter and Twitter, email and e-mail) is a corruption point. Fix the templates that are producing them; you can't retroactively merge the old data without exporting and reprocessing.

When NOT to use UTMs

Three cases where adding UTMs hurts:

  • On organic-search click destinations. Your ranking pages should not carry UTMs in their canonical URL — Google indexes the URL with parameters, you create duplicate-content issues, and the resulting clicks get attributed as "campaign" rather than "organic search". Strip UTMs from canonical URLs.
  • On internal navigation. Already covered above — UTMs are for external-to-internal attribution.
  • On forms or paywall checkout pages. UTM-tagged URLs in form actions can interfere with form submission and analytics integrations that expect a clean POST URL. Pass UTMs as hidden form fields if you need to track form-completion attribution.

Attribution windows and last-click bias

UTMs encode a single click moment, but most analytics tools attribute conversions on a last-click basis by default — so the conversion that happened a week after the email click gets credited to whatever click happened immediately before the conversion, which might be a direct visit. Two implications worth knowing.

First, UTMs only capture the first interaction. If a reader clicks your newsletter link, browses for a few minutes, leaves, and returns later via a Google search, the second visit overwrites the email attribution in last-click models. The fix isn't UTM-side — it's switching to a multi-touch attribution model in your analytics tool, or accepting that single-touch UTM data is a directional signal rather than ground truth.

Second, the default 30-day attribution window in Google Analytics 4 means UTM tags from a click 31 days ago no longer get credit for the conversion. For B2B campaigns with long sales cycles, the GA4 default underreports your top-of-funnel UTM channels. Extend the window to 90 days if your customers take a month or more to buy.

For short links specifically, the click-to-conversion gap is where attribution gets thin. The short link knows the click happened; the destination's analytics either credit it correctly (if the UTMs forward) or lose it (if the user navigated away and returned later). Belt-and-braces tagging — UTMs on the short link's destination plus a campaign-specific landing page that sets a tracking cookie — is the most defensible setup for cross-session attribution.

What's the difference between utm_source and utm_medium?

utm_source is where the link is shared (newsletter, twitter, partner-blog). utm_medium is the type of channel (email, social, referral). One news website is a source; the medium it sits in is referral. Don't put the same value in both.

Are UTM parameters case-sensitive?

Yes. Google Analytics treats Email and email as two separate values. Standardise on lowercase across all your tagging — the easiest convention to remember and the one most analytics dashboards already assume.

Will UTMs in my URLs affect my SEO?

Only if you fail to set canonical tags. Search engines index the URL with parameters; if your canonical points to the unparameterised URL, the parameters become harmless. If you don't set canonicals, you risk duplicate-content treatment.

Can I use a fifth UTM parameter for something custom?

The standard defines five fields and most analytics tools only recognise those five. Adding a custom utm_xyz field works in Google Analytics 4 if you configure a custom dimension to capture it, but it won't show up in default reports. Easier to use utm_content for the secondary attribute.

How do UTMs interact with link shorteners?

The shortener stores the destination URL (with UTMs) and redirects to it. The UTMs reach the destination as if the user had typed them. Some shorteners also let you pass UTMs through the short URL itself, which forwards them dynamically — useful when one short link gets shared across multiple channels.

Do I need utm_term anymore?

Almost never. utm_term was for paid-search keyword attribution and Google Ads autopopulates it now. Setting it manually for organic, social, or email links creates noise without value. Leave it empty unless you run paid search and have a reason to override autopopulation.

What's the maximum length of a UTM URL?

HTTP URLs have no hard maximum, but most browsers and servers handle URLs up to about 2,000 characters reliably. UTMs typically add 100 to 200 characters total — well under any practical limit. The bigger issue is shareability; long URLs are uglier in print or social. That's where short links earn their keep.

Sourcesshow citations

Try it on your own domain

Branded short links and dynamic QR codes, on your subdomain or your own domain. One-time purchase, no per-click fees.