UTM link structure diagram showing utm_source, utm_medium, and utm_campaign parameters appended to a URL
SEO Tools

How to Create UTM Links — Parameters, Naming Rules, and Mistakes to Avoid

Sunny Pal Singh · · 7 min read

Google Analytics tells you your traffic came from "Direct" — which means either someone typed your URL directly, or something went wrong with your tracking. For most sites, a large chunk of that "Direct" blob is actually email, social, or dark social traffic that was never tagged. UTM parameters are the fix: a 30-second addition to every link you share that tells Analytics exactly where that visitor came from.

Most marketing teams have a UTM problem. Some links are tagged, some aren't. One person writes utm_source=LinkedIn, another writes utm_source=linkedin. The result is fragmented attribution data where the same channel shows up as four separate sources and nobody trusts the reports. UTM parameters are simple — but consistent UTM parameters require a few rules that most teams never write down until after they've already created the mess.

Key Takeaways

  • UTM parameters are appended to URLs to track where traffic originates — they show up as "Source / Medium" dimensions in GA4
  • utm_source and utm_medium are required; utm_campaign is strongly recommended; utm_term and utm_content are optional
  • Use lowercase only — Email and email are counted as separate sources in Analytics
  • Never add UTM parameters to internal links — this resets session attribution and corrupts conversion data
  • URL shorteners can strip UTM parameters — always test your tagged links before sending

What Are UTM Parameters?

UTM stands for Urchin Tracking Module — named after Urchin Software, which Google acquired in 2005 and turned into Google Analytics. UTM parameters are query string values appended to a URL that Analytics reads to populate the Source / Medium / Campaign dimensions.

Example UTM link:

https://www.example.com/landing/?utm_source=newsletter&utm_medium=email&utm_campaign=june-launch

When someone clicks this link, Google Analytics records: Source = newsletter, Medium = email, Campaign = june-launch. Without UTM parameters, this visit would appear as Direct or Referral — useful for nothing.

The Five UTM Parameters

utm_source (required)
Who sent the traffic. Use the platform or publication name: newsletter, twitter, linkedin, google, partner-site. Be consistent — use the same source name every time for the same origin. The source is the specific origin, not the channel type.

utm_medium (required)
The marketing channel type. Standardise to match GA4's default channel groupings: email, social, cpc, display, affiliate, referral, sms. Using the right medium ensures your traffic lands in the correct channel group in reports — wrong medium means wrong bucket.

utm_campaign (strongly recommended)
The specific campaign or promotion: june-launch, black-friday-2026, product-update-q3. Groups all traffic from a single campaign across sources and mediums, so you can see total campaign performance in one view.

utm_content (optional)
Differentiates multiple links in the same email or ad: header-cta, footer-link, banner-top. Useful for A/B testing different link placements in the same email — tells you which placement drove the click.

utm_term (optional)
The paid search keyword that triggered the ad. Usually populated automatically by Google Ads via ValueTrack parameters ({keyword}). Rarely set manually for non-paid campaigns.

Naming Conventions That Scale

The two most common UTM disasters are capitalisation inconsistency and format drift. utm_source=Twitter and utm_source=twitter are counted as different sources in Analytics — you end up with two rows for the same channel. A team of five people tagging links without a naming guide will generate 15 variations of "linkedin" within a month.

Adopt a convention before you start and write it down somewhere everyone can find it:

  • Lowercase only — always, no exceptions
  • Hyphens not underscores — both are valid but hyphens are more readable in reports
  • Dates in campaign namesnewsletter-june-2026 not newsletter-summer (summer becomes ambiguous in December)
  • Source = platform, medium = channel typesource=linkedin medium=social, not the reverse
Parameter Bad Good
utm_source LinkedIn, linkedIn, social-media linkedin
utm_medium Social, LinkedIn, Organic social
utm_campaign SummerCampaign, Summer_Campaign_v2 summer-campaign-2026
utm_content TopLink, link1 hero-cta, footer-link

Common UTM Mistakes That Corrupt Your Data

