Common CMS Export Mistakes That Break Blog Formatting
You just imported your blog into a new CMS, and the headings are scrambled, images are missing, and every paragraph has mysterious spacing. If that moment of export panic feels familiar, you're not alone, CMS export mistakes that break blog formatting are among the most common causes of post-migration ranking drops and reader churn.
You're right to be frustrated: you did everything correctly on the old platform, yet the new one renders your content like a ransom note. Most of these breaks are invisible until they're live, which makes them doubly dangerous.
This guide walks you through the three most damaging export failures, collapsed heading hierarchies, invisible characters, and image path corruption, and gives you a repeatable inspection-and-repair framework. You'll also see why an AI SEO content engine that ships clean semantic HTML directly to WordPress or your API sidesteps these issues entirely, because exports never carry theme-specific styling in the first place. Stick around for the Blogger 2025 export change that quietly broke thousands of heading structures, and the fix most tutorials miss.
Why Do CMS Exports Break Blog Formatting in the First Place?
A CMS export is a structured file, typically XML, JSON, or HTML, that packages your posts, pages, and media for migration to another platform. The problem is that every CMS stores styling differently, and the export format rarely captures how your content actually renders.
Think of a CMS export like photocopying a book: the words survive, but the typography, margins, and chapter breaks depend on the original printing press. When you reprint from the photocopy on a different press, the layout drifts.
The root cause sits in two competing approaches. A WYSIWYG editor (What You See Is What You Get) lets you format text visually, but it often injects inline styles, style rules embedded directly on each element, like style="font-size:18px". In contrast, semantic HTML marks up content by meaning, <h2> for subheadings, <p> for paragraphs, and leaves presentation to the theme's stylesheet.
When an export carries inline styles into a new theme, those hard-coded rules fight the destination's design system. When it strips semantic tags, the new CMS has no structure to style. The fix is a three-phase process: inspect the raw export, repair structural issues, and verify rendering before publishing.
Mistake #1: Heading Hierarchy Collapses (H1s Become H3s)
A heading hierarchy collapse happens when your exported post loses its semantic heading levels, an H1 becomes an H3, or every subheading flattens to the same size, destroying both readability and SEO signals. This is the most common structural break in CMS migrations.
In 2025, Blogger changed its export mechanics, and many users discovered their H1 titles had silently converted to H3 tags after import. The collapse isn't cosmetic: search engines and AI answer engines rely on heading levels to understand content priority.
Prerequisites: Access to your exported file (XML or HTML), a text editor like VS Code or Notepad++, and your destination CMS's post editor.
- Open the raw export file in your text editor and search for
<h1>. Count how many H1 tags exist per post. You should see exactly one per article, the title. - Compare against the live source post. Open the original blog in a browser, right-click the title, and select Inspect. Note the actual heading level. If the source shows
<h1>but the export shows<h3>, the collapse happened during export. - Re-map the hierarchy manually in your destination CMS. Select the title block and assign Heading 1. Select each section subheading and assign Heading 2, then Heading 3 for nested subsections. You should see the font size and weight change immediately to match your theme's heading styles.
- Run a heading audit with a browser extension like HeadingsMap. The outline should show one H1, followed by H2s and H3s in logical order with no skipped levels. If the outline reads cleanly top to bottom, the repair is complete.
Manual re-mapping works for small blogs, but automated tooling that exports semantic HTML from the start eliminates the collapse entirely. Next, we'll tackle a subtler saboteur: invisible characters that survive the export.

Mistake #2: Invisible Characters Survive the Export
Invisible Unicode characters embed themselves in your content during drafting and silently survive CMS exports to break rendering, spacing, and search indexing. Here are the most damaging offenders, ranked by how often they corrupt blog formatting.
- Non-breaking spaces (U+00A0) lock words together and create ragged line breaks. These characters look identical to regular spaces but prevent line wrapping, so headings and paragraphs render with awkward gaps or overflow on mobile. Search for
\u00A0in your exported HTML and replace with standard spaces before publishing. - Zero-width characters (U+200B, U+200C, U+200D) break keyword matching and link detection. These invisible glyphs sit between letters without taking up visual space, but search engines see them as real characters. A keyword like "SEO content" becomes "SE\u200BO content" to crawlers, silently destroying your on-page optimization. Run your exported text through a Unicode cleaner that flags zero-width ranges.
- Smart quotes and em dashes (U+2018, U+2019, U+201C, U+201D, U+2014) trigger encoding mismatches. When your CMS declares UTF-8 but the export pipeline converts to Latin-1 or Windows-1252, these characters render as black diamonds, question marks, or mojibake. Verify the charset declaration in your exported HTML head matches the actual byte encoding.
Here's the part most guides skip: invisible characters don't just affect visual rendering, they corrupt structured data and AI answer engine citations. When Google or ChatGPT extracts your article for a featured snippet or AI response, zero-width characters and non-breaking spaces fragment sentences into unrecognizable tokens. A citation-optimized article that reads perfectly in your editor can fail AEO extraction entirely because invisible Unicode breaks the semantic units that answer engines parse. Always run exported content through a character audit before scheduling publication.
Mistake #3: Theme-Specific CSS Classes Come Along for the Ride
Theme-specific CSS classes are HTML attributes that style content based on your current WordPress theme's stylesheet, and they break formatting when pasted into a different theme that lacks those style definitions. Think of them like furniture built for one house, move it to a new home and nothing fits the rooms.
When you copy content from a page builder or rich text editor, the export often carries inline classes like class="wp-block-heading has-vivid-cyan-blue-color" or class="elementor-heading-title". Your new theme doesn't recognize these selectors, so headings lose their size, buttons lose their shape, and text inherits default browser styling that looks nothing like your design.
The fix is to strip theme-specific classes during export while preserving semantic HTML tags. A clean export keeps <h2>, <p>, and <blockquote> intact but removes class and style attributes that reference the old theme. This lets your new theme's stylesheet apply its own rules naturally. For intentional formatting like pull quotes or callout boxes, rebuild them in the new theme's block system rather than importing legacy markup.

