Import Word Into WordPress, Formatting Intact
A step by step guide to getting a .docx file into WordPress with headings, lists, tables and images intact. Includes what to fix in Word first and how to check the result.
Turn a Word document into real Gutenberg blocks you can paste into WordPress. Runs in your browser.
Your document never leaves your browser. Nothing is uploaded.
WordPress stores posts as blocks. A block is ordinary HTML wrapped in a comment that tells the editor what kind of thing it is. A heading block looks like this:
<!-- wp:heading -->
<h2 class="wp-block-heading">Getting Started</h2>
<!-- /wp:heading -->When you copy text out of Word and paste it into the editor, you usually do not get blocks. You get one Classic block holding the entire document, or a pile of paragraphs with Word styling stuck to them. Both are awkward to edit and both look wrong in your theme.
This tool reads the .docx file directly and writes the block markup for you. Headings become heading blocks, lists become list blocks with their nesting intact, tables keep their header row, and quotes become quote blocks.
Your content is now made of real blocks. You can drag them, change heading levels, and use block settings the same as anything you typed by hand.
A .docx file is a zip archive holding XML. That XML describes both what your text says and how Word drew it on screen, and the two are mixed together. Font sizes, spacing, colours and list numbering all live alongside the actual structure.
When something converts that to HTML naively, all of it comes across. You end up with inline styles fighting your theme, spans wrapped around single words, and headings that are only headings because someone made them bigger.
The important distinction is between formatting and structure. A heading style is structure: Word records that this text is a Heading 2, and that survives conversion. Bold text at 16pt is formatting: it looks like a heading and carries nothing a converter can use. This is the single most common reason an import comes out flat, and it is a problem in the document rather than in the tool doing the importing.
If a heading here came out as a plain paragraph, that is why. Fixing it in Word takes a few seconds: select the text and choose the right heading from the Styles gallery on the Home tab. Our Word heading checker lists every heading in a document and flags the ones that are only bold text.
It handles one document and gives you text to paste. That is genuinely all, and for a single article it is often the fastest route. There are four things it cannot do, and they are limits of the browser rather than choices we made:
If you are moving one article, none of that matters. If you are moving fifty, all of it does, and the copy and paste step alone becomes the slowest part of the job. That is what the plugin is for: it runs inside WordPress, so it can upload images as real attachments, fill SEO fields, set the post type, and work through a hundred documents in one run.
We would rather say that plainly than pretend a browser tab can do a job it cannot.
Yes, and we check it rather than assume it. The plugin and this tool use the same mapping from HTML to blocks, and a set of fixtures runs through both to confirm they agree. The one difference is images: the plugin has a Media Library to upload to and this tool does not, so the plugin adds an attachment ID that cannot exist here.
Most of a normal document maps cleanly onto a block. These are handled directly:
Anything without a block equivalent is kept verbatim in an HTML block. That is lossless and still editable, so nothing is ever silently dropped. If you see an HTML block in the output, that is something unusual in the document rather than a failure.
Text boxes and shapes do not come across. Word stores those outside the document body, in a separate drawing layer. Nothing reading the file as a document sees them, so a document whose content lives in text boxes converts to almost nothing. If the result looks empty, that is usually why.
Footnotes and endnotes are not blocks.WordPress has a footnote block, but the mapping between Word’s numbering and the block’s is not reliable enough to do automatically, so footnote text arrives as ordinary content.
Tracked changes are applied, not shown. The converter reads the current state of the document, so unaccepted edits give you the edited version. Comments are ignored.
Fonts and colours are dropped on purpose.This is the one that looks like a bug and is not. Your theme should decide what your site looks like. Carrying Word’s 11 point Calibri into your posts is how imported content ends up looking different from everything else you have published.
Base64 encoding makes an image roughly a third larger than the file it came from, and that text sits inside your post content rather than in the Media Library. A document with a dozen photographs can produce several megabytes of markup, which is slow to paste and slow to load afterwards.
For a document like that the plugin is the better route rather than a preference. It uploads each image as a real attachment, so your post holds a reference instead of the image itself, and WordPress can generate thumbnails and serve the right size to each visitor.
No. The conversion runs in your browser using JavaScript. Your file is read into memory on your own machine, converted, and thrown away when you close the tab. Nothing is sent to a server, so there is nothing for us to store or see.
In the WordPress block editor, open the options menu at the top right and choose Code editor. Paste the blocks there, then switch back to the visual editor. The blocks appear as real headings, lists and tables you can edit normally.
They come out as base64 data inside the markup. That means they display, but they are not in your Media Library, so they cannot be reused, resized or given alt text through the usual screens. The plugin uploads images as real attachments instead.
Almost always because it was never a heading in Word. Text that was made bigger and bold looks like a heading but carries no heading style, so nothing can tell it apart from body text. Our free Word heading checker finds these before you convert.
Not with this tool. It takes one file at a time by design, because a browser tab is a poor place to process fifty documents. The DocxToWP plugin does bulk imports of up to 100 files in one run.
No. The older .doc format is a binary format that browsers cannot read. Open the file in Word and use File then Save As to save it as .docx, then try again.
A step by step guide to getting a .docx file into WordPress with headings, lists, tables and images intact. Includes what to fix in Word first and how to check the result.
Pasting text is easy, but images are the hard part. Learn how to automatically extract and upload images from Word to your WP Media Library.
Extra line breaks, missing spaces, broken tables, mso- styles in your HTML. Here is what actually happens when you paste from Word into WordPress, and how to stop it.
Done. Copy the blocks above.
This tool handles one document and gives you markup to paste. The DocxToWP plugin skips the copy and paste. It uploads your images to the Media Library as real attachments, fills your Yoast or Rank Math fields, and imports a hundred documents in one run.
The free plugin has no upload cap. Pro is $39 one-time and adds bulk import, scheduling and SEO fields.
Get Pro for $39 Lifetime access ends September 30 (30 days left)