🔗 Campaign Tracking

UTM Campaign URL Builder

Assemble perfectly-encoded UTM tracking links for your ads, emails and social posts — with live validation for the mistakes that quietly split your analytics, and the canonical and sitemap guidance that keeps tagged URLs out of Google's index.

✓ Correct encoding + fragment handling Runs in your browser No signup
Your tagged campaign URL
ParameterValueEncoded

⚠️ Never let UTM URLs get indexed

Every UTM URL is a near-duplicate of your clean page. If Google crawls and indexes tagged variants, you create a swarm of near-identical URLs — exactly the programmatic near-duplicate pattern that algorithmic spam systems demote sites for. UTM links belong on outbound campaign placements, not in your own crawlable surface.

  • Keep a self-referential canonical on the landing page that points at the clean URL — with no UTM parameters.
  • Never list a UTM URL in a sitemap, and never use one for internal links or navigation.
  • Use UTM links only where they belong: ad destinations, email links and social posts you control off-site.

How to build a UTM campaign URL

Four steps from a landing page to a clean, correctly-encoded tracking link.

1

Paste the destination URL

Enter the absolute landing-page URL you want the campaign link to point at, including https and any existing query string or fragment.

2

Set source, medium and campaign

Fill the three required parameters — utm_source, utm_medium and utm_campaign — or click a quick-pick to preset a common source and medium pair.

3

Add optional term and content

Use utm_term for paid keywords and utm_content to A/B test creatives or link positions. Keep every value lowercase and space-free so analytics does not split it into duplicates.

4

Copy the tagged URL for outbound links only

Copy the assembled URL and use it in ads, emails and social posts. Never place a UTM URL in your sitemap or internal links, and keep a self-referential canonical pointing at the clean URL.

UTM parameter questions

UTM parameters are five optional query-string tags — utm_source, utm_medium, utm_campaign, utm_term and utm_content — that you append to a link so analytics can attribute the visit to a specific campaign. They were named after the old Urchin Tracking Module and are read by Google Analytics, GA4 and most analytics platforms. They only describe the traffic; they do not change what the page shows.
They do if Google indexes them. A UTM URL is a near-duplicate of your clean page, so if crawlers find and index tagged variants you fragment signals and risk the duplicate-content demotion that algorithmic spam systems apply to programmatic near-duplicates. The fix is not to avoid UTMs but to contain them: keep a self-referential canonical that points at the clean URL without any UTM parameters, never list tagged URLs in a sitemap, and only ever put UTMs on outbound campaign links — not internal navigation.
Because analytics treats UTM values as case-sensitive strings. Facebook, facebook and FaceBook become three separate sources in your reports, splitting one campaign across rows that never reconcile. Pick a lowercase convention and enforce it on every link so your source, medium and campaign totals stay accurate.
utm_term records the paid keyword that triggered the click and is mainly used in search advertising. utm_content distinguishes two links that otherwise share the same source, medium and campaign — for example the header button versus the footer link, or version A versus version B of an email creative. Both are optional; use utm_content whenever you A/B test and utm_term whenever you buy keywords.

Tagging links at scale?

This tool runs entirely in your browser — there is nothing to call and nothing leaves the page. For bulk campaign tagging, naming-convention enforcement and CMS integration, a programmatic UTM API is available on the paid plans.

✓ Free tool: 100% client-side UTM API: paid plans

Generate consistent, validated campaign URLs from a single endpoint and enforce one naming convention across every team and channel. See plans and quotas on the pricing page.

See API plans →