ClipboardClean

Paste the text. Leave the rest behind.

ClipboardClean shows what your clipboard is really carrying — tracking links, invisible characters, Word and Google Docs markup — and gives you back plain text, tidy HTML or Markdown.

or press Ctrl+V / ⌘V anywhere on this page

Paste here

Nothing pasted yet

Paste something on the left and the cleaned version appears here — as plain text, tidy HTML or Markdown.

Links
Which link parameters count as tracking?

Anything starting with one of these prefixes: utm_, mtm_, pk_, piwik_, matomo_, hsa_, _hs, vero_, oly_, at_

Plus these exact names: gclid, gclsrc, gbraid, wbraid, dclid, gad_source, gad_campaignid, srsltid, fbclid, igshid, igsh, msclkid, twclid, ttclid, li_fat_id, epik, rdt_cid, yclid, ysclid, _openstat, mc_cid, mc_eid, mkt_tok, ck_subscriber_id, vgo_ee, hsCtaTracking, trk, trkCampaign, spm, scm, ref, ref_src, ref_url, referrer, si, cmpid, campaignid, adgroupid, wt_mc, WT.mc_id, sc_channel, sc_campaign, sc_geo, sc_country, oly_anon_id, oly_enc_id, s_cid

Redirect wrappers from Google, Outlook Safe Links, Facebook, LinkedIn, Reddit, VK, Tumblr and Check Point are opened up to the address inside. A few sites use ref or source for something real — switch to “Keep as they are” if a cleaned link stops working.

Everything above happens in this tab. The text you paste is never sent anywhere — there is no server behind this page to send it to, and images found in a paste are shown as placeholders rather than loaded.

What it actually does

Links that stop reporting

utm_ tags, gclid and fbclid click IDs and about fifty other parameters are removed, from hrefs and from bare URLs sitting in the text. Google, Outlook Safe Links, Facebook and LinkedIn redirect wrappers are opened up to the address inside.

Invisible characters, made visible

Zero-width spaces, word joiners, direction marks, soft hyphens and non-breaking spaces are counted, marked in place with their U+ codepoint, and stripped from the output.

Word and Docs markup, gone

mso- properties, MsoNormal classes, docs-internal-guid wrappers, font tags, empty spans, nested divs and conditional comments are counted and dropped — the usual reason a pasted email breaks a CMS.

Three ways out

Copy as plain text with real line breaks, as rich text that keeps headings, lists and tables, or as GitHub-flavoured Markdown. Or download it as .txt, .html or .md.

Why pasted text is never just text

When you copy from Word, Google Docs, Outlook or a web page, your clipboard holds at least two versions of what you selected: a plain-text flavour and an HTML flavour. Applications prefer the HTML one, which is why a paragraph copied out of a document arrives in your CMS wrapped in inline styles, MsoNormal classes, font tags and empty spans, sometimes with an entire stylesheet hidden inside a conditional comment. ClipboardClean reads both flavours, counts what the HTML actually contains, and rebuilds the text from a short whitelist of tags — paragraphs, headings, lists, links, tables, emphasis — so what lands in the destination is the text you meant to move, not a fragment of someone else's document.

The other half of the problem is invisible. Marketing links arrive with utm_ parameters and click IDs attached; newsletter links are wrapped in redirect trackers; text copied from a shared document can carry zero-width characters that survive every reformat and quietly identify which copy leaked. This tool lists all of it before it removes anything: click a count and the matching spans light up in your pasted text, with the U+ codepoint of every invisible character and the real destination of every wrapped link. Everything runs in your browser — the page has no backend, so your clipboard is never uploaded, stored or logged anywhere.

Guides & articles

Plain-language explainers on hidden formatting, invisible characters and link tracking.

Read more guides

Frequently asked questions

Is anything I paste uploaded to a server?

No. ClipboardClean is a static page: the analysis and the cleaning run in your browser with the standard DOM parser, and there is no backend behind this site to send anything to. The text stays in the tab until you clear it or close it, and images found inside a paste are shown as placeholders rather than loaded, so nothing in your clipboard causes a network request.

Why do I have to paste? Can't the page read my clipboard by itself?

Browsers deliberately keep the clipboard out of reach until you act. A paste (Ctrl+V / ⌘V) hands the page the data as part of your gesture, which is why it always works. The "Paste from clipboard" button uses the newer Clipboard API, which asks for permission and only works on some browsers — if it is blocked or missing, paste into the left pane instead and everything behaves the same.

Does it keep bold, headings, lists and links?

In rich text and Markdown modes, yes. Output is rebuilt from a whitelist — paragraphs, h1–h6, ul, ol, li, strong, em, a, blockquote, code, pre and tables — with every style, class and id removed. You can turn emphasis off with the "Keep bold and italic" switch, and links can be kept, cleaned of tracking or removed entirely. Plain text mode flattens everything into text with real line breaks.

Does the Markdown output support tables?

Yes. Markdown is generated with Turndown plus the GitHub-flavoured extensions, so tables, strikethrough and task lists survive the conversion. Tables copied out of Word, Google Docs or a web page come out as pipe tables; merged cells are flattened, because GFM tables have no way to express a colspan.

What happens to images in the paste?

They are reported and then dropped. In the left pane every image becomes a labelled placeholder that tells you whether it was embedded as a base64 data URI (with its size) or linked from another server, and 1×1 images are flagged as tracking pixels. None of them are fetched, and none of them end up in the output — this is a text tool, and a single embedded screenshot is usually why a "short" paste weighs two megabytes.

Will it change my quotation marks and dashes?

Only if you ask. Curly quotes, en and em dashes and ellipsis characters are counted so you can see them, but they are left alone unless you switch on "Straighten punctuation", which converts them to ASCII equivalents. Russian guillemets (« ») are never touched, since they are correct punctuation rather than an artefact.

Which link parameters count as tracking, and can cleaning break a link?

Everything beginning with utm_, mtm_, pk_, piwik_, matomo_, hsa_, _hs, vero_, oly_ or at_, plus about fifty exact names such as gclid, gbraid, fbclid, msclkid, yclid, mc_cid, mc_eid, mkt_tok, igshid and li_fat_id — the full list is under the options row. Removing those is safe on practically every site. A handful of parameters in the list, such as ref, source and si, occasionally do real work; if a cleaned link stops behaving, switch the links option to "Keep as they are" and paste again.

The "Paste from clipboard" button does nothing in Safari. What now?

Safari only allows a page to read the clipboard from inside a direct user gesture, and it may show its own small "Paste" confirmation button before handing anything over; if that flow is interrupted, the read simply fails. Click into the left pane and press ⌘V instead — the paste path reads both the HTML and plain-text flavours and is the one every browser supports.

Can I edit the text after pasting it?

Yes — the left pane is editable. Type, delete a paragraph or fix a typo and the counts and the output follow along; the highlights are redrawn when you click outside the pane. "Clear" empties both panes and resets the report.