What really comes along when you paste from Word or Google Docs

A copied paragraph looks like a paragraph. What the clipboard actually hands over is closer to a small web page — one your word processor wrote for its own benefit, complete with fonts measured in points, classes that mean something only inside Word, and wrappers that exist so the text can travel back into the same program unharmed. Most of the time nobody notices. Then the paragraph lands in a CMS, an email template or a chat window, and it arrives in the wrong font, at the wrong line height, three times the size it should be.
The clipboard holds several versions of the same selection
When you press copy, the source application writes your selection into the clipboard several times over, in different formats — flavours. A copy out of Word typically carries plain text, HTML, Rich Text Format and one or two Microsoft-specific formats. Google Docs writes plain text, HTML and its own internal slice used for pasting back into Docs.
The receiving application decides which version to take, and it asks for the richest format it understands. A CMS editor, a mail client and a chat box all reach for text/html first. A terminal or a code editor takes text/plain. That is why the same copy behaves completely differently in two windows on the same screen.
This is also the entire mechanism behind "paste as plain text": nothing is being stripped, the application is simply asking for a different flavour. ClipboardClean reads both — it shows you what is inside the HTML flavour and rebuilds the text from it, keeping the structure that the plain-text flavour throws away.
What Word puts into the HTML flavour
Word's HTML is built for round-tripping, not for the web. Every paragraph arrives with class="MsoNormal"; every run of text carries inline styles with mso- prefixed properties such as mso-line-height-rule, mso-fareast-font-family and mso-spacerun. No browser understands them, and no browser removes them either — they simply ride along.
Above all of that sits a conditional comment that begins <!--[if gte mso 9]>. It can hold an entire stylesheet, the document's list definitions and the page's XML settings. A three-line paste can be tens of kilobytes before the first word of your actual text appears.
Inside you will also find namespaced tags such as <o:p>, font tags with face and size attributes, sizes given in points rather than pixels, panose-1 font descriptors, and — when a numbered list is copied — the numbers hard-coded into the text inside <!--[if !supportLists]--> markers so the numbering survives outside Word.
What Google Docs puts in
Docs is tidier, but not smaller. Its HTML opens with a single span whose id looks like docs-internal-guid-9f41c2e8-7fff-2b10-…, a per-copy identifier, and every run below it carries an explicit style: font-family, font-size, font-weight, vertical-align, white-space: pre-wrap.
There are no classes at all, so nothing can be fixed by dropping a stylesheet; the styling is glued to each element individually. Bold text is a span with font-weight:700 rather than a <strong>, which means an editor that looks for structural markup sees an ordinary paragraph and formats it accordingly.
Images are the other surprise. Depending on the source, they arrive either as googleusercontent URLs, which only load while you are signed in to the right account, or as base64 data URIs embedded in the paste itself. The second case is the usual explanation for a "short" paste that weighs several megabytes.
Why the destination breaks
Every CMS editor runs its own sanitiser, and each one keeps a different subset of what it receives. When half the pasted styling survives and half is dropped, you get formatting that is inherited from two places at once: the font from Word, the line height from your theme, and a paragraph that refuses to match the one above it.
Email is worse. Pasted styles are absolute where a template is relative, so text that looked correct at desktop width overflows on a phone. White text copied from a dark slide stays white on a white newsletter background, and the only person who sees the problem is the subscriber.
The invisible half of the problem travels too: non-breaking spaces where you expected ordinary ones, zero-width characters inherited from the source document, and links still wrapped in the tracking redirects of whichever mailer sent the original. None of it shows up in the editor; all of it ships.
Pasting as plain text, and what it costs
Every major application has a shortcut. Ctrl+Shift+V pastes without formatting in Chrome, Firefox, VS Code and most content editors; ⌘⇧V does the same on macOS; Word for Mac and Pages use ⌘⌥⇧V for "Paste and Match Style". On Windows, Win+V opens the clipboard history, which can also paste a plain-text version.
It works, and it throws away everything. Headings become ordinary sentences, lists become lines, tables become a wall of words separated by tabs, and links lose their destinations entirely. For a single quoted sentence that is fine. For a document, you have just moved the work from cleaning to rebuilding.
A cleaner sits between the two extremes: keep paragraphs, headings, lists, tables, emphasis and links; drop style, class and id attributes, every mso- property, empty spans and nested divs. That is what the rich-text mode on this site produces. The Markdown mode goes one step further and turns the structure into plain text a wiki, a README or a ticket can hold without any HTML at all.
The takeaway
Pasting is not copying text — it is copying a small document another program wrote for its own use. Decide which structure you actually need (headings, lists, tables, links), and drop everything that only made sense inside the source application. Paste as plain text when you are in a hurry; clean the HTML flavour when you want to keep the structure without the baggage.
Paste your text and see what it carries
More guides

Zero-width characters: invisible text fingerprinting and how to find it
A family of Unicode characters takes up no space, draws nothing and survives almost every kind of editing. They join emoji and shape Persian script — and they are the simplest way to mark a document so a leaked copy leads back to one person.

UTM parameters, click IDs and redirect wrappers: how links track you and how to clean them
A link that reads example.com/pricing can carry twelve parameters, an identifier unique to your click and a detour through two other companies' servers. Here is what each piece does, what is safe to delete and what you should leave alone.