URL Cleaner
Strip utm_ and other tracking parameters, fragments, or parameters you name, from a whole list at once — with a before-and-after view of every address that changed.
- You provide
- A list of URLs, one per line.
- You receive
- The cleaned list, with a before/after view of every address that changed.
- Use it when
- Use it before sharing links, publishing a reference list, or importing URLs that carry campaign parameters.
Separate with spaces or commas. Names are matched exactly.
Your list is processed in this browser tab. We never open or expand the addresses you paste.
What this tool cannot do
- Parameter names are matched exactly, never by prefix, so ref_id survives a rule that removes ref_.
- Removing the whole query string can change what a link opens. The option says so, and warns again in the results.
- Percent-encoding and case in paths and query values are preserved exactly.
- Nothing is fetched. We never open or expand the addresses you paste, so a shortened link stays shortened.
- Lines that cannot be parsed as a URL are passed through untouched and counted.
What gets removed
The tracking preset covers four groups, matched by exact parameter name:
- UTM campaign tags —
utm_source,utm_medium,utm_campaign,utm_term,utm_content,utm_idand their relatives. - Ad-platform click ids —
gclid,gbraid,wbraid,fbclid,msclkid,twclid,ttclid,li_fat_id,igshidand others. - Email and referral tags —
mc_cid,mc_eid,mkt_tok,_hsenc,_hsmi,ref_srcand similar. - Marketplace and social tags —
spm,scm,srsltid,pd_rd_rand similar.
Every other parameter is left alone. You can add your own names in the box below the preset.
Exact matching, and why it matters
Parameter names are compared exactly. A rule that removes ref_ removes the parameter named ref_ — it does not remove ref_id, ref_source or referrer.
Prefix matching would be convenient and occasionally destructive: plenty of sites use ref_id as a genuine identifier, and silently deleting it would break the link while looking like it worked.
The dangerous option, labelled as such
"Remove the entire query string" is available because sometimes it is exactly right — a list of article addresses where every parameter is noise. It is also the one option that can turn a working link into a different page: ?id=42, ?page=2 and ?q=search+terms are not decoration.
The checkbox says so, and the results panel warns again while it is on.
What it never does
It never fetches anything. Pasting a list here does not cause a single request to any of those addresses — no expanding shortened links, no checking whether they work, no preview. Cleaning is a text transformation, and keeping it that way is what makes it safe to paste a list of links you would rather not announce to anyone.
Frequently asked questions
Will cleaning break my links?
Removing tracking parameters is safe in almost every case — they exist for analytics, not for choosing what to show. Removing the whole query string is different and can absolutely change what a link opens, which is why it is a separate, clearly labelled option. The before/after view shows you every change before you copy anything.
Does it expand shortened links?
No. Nothing is fetched. A bit.ly address stays a bit.ly address. Expanding links would mean contacting every one of them, which is not something a cleaning tool should do to a list you pasted.
Why did my link change case?
Only if you turned on “Lowercase the hostname”, and only the hostname changes. Paths and query values keep their capitalisation, because they are case-sensitive on most servers.
Can I undo it?
Your original list is still in the input box, untouched. “Reset to originals” clears the rules and re-runs, and the CSV export contains both the before and after values for every row.
Related tools
- You provide:
- A list of URLs, one per line.
- You receive:
- The de-duplicated list, plus a preview of exactly which entries were removed and which entry they matched.
- Use it when:
- Use it after combining exports from several sources, or before importing a list somewhere that rejects duplicates.
- You provide:
- A list of URLs, or mixed text containing them.
- You receive:
- The hostname, or the registrable root domain, for each entry — with counts and an option to keep only unique values.
- Use it when:
- Use it to see which sites a link list actually points at, or to group thousands of URLs by domain.
- You provide:
- Pasted text, or a local TXT, CSV, JSON or Markdown file.
- You receive:
- Every web address found, with its line number, in the order it appeared.
- Use it when:
- Use it when the links are sitting inside prose, an email, a chat log, a notes file or a data export.
- You provide:
- A public page address. Choose single page, or a bounded same-site crawl.
- You receive:
- Source page, destination, anchor text, internal/external label, and any rel="nofollow", ugc or sponsored values.
- Use it when:
- Use it to audit the links on a page, or to collect the linked URLs across a small, defined part of a site.
Guides for this tool
- How to Extract URLs with RegexPatterns that work, measured failures from the ones that do not, and a clear account of why no regular expression can fully validate a URL.
- How to Extract Hyperlink URLs in Google SheetsGoogle Sheets has two kinds of hyperlink too. One yields to a formula; the other needs Apps Script, because no formula can see it. Here is how to tell which you have.
- How to Extract URLs from Hyperlinks in ExcelA cell showing "Click here" stores its address somewhere you cannot reach with a formula. Three methods that work — VBA, FORMULATEXT and unzipping the file — and exactly when each one applies.
- How to Extract YouTube Description Links and Playlist URLsThree different jobs that all get called "YouTube URL extraction" — finding links in text, pulling links out of a description, and exporting a playlist — and which ones need an API key.