UTM Link Builder

Build tagged campaign URLs with utm_source, utm_medium and more.

Free UTM link builder that adds utm_source, utm_medium, utm_campaign, utm_term and utm_content to any URL for campaign tracking. Runs entirely in your browser — nothing is uploaded. It runs free in your browser on Gera Tools, with nothing uploaded.

Last updated Source: Gera Tools

Which UTM parameters are required?

Most analytics tools expect at least utm_source, utm_medium and utm_campaign. utm_term and utm_content are optional and usually used for paid search keywords and A/B testing creative variants.

UTM parameters are tags appended to a URL that let analytics tools — Google Analytics, Plausible, and others — attribute a visit to the exact campaign, source and medium that produced it. This builder takes your destination URL and a few campaign details and assembles a clean, ready-to-share tracking link, entirely in your browser.

How it works

You enter a destination URL and the campaign fields. The builder separates any existing #fragment, parses the existing query string with URLSearchParams, then merges in the five standard parameters for any field you filled in:

ParameterPurposeExample
utm_sourceWhere traffic comes fromnewsletter
utm_mediumChannel typeemail
utm_campaignCampaign namespring_sale
utm_termPaid keyword (optional)running_shoes
utm_contentCreative / variant (optional)header_cta

Empty optional fields are skipped, existing parameters and the fragment are preserved, and values can be forced to lowercase so reports do not split across Email and email.

Worked example

Starting from https://shop.example.com/sale, filling in source newsletter, medium email and campaign spring_sale produces:

https://shop.example.com/sale?utm_source=newsletter&utm_medium=email&utm_campaign=spring_sale

If the URL already had ?ref=vip#offers, the result keeps ref=vip, adds the UTM tags, and reattaches #offers at the end.

Naming conventions that keep your analytics clean

UTM tracking creates as many problems as it solves when teams use inconsistent values. One person writing utm_medium=Email and another writing utm_medium=email produces two separate rows in every GA4 report, making channel aggregation unreliable. A few practices prevent this:

Force lowercase. This tool has a lowercase toggle for exactly this reason. Enable it for every link you build. Facebook, facebook, and FACEBOOK are three distinct values in reports; facebook alone is correct.

Use a shared naming document. Define and document your medium values once:

  • email — all email campaigns
  • cpc — paid search
  • social — organic social posts
  • paid-social — paid social ads
  • affiliate — affiliate links
  • display — display ads
  • referral — links from partner sites (though these are often auto-detected)

Use consistent campaign name formats. A common pattern is YYYY-MM-[campaign-name], for example 2025-03-spring-sale. This makes it easy to filter by date range in reports.

Do not use UTM on internal links. Adding UTMs to links between your own pages overwrites the original source in analytics. Internal links should never be tagged — UTM is for external traffic sources only.

When to use utm_term and utm_content

utm_term is designed for paid search: it records the specific keyword that triggered the ad. In Google Ads, {keyword} auto-fills this parameter. For non-paid campaigns it is rarely used, but it can track a specific topic or segment in an email (“subscribers who clicked the productivity article”).

utm_content is most useful for A/B testing creative. If you send an email with two different CTA buttons — one that says “Shop now” and one that says “See the sale” — tag them with utm_content=cta_shop_now and utm_content=cta_see_sale respectively to see which drives more clicks in your analytics.

SEO and canonical considerations

UTM parameters appear in the URL and can cause duplicate content issues if search engines index the tagged versions alongside the clean URL. To prevent this, make sure your pages have a canonical tag pointing to the unparameterized URL:

<link rel="canonical" href="https://shop.example.com/sale" />

Most modern CMSes and frameworks add canonical tags automatically. Google generally strips UTM parameters from its index, but a canonical tag is the belt-and-suspenders approach.

Notes

Everything runs in your browser — your URLs and campaign names never leave your device. If your destination URL already contains query parameters, the builder merges the UTMs alongside them rather than overwriting, and the original fragment is preserved at the end of the final URL.