SEO & Web Tools

UTM Campaign URL Builder

Add UTM parameters to a URL so analytics can attribute the traffic correctly. The builder enforces the naming consistency that keeps reports readable, and flags the mistakes that quietly corrupt campaign data.

  • Free, no sign-up
  • Runs in your browser
  • Nothing uploaded
  • Updated Sep 2026
Campaign link
The specific place — which newsletter, which network
The channel type — stick to standard values so GA4 groups it correctly
Include the year — you will run this again
Which variant, for A/B testing
Paid keyword — usually populated automatically by ad platforms
Optional. GA4 prefers this over the name when both are present.
Tagged URL

At a glance

Parameters
utm_source, utm_medium, utm_campaign, utm_term, utm_content
Required
Source and medium. Campaign in practice, or reporting is useless
Case
Case-sensitive in GA4 — always lowercase
Never use
On internal links; it resets the session and destroys attribution
Privacy
Parameters are visible in the URL — never put personal data in them
Processing
Entirely client-side

What each parameter is for

Five parameters, and most confusion comes from treating source and medium as interchangeable.

  • utm_source — where the traffic came from. A specific named property: newsletter, linkedin, partner-site.
  • utm_medium — the kind of channel. A category, not a name: email, cpc, social, affiliate. GA4 uses this to group traffic into channels, so inventing values here is what breaks the default channel report.
  • utm_campaign — which initiative this belongs to: spring-sale-2026, product-launch.
  • utm_term — the paid keyword. Rarely needed manually, since paid platforms populate it automatically.
  • utm_content — which variant, for A/B testing: header-cta versus footer-cta.

A useful test: source answers "which specific place?", medium answers "what kind of place?". An email from your newsletter is source newsletter, medium email. Sticking to the standard medium values — email, cpc, social, affiliate, referral, display — is what keeps GA4's channel grouping working without custom rules.

The mistakes that wreck campaign reporting

Never tag internal links. This is the one that causes real damage. UTM parameters on a link between two pages of your own site start a new session and overwrite the original attribution, so a visitor who arrived from Google and then clicked a tagged internal banner is recorded as having come from that banner. Your acquisition data becomes fiction. For internal link testing, use GA4 events instead.

Inconsistent case fragments everything. GA4 treats Email, email and EMAIL as three separate sources. A year of casual tagging produces a report with a dozen variants of the same channel. This builder lowercases everything automatically, which is the simplest possible fix.

Spaces and inconsistent separators. A space becomes %20 or + depending on the platform, producing two versions of the same campaign. Use hyphens, always.

Never put personal data in a UTM. Parameters are visible in the URL, stored in analytics, sent in referrer headers and frequently shared when someone copies a link. An email address or customer ID in a utm_content value is a data protection problem, and it is more common than it should be.

Keeping tagging consistent over time

The technical part of UTM tagging is trivial. The part that fails is consistency across people and months.

Write down your conventions somewhere the whole team can see: the allowed medium values, the campaign naming pattern, whether dates go in campaign names, who is allowed to invent a new source. A shared spreadsheet logging every link built is unglamorous and works. Without it you get spring_sale, spring-sale, SpringSale and spring-sale-2026 all describing the same campaign, and no report can put them back together.

Two more habits worth adopting. Include the year in campaign names — you will run "spring sale" again, and you will want to compare. And check the tagged URL actually works before sending it: paste it into a browser and confirm the page loads, particularly if the destination already had query parameters, since a mishandled ? versus & produces a broken link that goes out to your entire list.

How to use the UTM Campaign URL Builder

  1. Enter the destination URL

    The page you are sending people to. Existing query parameters are preserved and the separator is handled correctly.

  2. Fill in source and medium

    Source is the specific place, medium is the channel type. Stick to standard medium values so GA4's channel grouping keeps working.

  3. Name the campaign

    Use lowercase and hyphens, and include the year. Match whatever convention your team already uses.

  4. Copy the URL, or switch to bulk mode

    Bulk mode takes a list of destinations and applies the same campaign parameters to all of them.

Frequently asked questions

Do UTM parameters hurt SEO?

They create additional URLs for the same content, which is a duplicate-content risk. The fix is a canonical tag pointing at the clean URL, which every page should have anyway. Do not block tracking parameters in robots.txt — that is broader than intended and can block legitimate crawling.

What is the difference between source and medium?

Source is the specific place traffic came from, such as newsletter or linkedin. Medium is the type of channel, such as email or social. Source answers "which one?", medium answers "what kind?".

Can I use UTM parameters on internal links?

No — this is the most damaging UTM mistake. Tagged internal links start a new session and overwrite the original attribution, so a visitor who came from search gets re-attributed to your own banner. Use GA4 events to measure internal link clicks.

Are UTM parameters case-sensitive?

Yes in GA4, which is why Email and email appear as separate sources. This builder lowercases everything automatically to prevent that fragmentation.

Which parameters are actually required?

Technically only source and medium. In practice you want campaign too, or you cannot separate one initiative from another. Term and content are optional and only worth using when you have a specific question they answer.

Can I shorten the URL afterwards?

Yes. A shortener redirects to the full tagged URL, so the parameters still reach analytics. This is normal for print, social bios and anywhere a long URL is unwieldy. Use a shortener you control if you can, so the links do not stop working if a third-party service shuts down.