1. UTM parameters on internal links
This is the biggest mistake — and the hardest to reverse once the data is in Analytics. Adding UTMs to links within your own site resets the session source. A visitor arrives from utm_source=newsletter, clicks an internal link with utm_source=website, and Analytics now attributes their conversion to "website." The newsletter gets no credit. Internal links must never have UTM parameters.

2. Inconsistent capitalisation
Emailemail in Analytics. Your email reports will show 4 versions of the same source if different team members tag links without a shared guide. Once the data is split, it cannot easily be merged retroactively.

3. Tagged links shared without testing
Paste every tagged link into a browser before sending. Confirm the UTM parameters appear in the final URL, then check your Analytics real-time report to confirm the source/medium registers correctly. What you pasted in your email tool is not always what gets delivered.

4. URL shorteners that strip parameters
Some URL shorteners strip query strings on redirect. Always follow your short link to its destination and verify the UTM parameters survived. If they didn't, use a shortener that preserves query strings, or don't shorten UTM-tagged links.

5. Forgetting to tag all variations
If you send the same campaign email to 5 segments and only tag one UTM, you lose attribution on the other 4. Every distinct link in every distinct send needs its own UTM — use a builder to generate them quickly rather than editing URLs by hand.

Step-by-Step: Creating a UTM Link

Manual approach:

  1. Start with your destination URL: https://www.example.com/offer/
  2. Add ? to begin the query string
  3. Add utm_source=newsletter
  4. Add &utm_medium=email
  5. Add &utm_campaign=june-launch-2026
  6. Result: https://www.example.com/offer/?utm_source=newsletter&utm_medium=email&utm_campaign=june-launch-2026
Tip: If your destination URL already has query parameters (e.g. ?product=12), add UTMs with & not ?: https://example.com/shop?product=12&utm_source=email&utm_medium=email. A double ? creates a malformed URL that some Analytics implementations cannot parse correctly.

Builder approach: The ByteWaveNetwork UTM Builder takes your URL and campaign details, assembles the tagged link, validates the parameters, and copies it in one click. No manual string editing — the source, medium, and campaign are always in the right format.

Where UTM Data Appears in GA4

In GA4: Reports → Acquisition → Traffic Acquisition. The default dimension is "Session default channel group." Switch the primary dimension to "Session source / medium" or "Session campaign" to see your UTM values directly.

For deeper analysis: Explore → Free form — set the row dimension to "Session source", "Session medium", "Session campaign", or "Session content" to build a full UTM attribution table. Add "Conversions" as a metric to see which UTM tags are driving your goals.

One common confusion: GA4 shows "Last non-direct click" attribution by default, which means a UTM-tagged visit that happens after a direct visit will overwrite the direct attribution. This is usually what you want — it gives credit to the campaign that brought the user back.

UTM Parameters and SEO

UTM parameters do not affect SEO directly — Google does not index URLs with UTM parameters differently. However, there are two indirect considerations:

Canonical tags: If UTM-tagged URLs are accidentally indexed (e.g., someone shares a tagged URL publicly and other sites link to it), you may see ?utm_source=... variants appearing in GSC. A canonical tag on your pages pointing to the clean URL resolves this — Google consolidates rankings on the canonical, not the parameter variants.

Don't add UTM parameters to your sitemap — only include the canonical, clean URLs. Tagged versions in your sitemap signal to Google that the parameter variants are the canonical form, which is not what you want.

Build UTM Links in Seconds

Free, no signup. Enter your URL and campaign details — the UTM Builder assembles the tagged link, validates the parameters, and copies it ready to paste.

Try the UTM Builder Free →
SP

Sunny Pal Singh

Fellow · Technical Director — AI Infrastructure, Cloud Orchestration & Network Automation

Sunny is a Fellow and Technical Director specialising in AI infrastructure, cloud orchestration, and network automation. With hands-on depth across AWS, Azure, GCP, Red Hat OpenStack, and OpenShift, he leads high-performing teams of architects and engineers building transformative solutions at scale. He built ByteWaveNetwork to bring the same engineering rigour to everyday web tooling.

Affiliate disclosure: Some links on this page may be affiliate links. We only mention tools we've personally used and have an honest opinion about. Affiliate revenue helps keep ByteWaveNetwork's tools free and maintained. We are not paid by any of the tools compared in this article for favorable coverage.

Choose design