Open your analytics and look at the traffic sources. If most of it says “direct” or “(not set)”, you have a tracking problem, not a traffic problem. Links shared in email, WhatsApp, PDFs, QR codes and most apps arrive with no referrer, so analytics has no idea a newsletter or a print flyer sent that visitor. UTM parameters fix that by putting the source information into the URL itself, where nothing can strip it.
This guide explains the five parameters, gives a naming convention that will still make sense in a year, and shows how to build tagged links without typos using the Campaign URL Builder.
What a UTM link looks like
https://example.com/pricing/?utm_source=newsletter&utm_medium=email&utm_campaign=spring-sale&utm_content=header-button Everything after the ? is ignored by the page and read by Google Analytics (and most other analytics platforms) when the visit lands. The visitor sees the same page they would have seen without the tags.
The five parameters
| Parameter | Required | Answers | Examples |
|---|---|---|---|
utm_source | Yes | Where did the click come from? | newsletter, facebook, partner-blog, google |
utm_medium | Yes | What kind of channel? | email, social, cpc, referral, qr |
utm_campaign | Yes | Which campaign or promotion? | spring-sale, launch-2026, weekly-digest |
utm_content | No | Which link or creative, when one campaign has several? | header-button, footer-text, banner-a |
utm_term | No | Which paid keyword? (Search ads only) | running+shoes |
Google Analytics 4 also recognises utm_id, utm_source_platform, utm_creative_format and utm_marketing_tactic, but the original five cover almost every real need.
Source vs. medium: the distinction people get wrong
Medium is the category; source is the specific place within it. Email is a medium; your Mailchimp newsletter is a source. Social is a medium; LinkedIn is a source. If you keep that hierarchy, GA4’s default channel grouping will file your traffic correctly: medium=email lands in the Email channel, medium=cpc in Paid Search, medium=social in Organic Social. Use a made-up medium like utm_medium=linkedin and the traffic drops into “Unassigned”, which is where good data goes to die.
A naming convention that survives
UTM values are case-sensitive and analytics treats Newsletter, newsletter and NewsLetter as three different sources. Agree these rules with everyone who creates links:
- Lowercase only.
- Hyphens, not spaces or underscores, between words. Spaces become
%20in URLs and look broken in reports. - Campaign names start with a date or period when they recur:
2026-03-newsletter, not justnewsletter. - Keep a shared spreadsheet of every link built, with the date, the destination and who made it. This is the single habit that separates clean reports from chaos.
- Never tag internal links. A UTM link from your homepage to your pricing page starts a new session and overwrites the real original source.
Where UTMs are worth using
- Email newsletters and automated sequences. Every link. Most email platforms can append them automatically once you set the pattern.
- Social posts and bios. Especially Instagram and TikTok bio links, which are otherwise pure “direct”.
- Paid campaigns on platforms without auto-tagging. Google Ads auto-tags with
gclid; Meta, LinkedIn, Reddit and most others do not. - Offline: QR codes, print, podcasts. A tagged short link on a poster is the only way to measure it. Pair it with the QR Code Generator.
- Partner and affiliate placements. Give each partner their own
utm_source.
Where they are not worth using: links from your own site to your own site, and links you post organically to a platform that already sends a referrer, unless you need campaign-level detail.
Building links without mistakes
Hand-typing UTM strings produces a steady trickle of errors: a missing ?, an & typed as &, a stray space, a second ? on a URL that already had a query string. The Campaign URL Builder takes the destination and the five values as separate fields, encodes them correctly, handles URLs that already contain parameters, and returns a link you can copy or shorten. Build the link there, paste it into your spreadsheet, then into the campaign.
Before sending, click the link yourself and open GA4 → Reports → Realtime. Your own visit should appear within seconds under the source/medium you set. If it shows as direct, the parameters were stripped somewhere, usually by a redirect on the destination that drops the query string.
Reading the results in GA4
Go to Reports → Acquisition → Traffic acquisition and change the primary dimension to Session source / medium or Session campaign. Add Session manual ad content as a secondary dimension to see utm_content. For a permanent view, build a free-form Exploration with source, medium, campaign and content as rows and conversions as the metric; it becomes the report you actually look at every week.
Frequently asked questions
Do UTM parameters affect SEO?
Not if you handle them properly. Make sure the tagged page’s canonical tag points at the clean URL, which every major CMS does by default, and Google will consolidate the variants. Do not put UTM links in your sitemap or in internal navigation.
Can I use UTM links with a URL shortener?
Yes, and you should for anything printed or spoken. The shortener redirects to the full tagged URL, so the parameters survive.
Why does my UTM traffic show as “direct”?
Usually a redirect dropped the query string, the parameters were misspelled (utm_sourse), or a link was opened in an app’s in-built browser that strips them. Test every link in Realtime before launch.
Is utm_term only for Google Ads?
It was designed for paid search keywords, but nothing stops you using it for anything else. Just be consistent so reports stay readable.
Free, runs in your browser, nothing uploaded, no sign-up.
Keep reading
More from SEO & Website Tools.



Tools for this job
Free, in your browser, no sign-up.