Skip to content
SourceLoop

Free tool

Free Bulk UTM Generator

Paste a list of URLs and generate tagged UTM links in bulk. Standard mode applies one set of UTMs to every URL. CSV mode lets you vary utm_content per row. No signup, runs in your browser.

One URL per line. Same UTMs applied to every URL.

Input

URLs (one per line)

0 URLs
UTMs

Applied to all URLs

Output

Tagged URLs

Tagged 0
Errors 0
Total processed 0

Paste URLs above to generate tagged links.

How it works

Three steps to tag fifty URLs faster than you can copy-paste five

Paste, set UTMs, copy the tagged output. Standard mode for identical tagging, CSV mode for per-row variants.

  1. example.com/pricing
    example.com/demo
    example.com/blog/post-1
    example.com/contact
    01

    Paste your URL list

    One per line, or a CSV with URL and utm_content. Existing query parameters stay intact.

  2. utm_source google
    utm_medium cpc
    utm_campaign spring_2026
    02

    Set the UTMs once

    Source, medium, campaign apply to every URL. utm_content can be shared (standard mode) or per-row (CSV mode).

  3. example.com/pricing?utm_source=...
    example.com/demo?utm_source=...
    example.com/blog/...?utm_source=...
    03

    Copy or download

    Copy all tagged URLs to clipboard, or download a CSV with original and tagged URL per row for handoff.

What it handles

Six things this generator gets right by default

Every behavior here is the default. No toggles, no settings buried in a menu.

Best practices

Five rules for clean bulk UTMs

  1. 01

    Stick to a fixed naming convention

    Pin a sheet to your team Slack with the agreed values for utm_medium and the utm_campaign format. Bulk generation amplifies inconsistency at scale.

  2. 02

    Test one URL before generating fifty

    Run a single URL through the validator first. Confirm GA4 buckets it correctly. Then bulk-generate the rest with confidence.

  3. 03

    Use utm_content for variants, not utm_campaign

    Same campaign, different ad creatives or links → use utm_content (CSV mode) to differentiate. Don't fragment the campaign-level rollup.

  4. 04

    Lowercase, underscores, no spaces

    The generator handles this automatically, but build the habit on the input side too. Mixed case in your source data tends to leak into other places.

  5. 05

    Skip UTMs on internal site links

    Internal UTMs reset the original source on click and break multi-touch attribution. Bulk-tag external campaigns only (ads, emails, partner placements).

Built by the team behind SourceLoop

You generated the URLs. SourceLoop tracks which ones actually drove revenue.

SourceLoop channel attribution dashboard reading bulk-tagged campaigns into channel-level revenue rollups

FAQ

Bulk UTM generation, FAQ

How does this bulk UTM generator work?

Paste your list of URLs (one per line) or a CSV with URL and per-row values. Set the UTM parameters that should apply to all URLs in the form. The tool generates a list of tagged URLs you can copy and paste into your ad platform, email tool, or partner instructions. Everything runs in the browser, no data leaves your machine.

What's the difference between standard and CSV mode?

Standard mode applies the same UTM values to every URL. CSV mode reads a second column from each row as utm_content, so you can vary creative-level tagging per row while keeping source, medium, and campaign consistent. Use standard for 'tag every link in this newsletter the same way'; use CSV for 'tag each ad variant with its own content label'.

How do I prepare a CSV?

Format: url,utm_content per line. For example: 'https://example.com/pricing,headline_a'. The first column is always the URL. The second column is whatever you want utm_content to be for that specific URL. Spreadsheet apps like Google Sheets export CSVs by default; just paste the contents directly.

Will it skip duplicates or invalid URLs?

Invalid URLs (missing scheme, malformed) are flagged with an error in the output but the tool still processes the rest. Duplicates are not removed automatically, since you may legitimately want the same URL tagged multiple times with different content variants. The output shows one row per input row.

What if my URL already has UTMs on it?

The new UTM values overwrite the existing ones. If your URL has utm_source=meta and you set utm_source=google in the form, the output will use google. Other (non-UTM) query parameters are preserved exactly. This is the safe default for cleaning up legacy tagging.

Can I download the output as a CSV?

Yes, click 'Download CSV' to get a file with original URL, tagged URL, and (if used) utm_content per row. Useful when you need to hand the tagged URLs to a creative team or paste them into your ad platform's bulk import.

Is this generator free?

Yes. No signup, no email gate. We host it because the same teams generating UTMs in bulk usually need real attribution to know whether the tagged URLs actually drive revenue, which is what SourceLoop does.

Track every conversion to its true source

Capture and send full attribution data from every signup, lead, booking, and sale to your CRM and ad platforms, so you know exactly what's driving revenue.

Without SourceLoop

Untagged

Kayden Floyd

kayden@abc.com

  • SourceUnknown
  • MediumUnknown
  • CampaignUnknown
  • Landing pageUnknown
Journey
No touchpoints captured

With SourceLoop

Auto-tagged

Kayden Floyd

kayden@abc.com · Acme Co.

  • Channel Paid Social
  • CampaignFree_demo
  • Landing page/pricing
Journey
Synced to HubSpot Google Ads Meta