Home/ Guides/ UTM best practices

Guide · Campaigns

UTM best practices that keep attribution honest.

UTMs are simple to add and easy to get subtly wrong — and a wrong UTM doesn't error, it just quietly misattributes traffic for months. Nine rules that keep your campaign data clean, the mistakes that wreck it, and a pre-flight checklist to run before any link ships.

Updated June 22, 2026 · by slsh.me

In one line

Tag inbound campaign links only, name them consistently, and never tag your own internal links.

Everything below follows from that. UTMs answer "which external campaign sent this visitor?" — so they belong on emails, ads, social posts and partner links, written from one fixed taxonomy in lowercase, and they must never appear on links between pages of your own site (that overwrites the real source). Get those three right and the rest is hygiene.

The fastest way to follow every rule below is to stop hand-typing tags: the free slsh.me UTM builder normalises casing and encoding for you, and a slsh.me short link hides the long tagged URL while logging every click. Already shipped some links? Run one through the UTM parser to confirm it's clean.

The nine best practices.

In rough order of how often each one is the thing that breaks a report.

1

Tag only inbound, cross-domain links

UTMs belong on traffic arriving from somewhere else — email, ads, social, partners, QR codes. That's the entire job: telling you which external source sent the visitor.

2

Never tag internal links

A UTM on a link between two pages of your own site starts a new session and overwrites the original source. A visitor from Google suddenly looks self-referred. Never put UTMs on internal navigation.

3

Lowercase everything, hyphens not spaces

Values are case-sensitive exact strings. Facebook and facebook are different rows. Pick lowercase, join words with hyphens, and never use spaces. (Full detail in the naming convention guide.)

4

Keep source, medium and campaign in their lanes

Source is where (newsletter), medium is how (email), campaign is which (spring-sale). Swapping them is the most common content error. See source vs medium vs campaign.

5

Use a finite, shared taxonomy

Source and medium should come from a fixed menu, not free text. If email is the medium, nobody also types e-mail or Email. A short approved list is the single biggest consistency win.

6

Use GA4-recognised medium values

GA4 buckets channels off utm_medium. Stick to values it knows — email, cpc, paid-social, organic, referral — or traffic lands in Unassigned.

7

Never put PII in a UTM

UTMs are visible in the URL, history, logs and analytics, and travel when links are shared. No emails, names, or user IDs — ever. It's a privacy leak, not a tracking feature.

8

Shorten the ugly tagged URL

A fully tagged URL is long and screams "tracked." Put it behind a short link so what you share looks clean — and you get click counts even on channels where the destination has no analytics (print, QR, DMs).

9

Audit before you ship

Paste the finished link somewhere plain and re-read every value: casing, separators, no trailing space, right field for each. Thirty seconds now beats a month of split rows. Better yet, build from a tool that can't fat-finger it.

What it looks like in practice.

The same campaign, tagged carelessly versus tagged to the rules above.

Wrecks attribution

Capitalised, source/medium swapped, a space, and PII in the URL. Four rules broken in one link.

Clean & consistent

  • utm_source=newsletter
  • utm_medium=email
  • utm_campaign=spring-sale
  • utm_content=hero-cta

Lowercase, right field for each, no spaces, no PII. One clean row in every report.

The pre-flight checklist.

Before any tagged link goes out, run it past these six.

[x]This is an inbound, cross-domain link — not internal navigation.
[x]Every value is lowercase, hyphenated, with no spaces.
[x]source, medium and campaign are each in the right field.
[x]source and medium come from your agreed taxonomy.
[x]No PII and no trailing space anywhere.
[x]The long URL is shortened before you share it.

Make the rules the default.

Every best practice above survives exactly as long as someone remembers it. The durable version is to build links from a tool that bakes the rules in — normalising casing and encoding so there's nothing to remember, and shortening the result so the link you share stays clean.

The free slsh.me UTM builder lays out all five parameters, lowercases and hyphenates as you type, and shows the finished URL — so consistency is the path of least resistance, not a discipline you have to enforce.

Build a clean UTM link, free

Then shorten it on slsh.me — a slsh.me campaign can even stamp the same UTMs on every link automatically, so the taxonomy is enforced by construction.

Questions

Should I add UTM parameters to internal links on my own site? +
No. Tagging a link from one page of your site to another starts a brand-new session and overwrites the original source — so a visitor who arrived from Google suddenly looks self-referred. UTMs are for inbound, cross-domain traffic only: emails, ads, social, partners. For navigation within your own site, never use UTMs.
Do UTM parameters hurt SEO? +
Used correctly, no. UTMs are for outbound campaign links you control, not for pages you want indexed. The risk is duplicate-content dilution if search engines crawl many tagged versions of one URL. Avoid it by never tagging internal links, setting a self-referencing canonical on your pages, and keeping UTMs to campaign destinations.
Can I put a customer's email or name in a UTM parameter? +
Never. UTM parameters are visible in the URL bar, browser history, server logs and analytics, and they travel when someone copies the link. Putting an email, name or user ID in a UTM is a privacy leak. Keep UTMs to non-identifying campaign metadata only.
How do I keep UTMs consistent across a team? +
Agree a finite taxonomy — a short, fixed menu of allowed source and medium values — plus a casing rule (lowercase, hyphens, no spaces). Document it where links get built, and build every link from the same tool so values are normalised, not retyped. A spreadsheet of approved values plus a UTM builder is the cheapest reliable setup.

Best practice, built in.

slsh.me builds clean tagged links, shortens them, and tracks every click by channel — so the right way is also the easy way. Free, no card.

Create a link with slsh.me

Free forever · see pricing