What are UTM parameters?
UTM parameters are short tags you append to a URL's query string. When someone clicks the tagged link, your analytics tool (Google Analytics 4, Plausible, Fathom, Umami, and most others) reads the tags and attributes the visit to a specific source, channel, and campaign — instead of lumping it into "direct" or a vague referrer.
For indie makers this answers the question that actually matters: of all the places you posted your product — X, your newsletter, Product Hunt, a GitHub README — which one is actually driving traffic and signups? Tag each link differently and your analytics will tell you.
The 5 UTM parameters
| Parameter | Required? | What it identifies | Example |
|---|---|---|---|
| utm_source | Yes | The specific place the click comes from — a site, platform, or newsletter name. | twitter, producthunt, newsletter |
| utm_medium | Yes | The type of channel. Keep this to a small, consistent set so channels group cleanly in reports. | social, email, referral, cpc |
| utm_campaign | Recommended | The specific push or promotion the link belongs to, so you can compare campaigns over time. | launch-week, v2-release |
| utm_term | Optional | The paid search keyword. Mostly relevant if you run search ads; skip it otherwise. | link-in-bio-tool |
| utm_content | Optional | Which variant of a link was clicked — useful when one email or page contains several links to the same URL. | header-cta, footer-link |
UTM best practices
- Always use lowercase. Most analytics tools are case-sensitive, so "Email" and "email" split into two rows and quietly wreck your reports.
- Pick one naming convention and stick to it. "twitter" vs "x" vs "twitter.com" are three different sources — decide once and keep a shared list of the names you use.
- Use dashes instead of spaces in values (launch-week, not "Launch Week") so URLs stay readable and consistent.
- Never put UTM parameters on internal links within your own site. Clicking one restarts the visitor's session and overwrites the real acquisition source.
- Keep utm_medium to a handful of standard values (social, email, referral, cpc) and put the specifics in utm_source and utm_campaign instead.
Frequently asked questions
Do UTM parameters hurt SEO?
Not by themselves — but search engines can treat a tagged URL as a separate page from the untagged one. Use UTM links only in external campaigns (posts, emails, ads), never in internal navigation, and make sure your pages declare a canonical URL. That's the whole fix.
What's the difference between utm_source and utm_medium?
utm_source is the specific place the click came from (twitter, producthunt, your newsletter's name). utm_medium is the kind of channel it represents (social, referral, email). Together they read like a sentence: traffic from source "twitter", via medium "social".
Where do I see the data from my UTM links?
In whatever analytics tool your site already uses. In Google Analytics 4 it's under Reports → Acquisition → Traffic acquisition; privacy-friendly tools like Plausible, Fathom, and Umami show UTM breakdowns in their Sources or Campaigns views. No extra setup is needed — the tags are read automatically.
Are UTM parameters case-sensitive?
Yes, in most tools. "Twitter", "twitter", and "TWITTER" show up as three separate sources. The convention that saves you: lowercase everything, always. This builder warns you when it spots uppercase.