Mistake #4: Image Alt Text and Captions Vanish
Image alt text and captions are stripped during many CMS exports because they live in metadata fields separate from the visible content body. This silently destroys both accessibility compliance and image search traffic.
Prerequisites: access to your source CMS media library and the exported HTML file. Budget 15-20 minutes per 10 images.
- Export your content and open the HTML file in a text editor. Search for
<imgtags and check whether each one contains analt=""attribute with meaningful text. You should see descriptive alt text on every image, not empty quotes or missing attributes. - Compare against your source CMS media library. Open the media library in your original platform and note the alt text and caption for each image. Flag any image where the export shows empty or missing alt attributes.
- Re-enter missing alt text in your destination CMS. For each flagged image, open the media attachment settings and type the original alt text into the Alternative Text field. You should see the alt text appear in the image block's settings panel.
- Re-add captions using the destination CMS caption field. Select the image block and click the caption area below the image. Type or paste the original caption. You should see the caption render below the image in the editor preview.
- Run a post-export verification checklist. Inspect the published page source and confirm every
<img>tag has a non-emptyaltattribute. Use a browser accessibility checker to confirm no missing-alt warnings remain.
Alt text verification after export is the step most publishers skip, and it costs you twice: screen reader users lose context, and Google Image search loses the descriptive text it uses to rank your visuals. For publishers targeting AI answer engines, alt text also feeds image understanding models that cite visual content in responses. BloGoose handles this automatically by preserving alt text and captions through its export pipeline, producing citation-optimized articles that keep metadata intact from draft to publish.
Once your images are verified, the next formatting risk comes from content you paste in from elsewhere, which leads directly into Mistake #5: Copy-Paste Formatting from Documents (the Richard Byrne Problem).
Mistake #5: Copy-Paste Formatting from Documents (the Richard Byrne Problem)
You've probably done this one today: pasting text from Google Docs or Word directly into your CMS, only to find invisible span tags, inline styles, and zero-width characters have silently corrupted your post's formatting. The Richard Byrne problem, named after the educator whose widely shared video demonstrates this exact failure, is the single most common source of "clean-looking" exports that render unpredictably across themes and devices.
Prerequisites: A plain-text editor (Notepad, TextEdit in plain-text mode, or VS Code) and access to your CMS's HTML/source view. Total time: under 5 minutes per post.
- Open your CMS editor and switch to HTML or source view. Locate the toolbar button labeled "HTML," "Source," or "Code", usually a
</>icon. You should see the raw markup behind your post, including any hidden<span>tags and inlinestyle=""attributes that survived the paste. - Select all content and copy it into a plain-text editor. Use Ctrl+A (or Cmd+A), then paste into Notepad or TextEdit set to plain-text mode. This strips every invisible formatting instruction in one pass. You should see only letters, numbers, and line breaks, no colored highlights or font changes.
- Re-apply formatting manually inside the CMS. Paste the clean text back into the visual editor, then use the CMS's native heading dropdown, bold button, and list controls to rebuild structure. You should see consistent heading levels and no stray font-size overrides when you preview.
- Run a final source-view scan. Switch back to HTML view and search for
<spanorstyle=. You should see zero matches if the strip worked; any remaining matches indicate a second paste layer that needs repeating from step 2.
This step-by-step removal process matters because most text SERP results explain that the problem exists but skip the actual stripping workflow, leaving readers stuck with corrupted exports they can't repair.

