WordPress XML Export Inspector
Inspect exported posts, media records, slugs and statuses.
What Is a WordPress XML Export Inspector?
A WordPress XML Export Inspector helps you examine a WordPress export file before moving content to another website. WordPress uses the WXR (WordPress eXtended RSS) XML format to describe posts, pages, comments, taxonomies, authors, and other exportable records. Inspecting the file can reveal which content types are represented and what needs attention before import. An XML file is not a complete website backup, and a readable export does not guarantee a successful migration.
WordPress XML Export Inspector
Inspect exported posts, media records, slugs and statuses.
Inspect a WordPress WXR export before migration
Counts posts, pages, attachments, statuses, authors, categories and tags; finds duplicate slugs and missing fields. This reads a WordPress WXR file locally. It does not import posts or download media, and exported media references do not prove the original files still exist.
Inspect a WordPress WXR Export Before You Import or Migrate Content
A WordPress export often looks like one ordinary XML file, yet it can describe hundreds or thousands of different content records. Some are published posts or pages. Others are attachments, draft entries, custom post types, comments, taxonomy definitions, or navigation items. Importing the file without checking its scope can leave you wondering why certain posts appeared, why media is missing, or why a plugin-specific field did not transfer.
Start by identifying what WordPress actually exported, then compare that inventory with the content you intended to move. The format itself supplies useful clues, including post types, publication statuses, attachment references, and custom metadata. The guide below explains how to read those clues, what common problems mean, and why inspecting XML is only one stage of a safe WordPress migration. Specific on-page inspection features depend on the deployed tool implementation.
Read Full GuideShow Less
Recognize a WordPress Export File, Not Just Any XML Document
WordPress generates a WordPress eXtended RSS (WXR) file through Tools → Export. It is based on RSS 2.0 and adds WordPress-specific elements, such as wp:wxr_version, wp:post_type, and wp:post_status. Its XML namespaces distinguish WordPress metadata from standard RSS elements. A random XML sitemap, product feed, or plugin settings export is not automatically a WordPress WXR file.
Check the outer RSS and channel structure and the WXR version element. If those are absent, verify the file’s origin before choosing the WordPress importer. A file can be valid XML without using the structure the WordPress import workflow expects.
Find the Export File in Your WordPress Dashboard
- Sign in to the source website with a role permitted to export content.
- Open Tools → Export in the WordPress administration area.
- Choose All content for a broad transfer, or select posts, pages, or another available content type when you need a narrower export.
- Apply supported filters carefully; author, date, category, and status choices may exclude records you expect to migrate.
- Choose Download Export File, retain the original copy, and record the export date and filters.
WordPress’s core exporter includes content only for post types configured as exportable. It also omits auto-draft records. A custom post type that is absent from the file might have been excluded by registration settings rather than lost during download. When available, repeat the export with different filters to isolate a suspicious section.
Understand the Most Important WXR Elements
A typical WXR file stores content as <item> entries inside a channel. WordPress-specific fields identify each entry’s type, status, slug, original ID, and associated metadata. The following reference describes what those fields mean; it is not a claim that every inspector displays all of them.
| XML element | What it describes | Why it matters |
|---|---|---|
wp:post_type |
Post, page, attachment, or custom post type | Separates editorial entries from other records |
wp:post_status |
Published, draft, private, scheduled, or other status | Explains why an imported item may not be public |
wp:post_name |
Saved WordPress slug | Helps compare intended URLs and permalink paths |
content:encoded |
Stored post or page content | Shows what editorial material is included |
wp:postmeta |
Custom field key and value | Highlights dependencies on themes and plugins |
wp:attachment_url |
Source location of an attachment | Identifies a media reference, not image bytes |
Read a Small WXR Example Without Confusing It With an Entire Export
The simplified fragment below illustrates a single post item. It omits the outer RSS wrapper, namespaces, author definitions, taxonomy records, and other data required by a real export. Treat it as a reading example, not a file to upload.
<item>
<title>Beginner Guide</title>
<wp:post_id>42</wp:post_id>
<wp:post_name>beginner-guide</wp:post_name>
<wp:post_type>post</wp:post_type>
<wp:post_status>publish</wp:post_status>
<content:encoded><![CDATA[<p>Sample content</p>]]></content:encoded>
</item>
The original post ID is source-site metadata; do not assume it will remain the destination site’s database ID. Similarly, the slug helps identify a page but does not establish the final public permalink by itself. The destination site’s permalink settings and conflicts may affect the resulting URL.
Count Content Types and Publication Statuses Separately
A raw count of <item> tags is not a count of published articles. WXR items can include attachments, pages, navigation-related records, and custom types in addition to blog posts. Break the inventory down by wp:post_type, then subdivide important types by wp:post_status.
For instance, an export with 80 items might contain 40 posts, 15 pages, and 25 attachments. If only 30 posts have status publish, reporting 80 published posts would be incorrect. Compare these counts with the source dashboard and the filters used at export time. Differences are clues for investigation, not automatic evidence of a damaged file.
Review Categories, Tags, Authors, and Custom Post Types
WordPress exports can include category, tag, author, and custom taxonomy information. Confirm that the names and slugs you care about appear in the file and that your destination installation supports corresponding taxonomies and post types. A WordPress site using an events, directory, or ecommerce plugin may depend on custom registrations that are not supplied by the export alone.
During import, WordPress commonly asks you to map source authors to existing users or create new assignments. Plan these decisions before importing. Also inspect whether the destination site already has categories or tags with similar names but different slugs, because taxonomy merges require editorial attention after the transfer.
Understand Why Images May Be Missing After a Successful XML Import
A WXR export references media; it does not package image, video, or document file bytes. Attachment entries can include URLs pointing to the original uploads. The WordPress importer offers a Download and import file attachments option, but successful retrieval depends on those original files being accessible.
Inspect representative attachment URLs before changing domains or shutting down the source hosting account. Keep a separate copy of wp-content/uploads/ when your migration plan requires media files. Featured-image associations and embedded media URLs also deserve checks after import. An XML parser confirming that an attachment record exists cannot prove that the referenced image can be downloaded.
Distinguish XML Syntax Problems From Migration Problems
| Finding | What it may mean | Appropriate next action |
|---|---|---|
| XML parser reports an unexpected closing tag | Malformed markup, truncation, or altered export | Download a fresh export and validate its XML structure |
| XML is valid but WXR fields are missing | Different XML document type or incomplete export | Confirm the file came from WordPress Tools → Export |
| Expected post count is lower | Export filters or non-exportable content types | Review selections and custom post type configuration |
| Attachments are listed but images do not load | Old media URLs unavailable or download blocked | Verify original URLs and migrate file bytes separately |
| Custom fields exist but the display is wrong | Destination plugin, theme, or field registration missing | Install compatible dependencies and test on staging |
These checks diagnose different layers. XML well-formedness is a file-format property; WXR compatibility is a WordPress-specific property; a successful import depends on the destination environment as well.
Watch for Shortcodes, Blocks, and Plugin-Specific Metadata
Exported content may contain Gutenberg block comments, shortcodes, serialized values, and custom fields associated with SEO, page builders, forms, or custom content plugins. Their presence shows that information was stored in the source content; it does not guarantee the new website can render or interpret it.
Before import, list essential dependencies such as page builders, custom field frameworks, shortcodes, and registered post types. Recreate the needed functionality on a staging site and test a few representative records. Avoid editing serialized metadata with ordinary search-and-replace operations: changing string lengths without preserving serialization can corrupt stored values.
Protect Private Data When Inspecting a Content Export
WordPress exports can include unpublished content, comments, author details, and custom field values. Review what is in your file before sharing it with a third-party service. Do not assume a browser-based interface processes files locally unless its actual implementation or privacy documentation confirms that behavior.
For sensitive exports, use an inspection method you trust and a properly secured working environment. Restrict access to export copies, remove temporary files when the migration is complete, and never post the raw XML in a public support thread. An export is content data, not a harmless diagnostic screenshot.
Compare the Export Inventory With the Destination Website
Use an inventory sheet with columns for source type, expected count, imported count, publication status, and follow-up issues. After importing a test batch, compare representative titles, slugs, authors, categories, custom fields, and media. Recheck the final permalinks and any critical internal links.
If the domain or URL structure changes, build a separate source-to-destination map using the Website Migration URL Mapper. Inspect image references with the WordPress Media URL Mapper where relevant. A WXR inspection informs that work but does not create server redirects or update all old links automatically.
Use a Staging Import Before Changing the Live Site
- Keep the untouched WXR export and a separate full-site backup where appropriate.
- Identify exported post types, statuses, taxonomy records, attachments, and important custom fields.
- Prepare the destination with required plugins, themes, post types, and author accounts.
- Import a small representative set into staging with the WordPress importer.
- Check content rendering, custom fields, media downloads, internal links, and the resulting slugs.
- Record any differences, resolve their causes, and only then plan a larger production migration.
The WordPress XML export is a content-transfer mechanism, not a full snapshot of themes, installed plugins, site options, or uploaded media bytes. A verified backup and a tested import are complementary safeguards, not interchangeable ones.