Free tool

Bulk UTM generator: tag up to 500 URLs at once

Paste up to 500 URLs and add the same UTM tags to every one, or paste a CSV to give each link its own tags. Tags go before any #, existing UTM parameters are replaced, and each failed line says why. Copy the links or download a CSV.

The links are built in your browser. Nothing you paste is sent to a server or stored. What this does not do: check whether your source and medium names suit your reports, or open the links. It builds the tagged URLs from what you typed.

How do you want to tag?

Up to 500 URLs. Each must start with https:// or http://.

How it works

Three steps, all in your browser.

  1. Step 1: Choose how to tag

    Shared UTMs puts the same tags on every URL. CSV mode gives each link its own source, medium, campaign, content and term.

  2. Step 2: Paste your URLs

    One URL per line, or a CSV with a header row. Up to 500 per batch. Lines that cannot be tagged are listed with the reason.

  3. Step 3: Copy or download

    Copy all the links as plain text, or download a CSV with the original URL, the tags, the tagged link and a status for every line.

Why UTMs break

Four ways a tagged link quietly stops working.

None of these shows an error when you click the link. They show up later as visits with no source, or one campaign split into two.

Tags placed after the #

A browser keeps everything after a # on the visitor's device and never sends it to a server, and SourceTrack's tracker reads only the part of the link before it. A link like page#plans?utm_source=news records no source.

The generator always writes the tags before any #.

The same tag twice

When utm_source appears twice, SourceTrack reads the first one and ignores the rest. The second one may be the one you meant.

The generator replaces a utm_ parameter that already exists, so a link never carries two.

Letter case

Parameter names must match exactly: UTM_Source is ignored, utm_source is read. Values are trimmed and lowercased when SourceTrack stores them, so Google and google are one value there. Some other tools keep them apart.

The generator lowercases the values unless you switch that off.

Spaces and special characters

In a link's query string + and %20 both mean a space, so a real plus sign has to be %2B. Raw spaces, a mix of + and %20, or characters such as & and # inside a value are easy to corrupt when a link is pasted from tool to tool.

The generator encodes every value once, with + for a space.

FAQ

Questions people ask about bulk-tagging UTM links.

How do I add UTM parameters to many links at once?

Choose Shared UTMs, paste one URL per line, fill in utm_source, utm_medium and utm_campaign (plus utm_content or utm_term if you use them) and press Generate links. Every line comes back with the same tags added, in the order you pasted. To give different links different tags, use CSV mode.

What should the CSV look like?

The first row names the columns: url, source, medium, campaign, content and term. Names are matched without regard to letter case, and url, source, medium and campaign are required. A value that contains a comma goes inside double quotes. One batch holds up to 500 rows.

What happens to a link that already has UTM parameters?

A utm_ parameter with the same name is replaced, whatever its letter case, so a link never ends up with two utm_source values. Other parameters keep their text and order. A utm_ parameter the tool is not setting, such as utm_id, is left as it was.

Why are the tags placed before the # in the link?

A browser never sends the part of a link after a # to a server, and SourceTrack's tracker reads only the part before it. Tags placed after the # would be lost, so the query always goes first and the #fragment stays last.

Why do some cells in the downloaded CSV start with an apostrophe?

A spreadsheet runs a cell that starts with =, +, - or @ as a formula. To stop pasted text from doing that, the download puts a single quote in front of such a cell. The quote is only in the downloaded file: the links on screen and the text from Copy all are unchanged.

Are my URLs uploaded anywhere?

No. The links are built in your browser and are not sent to a server or kept in cookies or local storage. The CSV download is created on your device.

Tagged links are only half of it.

SourceTrack's tracker reads those UTM parameters on your own traffic and shows revenue by source. One script tag, 28 days free.

No credit card required. See how attribution splits revenue by source, or check your setup with the free tracking audit.

Which source earned it?Example
  • Google Ads
  • ChatGPT
  • LinkedIn
  • Google Search
  • Direct

Sources ranked by the revenue they brought in.