Back to Blog
tutorial
April 21, 2026
7 min read

Import Word Into WordPress, Formatting Intact

N
Nagaraj Dev
Plugin Developer & Creator

Most guides on this start at the WordPress end. That is the wrong place to start.

Half of what goes wrong in a Word to WordPress import is decided inside the Word document, before you open WordPress at all. Fix that first and the import gets easy.

Here is the whole process.

Does WordPress import Word documents natively?

No. This surprises people, so it is worth stating plainly.

If you drag a .docx file into the WordPress editor, one of two things happens: it uploads to the Media Library as a downloadable file attachment, or nothing happens at all. WordPress has no built-in converter. There is no "Import Word Document" button anywhere in core, and there never has been.

Every method that works (pasting, a plugin, manual HTML conversion) is a workaround for that gap.

Step 1: Fix the document in Word first

Ten minutes here saves an hour later. Four things to check.

Use real heading styles, not big bold text.

Open the Navigation pane in Word (View, then tick Navigation Pane). Your document outline should appear on the left, showing every heading nested properly.

If the pane is empty, your headings are not headings. They are normal paragraphs that you made bigger and bold. Word knows the difference and so does every import tool. Text that only looks like a heading will import as a plain paragraph.

Fix it by selecting each heading and applying Heading 1, Heading 2 and so on from the Styles gallery. This is also the single biggest thing you can do for your SEO, because your heading structure is what search engines read as your content outline.

Use real lists.

Click into a bullet point. If the bullet list button in the toolbar is highlighted, it is a real list. If it is not, you typed a dash or a bullet character at the start of a paragraph and it only looks like a list.

Real lists import as ul and ol. Fake lists import as paragraphs starting with a dash.

Mark your table header rows.

Click in your table, go to Table Design, and tick Header Row. Then in Table Layout, select the first row and choose Repeat Header Rows.

Without this, the header row imports as an ordinary row. Your table will still look roughly right but it loses its accessibility and your theme's table header styling will not apply.

Get images inline, not floating.

Right click any image and check the wrap setting. If it says In Line with Text, it will import cleanly. If it is set to Square, Tight, Behind Text or In Front of Text, its position is a Word layout instruction with no web equivalent. The image will still import but it will land wherever the text flow puts it.

Web pages do not have pages. Anything you positioned relative to a page edge has nowhere to go.

Step 2: Decide what you are actually doing

Two different jobs get confused here.

Transferring a document. The WordPress version should read the same as the Word version. Knowledge base articles, documentation, research papers, course material, reports. Structure is the content.

Writing a web page that starts from a document. The Word file is a draft. The published version will have a call to action, a table of contents, pull quotes, a gallery. It will not look like the document.

If it is the second, do not fight the import. Get the text in as plain text and build the page properly. Automation will only get in your way.

The rest of this guide is about the first job.

Step 3: Pick your import route

Three options, and the right one depends on how often you do this.

Once a month or less: use Mammoth DOCX Converter. It is free on WordPress.org, it converts a single .docx to clean HTML, and it is enough.

Regularly, or with images and SEO fields: use a full importer. DocxToWP reads the file directly, uploads embedded images to your Media Library as real attachments, and lets you set post type, categories, tags, featured image and Yoast or Rank Math fields before anything is created.

A folder at a time: you need bulk import. Doing thirty documents one at a time is a whole day.

What all three have in common is that they read the .docx file rather than the clipboard. That is the part that matters. A .docx is a zip archive of structured XML that says exactly what is a heading, what is a list and what is a table header. The clipboard is a lossy summary of that. Reading the file skips all the problems that come with pasting.

Step 4: Import it

Whichever tool you use, the shape is the same.

  1. Upload the .docx file
  2. Preview the result before publishing
  3. Set the post type, status, author, categories and tags
  4. Set the featured image
  5. Fill the SEO title and meta description
  6. Create the post as a draft, not published

That last one matters. Import to draft every time. Publishing straight from an import is how a half broken post ends up live on a client site.

Step 5: Check the result properly

The failures here are quiet. Nothing looks obviously broken. Things are just wrong.

Scroll the whole post once and check these six:

Heading levels. Open the document outline view in the editor. You should have one H1 and a sensible nesting under it. Jumps from H2 straight to H4 mean a heading style was wrong in the source.

Nested lists. Sub-bullets are the most common casualty. They flatten to the top level and nobody notices until a reader complains that the steps make no sense.

Table header rows. Check the first row is actually a header and not a normal row that happens to be at the top.

Image placement and alt text. Images usually import fine. Alt text often does not, depending on whether it was set in Word. Every image needs alt text before you publish.

Special characters. Curly quotes, em dashes, accented characters and anything non-English. Encoding problems show up here first, as question marks or odd symbols.

The code view. Switch to the code editor and scan for mso- or style= attributes you did not put there. A clean import should have almost no inline styling. If it is full of styles, the tool converted the clipboard rather than the file, and you will fight your theme forever.

Step 6: Fix the two things that always need fixing

Even a perfect import leaves work.

Internal links. Links inside your Word document point at other Word files or at local paths. Those are dead on the web. Find them and repoint them at the right WordPress URLs.

The excerpt. Auto-generated excerpts take the first 55 words, which for a document is usually the introduction and reads badly in a listing. Write a real one.

If you are importing a lot of documents

The single document process above does not scale. Three things change.

Naming. Decide a filename convention before you start. If your importer matches images to documents by filename, chapter-01.docx and chapter-01.jpg is what makes that work. Rename before you import, not after.

Publishing all at once is bad. Forty posts going live at the same timestamp looks like a dump to readers and to search engines. Spread them out. Drip publishing exists for this.

You will need an undo. Something in a batch of forty will be wrong. Make sure whatever you use can reverse an entire import run in one action, otherwise you are deleting forty posts by hand.

What survives an import, and what does not

Assuming style-based formatting and a proper importer:

Survives reliably

  • Headings H1 to H6, as real heading tags
  • Bold, italic, underline, strikethrough, superscript and subscript
  • Bulleted and numbered lists, including nesting
  • Tables, including header rows and merged cells
  • Block quotes, where a quote style was used
  • Hyperlinks, internal and external
  • Inline images, into the Media Library
  • Image alt text written in Word
  • Paragraph breaks versus line breaks, as distinct things

Does not survive, and should not

  • Page margins, page size, page breaks. A web page has no pages
  • Headers and footers. No equivalent concept
  • Exact fonts and point sizes. Your theme controls typography, deliberately
  • Column layouts. These need real responsive markup
  • Text boxes and floating shapes. No clean HTML equivalent
  • Word Art, SmartArt, and chart objects. Flattened to images at best

The short version

Fix the document in Word first. Real headings, real lists, marked table headers, inline images.

Use a tool that reads the file, not the clipboard.

Import to draft, check the six things above, then publish.

That is it. Most of the pain people have with this comes from skipping the first step.


Not sure which tool fits? Here is an honest comparison of all four routes, including when each one is the wrong choice.

Related Articles

Import your first Word document in under 60 seconds

Start free. Import a Word document without copy-pasting or rebuilding its formatting. No account, no credit card. Straight from WordPress.org.

Get Pro for $39