Word to HTML — paste from Word or Google Docs, get clean markup
Paste a document straight from Microsoft Word, Google Docs or Outlook and get semantic HTML back: real headings, real lists, real tables, and none of the mso- styling, MsoNormal classes or nested spans Word wraps around every word. Fix a heading or add a bullet right in the preview, and the markup follows. Or switch to the other tab and strip the formatting away entirely.
- Nothing you paste is uploaded or saved
- Works offline
Copy from Word or Google Docs, then press Ctrl+V
Paste anywhere on this page — you do not have to click a box first. Nothing is uploaded; the document is read from your clipboard and cleaned here in the page.
How it works
- 1
Copy in Word, then press Ctrl+V here
Select your text in the document, copy it, and paste anywhere on this page — you do not have to click a box first. There is no file upload, because there is no need for one: Word puts a full HTML version of what you copied on the clipboard, and that version already knows which text you marked as a heading, a list or a table.
- 2
Edit the preview — the markup follows
The preview is not a picture. Type in it, fix a heading, add a bullet or a numbered list, turn a phrase into a link, and the HTML on the right updates as you go. Everything you type or paste in there goes through the same cleaner, so edits cannot smuggle in the styling you just removed — and what you see stays exactly what you are about to copy. The counters underneath describe the original paste: a page of notes routinely arrives as 40 KB and leaves as 2 KB.
- 3
Decide what to keep
Links, bold and italic, tables and Word’s blank-line paragraphs each have their own switch. Images are off to start with, and deliberately: Word points them at files on your own computer, so an img tag copied out will show a broken icon everywhere except the machine it came from.
- 4
Copy the HTML or download the file
Copy drops the markup straight into your CMS, a template, or a code editor. Download gives you a .html file. The "Remove all formatting" tab produces plain text instead, for when you want the words and nothing else.
Frequently asked questions
Why is pasting from Word into a website such a problem?
Word does not put plain HTML on the clipboard. It puts an entire Office document there: a stylesheet thousands of lines long, conditional comments addressed to old versions of Internet Explorer, namespaced tags like o:p and w:sdt, a class such as MsoNormal on every paragraph, mso- properties inside every style attribute, and a span wrapped around almost every word. Most editors accept all of it, which is why a pasted paragraph refuses to match the rest of the page and why the HTML behind it is unreadable.
What exactly gets removed?
Script tags, style blocks, on* event handlers, javascript: URLs, mso- style properties, MsoNormal and every other Mso class, o:p and w: and v: namespaced tags, conditional comments including the StartFragment markers, font tags, and spans that carry nothing but Word styling. Inline style attributes go too, so the text inherits your own site’s typography instead of arriving in 11pt Calibri.
What survives?
Structure. Headings stay headings, including Word heading styles that arrive as a class rather than an h1 tag. Bulleted and numbered lists are rebuilt as real ul and ol elements with correct nesting — Word does not send lists as lists, it sends flat paragraphs with the bullet typed in as a character, so this has to be reconstructed rather than passed through. Tables keep their rows, cells and merged spans. Bold, italic, underline, strikethrough, superscript, subscript and hyperlinks all come through.
Why do I have to paste instead of uploading my .docx?
A .docx file is a ZIP archive of XML, so reading one in the browser means shipping an unzipper and a schema parser, and the result still would not match what you see on screen. The clipboard already carries HTML that Word generated itself from the document you are looking at. Using it is both more accurate and far lighter.
Is my document uploaded anywhere?
No. The cleaning runs inside this page using the browser’s own HTML parser. Nothing you paste is sent over a network and nothing is saved — not to a server and not to your browser’s storage. That matters here more than on most tools, because the documents people clean this way are usually client work, contracts and internal reports.
Does this work with Google Docs and Outlook?
Yes. Google Docs has its own habits: it never emits a b tag, it writes span style="font-weight:700" instead, and it wraps the whole selection in a b tag whose own style says font-weight:normal. Both are handled — the weight becomes a strong tag, and the wrapper is unwrapped rather than treated as bold. Outlook, Apple Pages, LibreOffice and web pages all go through the same cleaner.
Why are images off by default?
Because a Word image is almost never usable. Word writes src="file:///C:/Users/…", which is a path on the machine the document was written on, and Google Docs writes a googleusercontent URL that refuses to load from another site. Turning images on keeps the tags for the cases where they do point somewhere public, but it will not magically host your pictures. Upload those separately.
Can pasted content run scripts on this page?
No, and the tool is built so that it cannot. The clipboard HTML is parsed with DOMParser, which produces a document with no browsing context: scripts do not execute and images are not fetched. The cleaner then works from an allow-list — only listed tags and only listed attributes on those tags survive, so event handlers and unknown attributes are dropped without the code ever naming them. Finally, the preview is built as React elements from that cleaned tree rather than injected as an HTML string, so there is no path where pasted markup becomes markup of this page.
What does "Remove all formatting" do that Notepad does not?
Pasting through a plain text editor gives you the clipboard’s plain-text flavour, which keeps Word’s bullet characters, its non-breaking spaces and its line-wrapping. This tab works from the cleaned document instead, so bullet glyphs are gone, non-breaking spaces become ordinary spaces, paragraphs are separated by a blank line, and table rows come out tab-separated so they paste back into a spreadsheet as columns.
Why is the output missing my colours, fonts and centring?
Those live in inline style attributes, and the point of this tool is to remove them. Text that carries Calibri 11pt and a hard-coded colour will clash with every site it lands on, and it is the single most common reason a pasted article looks wrong. Semantic tags describe what the content is; your own stylesheet decides how it looks.
Is there a size limit?
No fixed one. The cleaner handles a long report without trouble because it is a single pass over a parsed document. Very large pastes are limited by what your browser will put on the clipboard, not by this page.