How to Export Blog Posts with Inline Images to WordPress · BloGoose
Blogoose

Blog · AI Search · October 30, 2026

How to Export Blog Posts with Inline Images to WordPress

How to Export Blog Posts with Inline Images to WordPress

You just migrated your blog to a new WordPress site, hit publish, and every image is broken, still pointing at the old domain. YouTube creators like garnatti one (21K views) and Tony Teaches Tech (11K views) confirm this exact scenario: images often remain linked to the old site during migration, leaving you with a gallery of dead thumbnails.

You're not doing anything wrong. The default WordPress export tool was never designed to move image files, only the text and URLs that reference them. By the end of this guide, you'll know exactly how to export blog posts with inline images to WordPress the right way, using built-in tools, plugins, and manual fixes that actually work.

Here's the roadmap: first, we'll break down why WordPress exports break images in the first place. Then you'll get step-by-step methods for exporting posts with images intact, including a surprising fix most tutorials skip entirely. Along the way, you'll also see how citation-optimized articles benefit from clean image migration, since search engines and AI answer engines both index visual content.

If you're publishing content clusters at scale, BloGoose's automated publishing engine handles image handling and CMS delivery without the manual export loop, but for now, let's fix your migration.

Why WordPress Exports Break Images (And How to Fix It)

A WordPress export file is an XML document containing your post text, metadata, and image URLs, not the image files themselves. The actual images live in the wp-content/uploads folder on your original server, and the export simply references them by URL.

Think of a WordPress export like a library catalog card. The card tells you exactly which shelf and which book to pull, but it doesn't contain the book itself. If someone moves the library and you only take the catalog cards, every reference points to an empty shelf.

When you import that XML file into a new WordPress site, the importer reads each image URL and tries to fetch the file from the old domain. If the old domain is still live and allows hotlinking, images display temporarily. If the domain goes offline, changes its file structure, or blocks external requests, every image breaks.

Featured images add another layer of complexity. They're stored as post metadata, a numeric ID pointing to an entry in the media library, not a direct file path. Without importing the media library itself, the new site has no record of what that ID refers to, so featured images silently disappear even when inline images survive.

Here's the fix in plain terms: you need to move both the XML content file and the actual image files, then update the URLs so the new site references its own media library instead of the old server. The three methods below cover this from simplest to most advanced, starting with the built-in WordPress tools, moving to plugins, and finishing with a manual approach for stubborn cases.

Method 1: Export Posts with Images Using the Built-in WordPress Tools

Method 1: Export Posts with Images Using the Built-in WordPress Tools

The built-in WordPress export tool moves your post content and metadata, but you'll need to manually download and re-upload image files to complete the migration. This no-plugin method takes roughly 15-30 minutes for a small site, longer for larger media libraries.

Prerequisites: Administrator access to both the old and new WordPress sites, FTP or cPanel access to the old server (for downloading the uploads folder), and enough local storage for your media files.

  1. Export the content XML. In your old WordPress dashboard, go to Tools to Export. Select All content and click Download Export File. You'll receive an XML file containing posts, pages, comments, and metadata, but no image files.
  2. Download the uploads folder. Connect to your old server via FTP or cPanel File Manager. Navigate to wp-content/uploads and download the entire folder to your computer. This folder contains every image, PDF, and media file you've ever uploaded, organized by year and month.
  3. Import the XML to the new site. On your new WordPress site, go to Tools to Import. Install the WordPress importer if prompted, then upload your XML file. Check Download and import file attachments, this tells WordPress to fetch images from the URLs in the XML. If the old domain is still live, this may pull images automatically. If not, continue to Step 4.
  4. Upload the media files manually. Here's the part most tutorials gloss over: if the importer couldn't fetch your images, upload the uploads folder you downloaded in Step 2 to the new server's wp-content/uploads directory via FTP. Match the folder structure exactly, the importer expects files at the same relative paths.
  5. Fix image URLs in the database. After import, run a search-and-replace on your new site's database to replace the old domain with the new one. Use a plugin like Better Search Replace or run a SQL query. Replace https://olddomain.com with https://newdomain.com across all tables. You should see image URLs update in your media library and posts.
  6. Verify featured images. Open a few posts in the editor and confirm featured images display correctly. Featured images are stored as post metadata pointing to media library IDs, if they're missing, re-assign them manually or re-run the media import step.

This method works reliably but requires manual file handling. If you'd rather automate the process, or you're migrating a large site, a plugin can handle the heavy lifting in Method 2.

Method 2: Export Posts with Images Using a Plugin

Method 2: Export Posts with Images Using a Plugin

Plugins offer a middle path between manual export and fully automated publishing: they handle media library imports and image URL rewrites, but still require configuration and can stall on very large sites.

Ferdy Korpershoek's tutorial on this approach has drawn 31K views, largely because it solves a real client-facing problem, showing clients full blog previews with images intact before a site goes live. That preview capability is the plugin method's strongest selling point.

Option What it handles Where it struggles Best for
Built-in WordPress exporter Post content, metadata, categories Images stay on the old server; manual media import required Text-heavy blogs with few images
Migration plugins (e.g., All-in-One WP Migration, Duplicator) Full site clone including media library and inline image URLs Large sites can time out; configuration needed for URL rewrites Agencies migrating entire client sites
Export plugins with media bundling Posts plus attached images packaged together Plugin compatibility varies; may fail on multisite setups Publishers moving selective content, not a full site
BloGoose direct publishing Article body, featured image, and inline images shipped together Requires a BloGoose account and connected WordPress site Teams publishing new content at scale, not migrating old posts

