Why Does My Word Document Lose Its Layout in WordPress?
You spend an afternoon on a newsletter in Word. Two columns of articles, a photograph across the masthead, a coloured panel down one side, tip boxes in the footer. You import it into WordPress and get a single column of grey text, in roughly the right order, with none of the design.
Nothing went wrong. The importer did what almost every Word importer does. The interesting question is why that is the normal result, and what has to happen instead.
What Word actually puts in the file
A .docx is a zip archive, and the document itself is an XML file inside it. Open a plain report and the structure matches what you would guess: a body element, paragraphs inside it, one after another in reading order.
Open a newsletter and the body is nearly empty.
The newsletter I have been testing with has seventeen shapes in it and not one word in the document body. Every heading, every article, every tip is inside a floating text box that is positioned on the page by coordinate. The masthead photograph is not an inserted image; it is the fill of a rectangle. The brown stripe down the left is another rectangle, behind the text. Word stores these as drawings anchored to the page, each carrying its own offset, size, fill and stacking order.
That is what a designed document is, in file terms: not a sequence of paragraphs but a canvas with boxes nailed to it.
So an importer that walks the document body — which is the correct thing to do for a report, a manuscript or a blog draft — finds nothing at all in a newsletter. Some plugins report it as an empty document. Better ones go and collect the text boxes separately, which gets you all the words, in the order the boxes happen to appear in the XML, as one column.
That is the honest ceiling of a text-based importer. It has the text. It never had the geometry.
Why "just use the coordinates" does not work either
The obvious fix is to read the coordinates and place everything exactly where Word had it. Position each box absolutely, in pixels, and the page looks identical.
It looks identical at exactly one window width.
A Word page is a fixed canvas: 215.9mm wide, always, because it is going to be printed or read as a page. A web page is a column of unknown width on a screen you cannot see, somewhere between a 320px phone and a 4K monitor, inside a theme that might give your content 700px or the full viewport. Absolute coordinates in that environment produce a layout that is perfect on the developer's screen, overlapping on a laptop, and a horizontal scrollbar on a phone.
So neither extreme is the answer. Flattening everything to one column throws away the design. Pinning everything to coordinates throws away the web.
What preserving the layout actually means
The middle path is to work out the structure the coordinates imply, and rebuild that with normal web layout.
That is what layout-preserving import in DocxToWP Pro does, and it happens in stages:
- Measure every shape. Position, size, fill, outline, stacking order, how much text it holds and at what size — all read from the file, in millimetres, resolved from whichever origin Word used (the page, the margin, the column or the paragraph).
- Infer the arrangement. Shapes that overlap vertically form a row. Within a row, shapes that overlap horizontally form a column. Apply the same two rules inside a column and you get nesting, which is how a heading that spans two tip boxes ends up above both of them rather than inside one.
- Separate the panels from the content. A textless shape that other shapes sit on top of is a background, not an element. The brown stripe is a panel; the photograph in the footer, with nothing on it, is content.
- Write ordinary HTML and CSS. Sections stack, columns are flex children with proportional widths, panels are background layers. Nothing is positioned absolutely except the panels, and those are clipped to the row they belong to.
The result holds its proportions on a desktop, drops three columns to two on a tablet, and stacks everything in reading order on a phone — with the panel colours moved onto the boxes they were behind, so white text on a dark panel stays white text on a dark box rather than white text on white.
The honest part
This is a faithful responsive layout based on the document's design, not a photograph of the page. Some things do not survive the trip, and the importer tells you which:
- Overlapping boxes cannot be split into rows and columns, because they are not in rows and columns. They are kept as a stack in reading order and reported. In my test file the masthead is two boxes that overlap, and so is the credit line sitting on the footer photograph.
- Vertical proportions inside a section are not reproduced. A web section is as tall as its content; a Word section was as tall as the designer dragged it. Panels are drawn behind the whole row instead.
- Text outside the text boxes has no position on the page, so when a document mixes ordinary paragraphs with boxes, those paragraphs go above the layout and the import says so.
Every one of those appears in a notes panel on the preview screen before you publish. Nothing is left out of your post without being named — which matters more than the fidelity, because a missing paragraph you were told about is an edit, and one you were not told about is a reader finding it.
How to import a Word document and keep the layout
- Upload the .docx. Go to DocxToWP → Upload and drop the file in. There is an Import Mode option with a "Preserve the page layout" checkbox. Tick it if you already know the document is a designed one; leave it alone if you are not sure.
- Let it tell you which kind of document you have. Every Word upload is measured on the way in. If the text is at least 80% inside two or more text boxes — a newsletter, a brochure, a flyer — the preview screen offers the choice. An ordinary report never sees it, because layout import would make a worse job of a report than the normal import does.
- Compare the two versions. The preview screen has a toggle: Plain text or Preserve layout. Switching re-reads the file you already uploaded, so there is no second upload and no waiting twice. Look at both and pick.
- Read the notes. Under the preview is a list of what was inferred: headings promoted on font size, panels stretched or hidden behind others, boxes that overlap too much to separate. It is worth thirty seconds.
- Publish. The layout markup goes into post content and its stylesheet into post meta, scoped to that post, so it cannot touch your theme, your header or another post on the same page.
Why your headings may not look like headings
One detail that surprises people. Most designed documents declare no heading styles at all. The designer selected the masthead, set it to 48pt bold, and moved on. As far as the file is concerned that is a paragraph in a large font, not a Heading 1.
A careful importer reports what the file says, so you get a paragraph — correct, and useless for search engines, screen readers and anyone navigating your post by headings.
Layout import treats size plus brevity as the signal: a short run of text set well above body size becomes a real <h1> or <h2>, at a size that scales with the screen rather than a fixed pixel value. Every promotion is listed in the notes, so you can see what it decided and why. A 487-character paragraph at body size is never touched, however it is styled.
Who this is for
- Newsletter publishers moving a Word or Publisher template onto the web each month.
- Businesses with brochures and one-pagers that were designed once and now need to exist as pages.
- Agencies handed a folder of designed documents by a client who considers them finished.
- Anyone migrating a document archive where the documents were laid out, not just written.
If your documents are ordinary prose — reports, manuscripts, posts drafted in Word — you do not need any of this. The standard import is better for those, which is why it stays the default and why the option is only offered for files that qualify.
Free or Pro?
Two plugins, and the names are close enough to be worth spelling out:
- DocxToPost is the free plugin on WordPress.org. It imports one document at a time, converts .docx and Markdown, pulls every embedded image into your Media Library, and since version 1.2.9 it reads the text inside Word text boxes too. So a newsletter imports with every word intact — as one column.
- DocxToWP Pro adds layout-preserving import, along with bulk import, drip publishing, SEO automation and image optimization.
The free plugin is not a crippled version of the paid one. It is a complete single-document importer, and it is the right tool for most documents. Layout preservation is for the ones where the design is the content.
Keep the design, not just the words
Layout-preserving import ships in DocxToWP Pro 1.4.0. Upload a newsletter, compare both versions side by side, and publish the one you prefer.
See DocxToWP ProFrequently asked questions
Why does my Word document lose its layout in WordPress? Because a designed document stores almost nothing in the document body. A newsletter is a set of floating text boxes positioned on the page by coordinate, with background shapes behind them. An importer that walks the document body, which is correct for a report, finds no paragraphs at all. The better ones collect the text boxes separately, which recovers every word but not the geometry, so you get one column.
Can I convert a Word newsletter to WordPress and keep the columns? Yes, with layout-preserving import in DocxToWP Pro. It reads where each shape sits on the page, infers which shapes are rows, which are columns and which are the background panels behind them, and rebuilds that as a responsive layout that stacks on a phone.
Will my newsletter look exactly like the Word file? No. A Word page is a fixed canvas with everything at absolute coordinates; a web page is a column of unknown width on a screen of unknown size. You get the same structure, columns, panels, heading hierarchy and reading order, rebuilt as a layout that works at every width. The type and spacing follow your theme.
Does the free plugin preserve Word layouts? No. DocxToPost, the free plugin, reads every word of a document built from text boxes and gives you that text as formatted content in one column. Keeping the columns and background panels is a DocxToWP Pro feature.
What happens to images in a Word newsletter? Pictures inside text boxes and pictures used as shape fills both come across into the Media Library. A photograph with nothing on top of it becomes an image in the flow; one with text over it becomes a background with the text on it. Identical copies are uploaded once, not once per use.
Will the generated stylesheet affect the rest of my site? No. Every selector it generates begins with that post's own wrapper class, so it cannot reach your theme, your header, your sidebar, or another layout post on the same archive page.
A few others worth answering while you are here. Documents from Google Docs or Pages work if they export to .docx with real text boxes, which both do; what matters is whether the file uses positioned shapes, not which program wrote it. You can edit the layout afterwards — it is ordinary HTML with class names, shown in a plain editor on the preview screen rather than the visual editor, because the visual editor reflows block markup and can drop an empty container. And if you tick the box on an ordinary document, it imports normally and the preview tells you there was no page layout to preserve; the upload is not rejected.
Related Articles
How to Embed a YouTube Video in WordPress from a Word Document
Paste a YouTube or Vimeo link into your Word document and it imports as a playable video, not a link. How WordPress embeds work, why pasting iframe code fails, and what to do instead.
How to Import Joplin Notes to WordPress
Joplin to WordPress: export your notes as Markdown and import them as posts with headings, lists, tables, code and images intact. One note free, a whole notebook with Pro.
How to Import a Notion Export into WordPress
Notion to WordPress via Markdown export: get pages into WordPress as posts with headings, lists, tables and images intact, one page free or a whole workspace with Pro.
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.