Mistake #6: Broken Internal Links After URL Structure Changes
Broken internal links are a formatting symptom as much as an SEO problem: a post that renders with dead anchor text, missing navigation breadcrumbs, or orphaned "related post" modules signals to readers, and crawlers, that the export pipeline failed at the URL mapping stage. When you migrate or restructure URLs during a CMS export, every internal reference pointing to the old path becomes a 404 that breaks both the visual flow and the crawl graph.
The fix starts with an internal link map generated from your sitemap crawl before export. This map lists every source URL and its target, so you can rewrite links in bulk rather than hunting through each post manually.
| Detection Method | What It Catches | Best For |
|---|---|---|
| CMS built-in link checker | 404s on published pages | Small sites with under 100 posts |
| Third-party crawler (Screaming Frog, Ahrefs) | Broken internal links, redirect chains, orphan pages | Mid-size blogs and content teams |
| BloGoose sitemap crawl + link map | Pre-export URL inventory and post-export verification | Publishers migrating large archives |
Third-party crawlers are genuinely excellent at post-export auditing, Screaming Frog's free tier covers up to 500 URLs, which is enough for most small blogs. BloGoose's advantage is timing: it builds the link map before export, so you catch breakage at the source instead of patching 404s after readers have already hit them.
Mistake #7: Exporting Without a Clean-HTML Strategy
A clean-HTML strategy is a pre-export plan that defines which markup elements survive the migration, which get stripped, and which get rebuilt natively in the destination CMS. Think of it like packing for a move: you don't throw every drawer's contents into one box and hope the new house sorts it out, you label boxes, discard what won't fit, and know exactly where each item goes on arrival.
At the simple level, export with a "paste as plain text" rule and rebuild headings, lists, and links manually. This works for one-off posts or small migrations under 20 pages. At the intermediate level, use a find-and-replace workflow in a code editor to strip <span> tags, inline styles, and theme-specific classes in bulk before import. At the advanced level, automate the entire pipeline: crawl the source site, extract clean semantic HTML, map URLs, and publish directly to the destination, which is what automated SEO content pipelines like BloGoose do when they publish directly to WordPress or your custom API.
Fix vs. Rebuild: A Decision Matrix
Multiply the number of affected posts by the severity of breakage on a 1-3 scale (1 = minor spacing issues, 3 = collapsed headings and broken links). If the score is under 30, fix individual posts manually. If it's between 30 and 100, strip and rebuild formatting in bulk using a plain-text workflow. If it exceeds 100, rebuilding the export pipeline with a clean-HTML strategy is faster than repairing each post, the breakage is systemic, not incidental.
Passage-indexed answer: When should you rebuild blog formatting instead of fixing an export? Rebuild when the number of affected posts multiplied by breakage severity exceeds roughly 100, or when the same formatting errors repeat across most posts, indicating the export process itself is flawed. Manual repair works for isolated incidents under 30 points, but systemic corruption from copy-paste formatting or theme-specific CSS classes means every future export will reintroduce the same problems until you change the pipeline itself.
Ready to stop repairing exports and start publishing clean? BloGoose handles the crawl, clean-HTML extraction, and direct publishing in one pass.
Next, the most common questions readers ask about CMS export formatting, answered directly.
FAQ: CMS Export Formatting Questions
These are the most common formatting questions users ask after a CMS export breaks their blog layout, with direct answers optimized for quick reference.
How do I fix formatting after exporting from Blogger?
Open the exported XML in a plain-text editor, strip Blogger's inline style attributes and div wrappers, then paste content into WordPress using the "Paste as text" option. Reapply headings and lists inside the WordPress block editor so the theme's native styles take over.
Why does my text look different after pasting into WordPress?
WordPress preserves source formatting when you paste directly, carrying over font families, sizes, and line heights from the original document. Use Ctrl+Shift+V (paste without formatting) or the "Paste as text" toolbar button to strip styling and let your theme control appearance.
Can I export a CMS without breaking heading structure?
Yes, if the export tool preserves semantic HTML tags rather than visual styling. Before exporting, confirm headings use actual H1-H6 tags instead of bolded or enlarged paragraphs. After import, run a heading audit to verify hierarchy survived intact.
What's the fastest way to clean HTML after an export?
Paste the exported HTML into a dedicated cleaner like HTML Cleaner or a code editor with regex find-and-replace, targeting inline style attributes, span tags, and empty div elements. For bulk cleanup, a script that strips non-semantic tags processes hundreds of posts in minutes.
Why does my blog show weird symbols after an export?
Invisible Unicode characters and non-breaking spaces survive the export and render as odd symbols or extra spacing. Run content through a Unicode cleaner or search for common offenders like and zero-width spaces, then replace them with standard spaces.
How do I prevent formatting issues before exporting a CMS?
Create a clean-HTML strategy first: write in plain text or Markdown, avoid pasting from word processors, and use only theme-native blocks. Test the export with one post, inspect the raw HTML for stray tags or classes, then batch-export the rest.
Build a Clean Export Workflow Before Your Next Migration
Every formatting failure in this article traces back to one root cause: exporting content without a defined clean-HTML pipeline. The fixes are not one-off patches but a repeatable process you can apply to every future migration or CMS switch.
Start by auditing your last export. Open the raw HTML of three posts and check for collapsed headings, inline styles, invisible characters, and broken internal links. That 10-minute review tells you exactly which mistakes your current workflow is producing.
Next, turn the fixes into a checklist: strip source formatting, verify heading hierarchy, clean alt text, and test one post before batch-exporting. Run the checklist on every export going forward.
If you want the process automated end-to-end, BloGoose handles clean publishing as part of its content engine, so formatting survives the trip from draft to live post without manual cleanup. The goal is not just fixing broken exports but never creating them in the first place.