---
title: "URL cleaner | Keep"
description: "Free URL cleaner. Remove UTM parameters, fbclid, gclid, igshid, and other tracking tags from links. Supports cleaning many URLs at once."
canonical: "https://keep.md/tools/url-cleaner"
language: "en"
---

# URL cleaner

Strip UTM tags, fbclid, gclid, igshid, and other tracking parameters from any link. Nothing you paste leaves your browser.

## How to use this tool

Paste one URL or switch to bulk mode for one URL per line. Copy the cleaned links after tracking parameters are removed.

## Keep anything useful as Markdown.

Save notes, links, pages, files, and other useful material as clean Markdown. Read it later, search it, or use it with an AI agent.

[Start for free](https://app.keep.md/signup)

[Read the docs](https://keep.md/docs)

## How to clean a URL

1.  Paste a link into the box above.
2.  Copy the cleaned version. The tool removes UTM tags, platform click IDs, and other tracking parameters as you type.

3.  Use bulk mode if you have a list of URLs. Paste one per line and copy them back clean.

## What gets stripped

The cleaner removes known tracking parameters from these groups:

-   **Campaign tags.** Every UTM parameter (utm\_source, utm\_medium, utm\_campaign, utm\_term, utm\_content) and the newer utm\_id, utm\_source\_platform, utm\_creative\_format, and utm\_marketing\_tactic.

-   **Ad click IDs.** gclid, gbraid, wbraid, dclid (Google), fbclid (Meta), msclkid (Microsoft), twclid (X), ttclid (TikTok), li\_fat\_id (LinkedIn), yclid (Yandex).

-   **Analytics handshakes.** \_ga and \_gl (cross-domain Google Analytics), *openstat, and the Matomo / Piwik pk* series.

-   **Email campaign tokens.** mc\_cid and mc\_eid from Mailchimp, \_hsenc, \_hsmi, \_\_hssc, \_\_hstc, \_\_hsfp, and hsCtaTracking from HubSpot, mkt\_tok from Marketo and Eloqua, plus Vero, Klaviyo (\_kx), and Omeda tokens.

-   **Platform share tokens.** igshid and igsh from Instagram, ref\_src and ref\_url, and the per-host share IDs below.

## Host-specific tracking

Some parameters are only tracking on certain platforms. The cleaner handles these by host so it does not accidentally strip them from unrelated sites:

-   **X (Twitter):** removes ?s= and ?t= on x.com and twitter.com. These are added when you use the native Share button and only exist for attribution.

-   **YouTube:** removes ?si=, ?feature=, and ?pp= on youtube.com, youtu.be, m.youtube.com, and music.youtube.com. The video plays the same without them.

-   **Spotify:** removes ?si= from open.spotify.com, which is the share attribution token Spotify appends in-app.

-   **TikTok:** removes \_r, \_t, checksum, sec\_uid, and sec\_user\_id from tiktok.com share links.

-   **LinkedIn:** removes trackingId, refId, midToken, and midSig from linkedin.com URLs.

## What the cleaner leaves alone

-   The protocol, host, port, and full path.
-   Every query parameter that is not on the tracking list.
-   The fragment (anything after #), including text fragments.
-   The order of the remaining query parameters.

If you paste a link without a protocol (like `example.com/page?utm_source=x`), the cleaner assumes HTTPS so it can parse the URL. Paste the full protocol if you need HTTP.

## Frequently asked questions

A URL cleaner strips the tracking parameters from a link so the URL you keep, share, or bookmark is the shortest canonical version. Marketing teams append campaign tags like utm\_source and utm\_medium, ad platforms attach click IDs like gclid and fbclid, and social apps bolt on share tokens like igshid, twclid, and si. None of these change which page you land on, so removing them gives you a stable link.

Three reasons. First, clean URLs deduplicate in a bookmark manager or read-later app so you are not saving the same article ten times with different campaign tags. Second, a tracker-free link does not leak which email, newsletter, or post you were reading when you shared it. Third, shorter URLs are easier to read and paste into Notion, Obsidian, Slack, or a notes app.

All standard UTM parameters (utm\_source, utm\_medium, utm\_campaign, utm\_term, utm\_content and variants), Google Analytics and Ads click IDs (gclid, gbraid, wbraid, dclid, \_ga, \_gl), Meta and Facebook IDs (fbclid, fb\_action\_ids and friends), the click IDs from Microsoft Advertising (msclkid), TikTok (ttclid), LinkedIn (li\_fat\_id), and Yandex (yclid), Mailchimp and HubSpot campaign tokens (mc\_cid, mc\_eid, \_hsenc, \_hsmi), and common share tokens including igshid (Instagram), ref\_src, and mkt\_tok. On top of that it removes host-specific tracking like ?si= on YouTube and Spotify, ?s= and ?t= on X (Twitter), and LinkedIn tracking IDs, without touching those parameters on sites where they carry real meaning.

Not for supported parameters. The tool only deletes parameters from a known tracking allowlist. Every other query parameter, the path, the fragment, and the protocol are preserved exactly. If a site happens to use a parameter name that overlaps with a tracker (for example a search page that uses ?s=), we scope those to the host so they are only stripped on the platforms where they are tracking.

Those are removed. When you tap Share on a tweet, X appends ?s=20 and a random ?t= token so it can attribute the click back to the share session. Neither parameter is needed to view the tweet, so the cleaner drops them for x.com and twitter.com only. Other sites that use ?s= or ?t= as real query parameters are untouched.

Yes. YouTube and Spotify both add a ?si= share identifier when you copy a link from the app. It tracks which user shared the link, and the video or track loads the same without it. The cleaner removes si, feature, and pp on YouTube hosts and si on Spotify.

Yes. Switch to bulk mode and paste one URL per line. The tool processes every line, keeps blank lines, and reports how many parameters were removed in total. Use this for cleaning a Raindrop or Pocket export, a Notion link database, or a text file of saved links before importing them somewhere else.

No. The URL cleaner runs entirely in your browser using the built-in URL parser. The page does not make any network requests when you paste, clean, or copy. You can turn off your Wi-Fi and it still works.

No. Fragments are almost always used for anchors and in-page state, not tracking, so the cleaner leaves them alone. If a site you care about puts tracking in the fragment, let us know and we can add host-specific handling.

## Save clean links in Keep

Keep saves the links you care about as clean, searchable Markdown, so your bookmark library stays short, deduplicated, and useful. Strip the tracking, keep the article.

[Learn more about Keep →](https://keep.md/)

## Related tools

[

### URL to Markdown

Convert any webpage into clean, AI-ready Markdown. Title, body, headings, and links preserved. Nav and ads stripped.

](https://keep.md/tools/url-to-markdown)[

### AI text cleaner

Strip emdashes, curly quotes, invisible Unicode, and Markdown formatting from ChatGPT, Claude, or Gemini output.

](https://keep.md/tools/ai-text-cleaner)[

### Twitter RSS feed generator

Turn any public X profile into an RSS feed with posts, articles, or both, then copy the URL into your feed reader.

](https://keep.md/tools/twitter-rss-feed)[

### Confluence to Markdown converter

Convert one public Confluence page or an HTML space-export ZIP into Markdown while keeping page links and attachments.

](https://keep.md/tools/confluence-to-markdown)
