# IndieUTM

> Builds UTM campaign links and remembers presets and recent links in your browser.

Build tagged campaign links, then reuse them without a spreadsheet.

The canonical page is https://indieutm.com/.

## Use the tool

Open [IndieUTM](https://indieutm.com/) to complete the job. The questions below describe the supported input, result, and limits. Every answer names its source next to it.

Source: [Google Analytics campaign URL guidance](https://support.google.com/analytics/answer/10917952?hl=en).

## Questions and limits

### What is a UTM link?

A UTM link is an ordinary web address with campaign tags added to its query string: `utm_source`, `utm_medium`, `utm_campaign`, and optionally `utm_content` and `utm_term`. The page that opens is the same page. The tags tell your analytics tool where the click came from, so a newsletter click and a Reddit click show up as two sources instead of one blur.

### What do utm_source, utm_medium, and utm_campaign mean?

Source names the site or sender the click came from: `newsletter`, `reddit`, `producthunt`. Medium names the kind of channel: `email`, `social`, `cpc`, `referral`. Campaign names the push itself: `launch-week`, `spring-sale`. Google Analytics reads source and medium to attribute the session and campaign to group the traffic, which is why IndieUTM asks for all three before it builds a link.

Content tells two links in the same campaign apart, such as `header-button` and `footer-link`. Term holds the paid keyword.

### Are UTM parameters case sensitive?

Yes. Google Analytics treats `Newsletter` and `newsletter` as two different sources, and the same goes for every tag. Pick lowercase, with hyphens between words, and keep it that way across every link. A preset in IndieUTM saves one spelling of source, medium, and campaign, so the next link in the same channel starts from the same values instead of fresh typing.

### Can I edit a link that already has UTM tags?

Yes. Paste the tagged link into the destination field. IndieUTM moves its UTM tags into the tag fields and leaves the rest of the address alone: every other query parameter and the `#fragment` stay exactly as written, with their original encoding. Change what you need and build again. A tag you changed is rewritten in its original place, a tag you emptied is removed, and a new one is added at the end.

### Do my presets and recent links sync to another device?

No. Presets and the eight most recent links live in this browser's local storage, on this device, and nowhere else. IndieUTM keeps up to twenty presets. Clearing site data, using a private window, or switching browsers starts from an empty list. If you need the same presets on a second machine, save them there once more.

### Do UTM parameters affect SEO?

Not on their own. The tags do not change the page, and Google does not rank a page by its campaign tags. The one risk is duplicate addresses: if a tagged link gets crawled and indexed, search can show `/pricing?utm_source=newsletter` beside `/pricing`. A `rel=canonical` tag pointing at the clean address settles that. Use UTM tags on links you share elsewhere, not on links inside your own site.

## Promises

- The core is free: no account, no card, no premium plan, no upgrade nag, no hidden paywall.
- Private lookup activity is never published.
- Analytics is currently off. Private lookup activity is never published or sent to a tracker. No lookup history becomes public inventory.

## More

- [Notes](https://indieutm.com/blog.md): posts by the maker, newest first
- [More tools](https://indieutm.com/tools.md): the other tools by turushan
- [security.txt](https://indieutm.com/.well-known/security.txt): how to report a vulnerability

Made by turushan, https://twitter.com/turushan.
