Skip to content
SEORuns in your browserPopular

UTM URL Builder

Build clean, consistently formatted campaign tracking URLs.

Input
No upload needed — instant
Privacy
Nothing is uploaded
Cost
Free · no sign-up · no watermark

Loading tool…

The tool is loading its code on your device. This happens once and is cached for later visits.

Processed entirely on your device

Everything you type or paste is handled by JavaScript running in this tab. No request is sent, nothing is logged and nothing is stored. Close the page and it is gone.

Overview

About the UTM URL Builder

Generate UTM-tagged campaign URLs free. Live preview, parameter validation, consistent naming suggestions, and a saved-campaign library for repeat links.

UTM parameters are how you tell your analytics platform where a visit came from when the browser cannot. A click from an email, a QR code, a PDF or a partner's site often arrives with no referrer at all — without tags, all of that traffic collapses into "direct", which is the least actionable segment in any report.

The five parameters, and what each is for

utm_source — the specific place. newsletter, twitter, partner-acme, qr-poster. Granular enough to be actionable, not so granular that every link is unique.

utm_medium — the category of channel. Keep this list short and fixed: email, cpc, social, display, affiliate, offline. Medium is what you group by in reports, so inconsistency here is expensive.

utm_campaign — the initiative. spring-sale-2026, product-launch-x. One campaign can span several sources and mediums.

utm_content — the variant. Use it to compare two links in the same placement: hero-banner versus sidebar-banner, or cta-button versus text-link.

utm_term — the keyword. Originally for paid search terms; largely obsolete now that Google Ads auto-tags and hides most query data.

Naming conventions are the whole game

Analytics platforms do not normalise. Email, email and e-mail are three mediums, three sources and three campaign names, and your report will show three thin rows instead of one meaningful one.

Adopt and write down:

  • lowercase everywhere;
  • hyphens between words, never spaces or underscores;
  • a fixed vocabulary for utm_medium — five to eight values maximum;
  • dates in campaigns as yyyy-mm or a season-year pair, never spring alone;
  • no personally identifiable information and nothing that reveals unreleased plans in a public URL.

Auto-tagging versus manual tagging

Google Ads can auto-tag with a gclid parameter, which captures far more detail than manual UTMs — keyword, match type, ad group, creative. If you run Google Ads, enable auto-tagging and do not add UTMs to those links; the two systems conflict and manual tags override the richer auto-tagged data.

Use manual UTMs for everything else: email, social, affiliates, print, QR codes, partner placements.

Common failure modes

Internal links with UTMs. Splits sessions and creates crawlable duplicate URLs. Use event tracking for internal navigation instead.

Hash before query. page#anchor?utm_source=x puts the parameters in the fragment, where they are never transmitted. Query first, fragment last.

Long tagged URLs in print. A 300-character URL on a poster is unusable. Pair it with a short redirect, and tag the redirect destination.

Tagging a URL that already has a query string. Append with &, not ?. The builder handles this; hand-editing frequently does not.

Inconsistent campaign names across a multi-channel launch. Decide the campaign string once and reuse it exactly everywhere, or you will never see the launch as a single number.

Step by step

How to use the UTM URL Builder

  1. Enter the destination URL — the page people should land on.

  2. Fill in source, medium and campaign name; these three are the minimum for useful reporting.

  3. Add content and term only when you need to distinguish variants or track paid keywords.

  4. Check the live preview and the encoded URL as you type.

  5. Copy the tagged URL, and optionally save the naming convention for future campaigns.

Why use it

Benefits and common use cases

What this tool is good for, and what it deliberately does not try to do.

Enforces consistent naming

Suggests lowercase, hyphenated values and remembers your previous entries, so 'newsletter', 'Newsletter' and 'news-letter' never end up as three separate rows in your analytics.

Correct encoding, guaranteed

Builds the URL with proper percent-encoding, avoiding the malformed query strings that come from hand-editing and silently break attribution.

Validates before you ship

Warns on missing scheme, unencoded spaces, an anchor placed before the query, and self-referencing UTM parameters on internal links.

Campaign library

Saved combinations mean next month's newsletter link takes ten seconds and matches last month's naming exactly.

Questions

Frequently asked questions

Short, honest answers about quality, limits and privacy.

What are the five UTM parameters?

utm_source identifies where the click came from (google, newsletter, partner-x). utm_medium identifies the channel type (email, cpc, social, referral). utm_campaign names the specific initiative (spring-sale-2026). utm_content distinguishes variants within one campaign (banner-a versus banner-b). utm_term records the paid keyword.

Which parameters are required?

Technically none, but for usable reporting you need source, medium and campaign. Google Analytics treats a session with any UTM parameter as a campaign session, so a partial tag can overwrite your referral data with something less useful.

Do UTM parameters hurt SEO?

Not on external links — they are invisible to how the destination page ranks. On internal links they are actively harmful: they split analytics sessions, create duplicate URL variants for crawlers to discover, and can override organic attribution. Never add UTMs to links within your own site.

Should UTM values be lowercase?

Yes, consistently. Most analytics platforms treat utm_campaign=Spring-Sale and utm_campaign=spring-sale as two different campaigns. Standardising on lowercase with hyphens is the single highest-value UTM convention you can adopt.

Where do I put an anchor when the URL has UTMs?

The fragment identifier always comes last: https://example.com/page?utm_source=x#section. Putting the hash before the query makes the UTMs part of the fragment, where they are never sent to the server and never recorded.