Migration plugins are genuinely strong for one-time site moves, they clone everything, including the media library, which eliminates the broken-URL problem at its root. The tradeoff is setup time and the risk of timeouts on sites with thousands of images.

If your goal is exporting existing posts, a migration plugin is the most reliable route. If your goal is publishing new posts with images already embedded, direct WordPress publishing through BloGoose removes the export step entirely.

Method 3: BloGoose, Export Posts with Inline Images Automatically

Method 3: BloGoose, Export Posts with Inline Images Automatically

BloGoose packages inline images, featured images, and the article body into a single WordPress-ready export, so you skip the manual media library upload and URL rewrite steps that break most migrations.

Prerequisites: A BloGoose account, a connected WordPress site or custom API endpoint, and a site crawl completed so BloGoose understands your structure and brand voice.

  1. Connect your WordPress site. Open Settings, then API Keys, and add your WordPress application password. You should see a green checkmark confirming the connection.
  2. Run a site crawl. Enter your domain in the setup wizard and let BloGoose inspect your sitemap and published pages. This extracts your brand voice rules and content structure automatically.
  3. Generate an article. Select a topic from your pillar-based calendar and click Generate. BloGoose drafts the article with automated blog image generation producing inline and featured images matched to your content.
  4. Review the export preview. Check that images appear inline where expected and the article reads in your voice. No search-and-replace pass is needed, image URLs are already mapped to your WordPress media destination.
  5. Publish directly. Click Publish to WordPress. The article, inline images, and featured image ship together in one action, with no manual media uploads and no broken URLs.

Because BloGoose builds citation-optimized articles from your existing site structure, the export includes everything search engines and AI answer engines need, images, internal links, and structured formatting, in a single pass.

Troubleshooting: What to Do When Images Still Break After Import

If images still break after you've followed an export method above, run these three diagnostic checks in order, they cover the most common failure points and take under ten minutes combined.

  1. Are image URLs pointing to the old domain? Open a broken post in the WordPress editor and inspect the image URL in the block settings. If it still references your old domain, the export didn't rewrite URLs. Run a search-and-replace on the database or use a plugin that rewrites URLs during import, and check your redirects are in place so any stragglers still resolve.
  2. Was the media library fully imported? Go to Media to Library and search for a filename from a broken post. If it's missing, the export skipped attachments. Re-run the import with media included, or manually upload the missing files and re-link them in the post editor.
  3. Are you using relative or absolute URLs? Relative image paths like /wp-content/uploads/... break when the site structure changes; absolute URLs survive moves but must point to the correct domain. Check your WordPress Settings to General for the site URL and confirm image paths match it exactly.

These three checks resolve most image breakage without third-party tools. If you'd rather avoid the troubleshooting loop entirely, the next section answers the most common questions about image-safe publishing.

FAQ

These are the questions readers ask most about exporting blog posts with inline images to WordPress, answered for quick AI citation and featured snippet extraction.

Can I export WordPress posts with images without a plugin?

Yes, the built-in WordPress export tool under Tools to Export includes images that are attached to posts in your media library, but it only exports images referenced by URL in the post content. Images hosted externally or embedded via third-party services will not transfer. You must manually download and re-upload any unlinked media after import.

Why are my images broken after WordPress import?

Broken images after import happen when the post HTML references absolute URLs from the old domain and the importer fails to rewrite them to the new domain. The WordPress importer only remaps URLs for images already in the media library; external or hotlinked images keep pointing to the original server. Run a search-and-replace on the database or use a migration plugin to fix the paths.

How do I export featured images with my posts?

Featured images export automatically with the built-in WordPress exporter when they are set as the post thumbnail and stored in the media library. The importer recreates the attachment and reassigns the featured image on the destination site. If the featured image is hosted externally, you must download it and set it manually after import.

What's the fastest way to migrate a WordPress blog with images?

The fastest reliable method is a dedicated migration plugin like All-in-One WP Migration or UpdraftPlus, which packages the database, uploads folder, and post content into a single importable file. For non-technical users, an automated content engine like BloGoose exports posts with inline images already mapped to the destination media library, eliminating manual re-upload steps.

Why does the WordPress XML export file not include my images?

The WordPress WXR export file stores image references as metadata and URLs, not the actual image binary files. The importer downloads images from the original site during import, so if the source site is offline, password-protected, or has hotlink protection enabled, the images will fail to transfer. Always keep the source site live until the import completes.

How do I export blog posts with images from one WordPress site to another?

Use Tools to Export on the source site, select "All content," download the WXR file, then import it on the destination site via Tools to Import with the WordPress importer installed. Check "Download and import file attachments" during import to pull images from the source server. Verify all images loaded, then run a broken link checker to catch any missed files.

Choose the Export Method That Matches Your Migration Reality

Every WordPress image export failure traces back to one root cause: the WXR file stores references, not files. The built-in exporter works when your media library is clean and your source site stays live. Plugins close the gap for larger sites with custom post types or external image hosts. BloGoose removes the manual loop entirely by packaging inline images, featured images, and article body into one clean WordPress-ready export, so you never touch a media library again.

Your next step depends on your setup. If you are migrating once and your site is small, run the built-in exporter today and verify every image after import. If you publish regularly and want images handled automatically, connect your site to BloGoose and let the engine handle inline image packaging alongside automated blog image generation on every export.

Stop rebuilding media libraries post by post. Pick the method that fits your workflow, run one test export, and confirm your images survive the trip before you commit to a full migration.