How to Export a Blog to WordPress or Ghost
An export path is your exit door. Here is what a WordPress or Ghost export should carry, what each platform cannot import, and how to test a move before committing to it.
To export a blog to WordPress, produce a WXR file and load it with Tools, Import, WordPress. To export to Ghost, produce a Ghost import JSON, with images in a ZIP, and load it in Settings, Import. Always test the import on a staging site first, because comments, images and URLs are where moves go wrong.
Most platform comparisons ask how easy it is to move in. The more revealing question is how easy it is to move out. A blog you cannot export in a format another platform understands is a blog you are renting, whatever the licence says. This guide covers what a good export to WordPress or Ghost carries, what gets lost on the way, and how to test a move before you commit.
Why an exit path matters, even if you never leave
Being able to leave changes how you choose. It caps the cost of a wrong decision, protects years of writing from a vendor's pricing change or shutdown, and keeps you honest about whether you stay for the product or because moving is painful. We made the wider case in our post on content ownership.
What a good export carries
- Posts and pages with their original slugs and publish dates, so URLs and history survive.
- Categories, tags and authors, mapped to the destination's own concepts.
- Images, either bundled or at addresses the destination can download from.
- Comments, where the destination can import them.
- SEO fields, such as search titles and descriptions, so you do not rewrite them by hand.
WordPress and Ghost want different files
WordPress imports a WXR file, an XML format, through Tools > Import > WordPress. It downloads images from their original addresses during the import, so the old site must stay reachable until it finishes.
Ghost imports a JSON file through Settings > Import, and images can travel with it in a ZIP. Ghost has no categories, so they become tags, and it cannot import comments at all.
Neither format knows about features the source platform invented. Custom blocks, such as FAQs or how-to steps, have to be flattened into ordinary HTML, or they arrive empty. Site settings, themes, menus and analytics history do not travel in a content export either, so plan to set those up again on the destination.
Test before you switch
A test import costs an hour. A botched live import can cost weeks of cleanup, so rehearse first:
- Import into a staging install first, never straight into a live site.
- Compare counts: posts, pages, tags and images should match the source.
- Click through a sample of old posts to check formatting and images.
- Plan the redirects from old URLs to new ones before you change DNS. Our WordPress migration guide explains why they matter.
- Import once. Re-importing into WordPress skips posts it already has, and a second import into Ghost copies every post again.
How Inkwell's exporter works
Since v1.0.8, Admin > Export downloads a site's content in each platform's own format: a WXR 1.2 file for WordPress, or a ZIP of Ghost import JSON plus content/images. Before the download, a summary built from your own content shows what carries over, what changes and what is left out.
- WordPress keeps posts, pages and their hierarchy, categories, tags, authors, comments with replies, and images, plus search and social fields for both Yoast SEO and Rank Math.
- Ghost gets posts, pages, tags (categories become tags) and bundled images. Comments are not exported, because Ghost cannot import them.
- Inkwell's own blocks, such as answer capsules, FAQs, how-to steps and series, are written into the body as ordinary HTML, so nothing is left empty.
- Options and access: unpublished posts, pages, comments and email addresses can each be left out, and email addresses are off by default. Exports are Admin-only, audited, deleted once downloaded, and not available in cloud mode.
Because the summary is built from your actual content, you see the trade-offs for your own site rather than a generic list. The exporter was tested with real imports into WordPress 7.1.2 and Ghost 6.67.0. It works in both directions, too: the importer brings WordPress and Ghost content in, as our guide to migrating from Ghost shows. Keep a fresh backup before either move.
Frequently asked questions
How do I export a blog to WordPress?
Produce a WXR file, the XML export format WordPress uses, from your current platform. In WordPress, go to Tools, Import, WordPress, upload the file and let it download the images. Test it on a staging site before importing into a live one.
Can I move comments to Ghost?
No. Ghost cannot import comments, so an export to Ghost carries posts, pages, tags and images only. If comments matter to you, keep an archive or choose a destination that imports them, such as WordPress.
Will exporting my blog keep my URLs?
Slugs usually carry over, but the full URL structure often changes between platforms. Map old URLs to new ones and set up 301 redirects before you switch, so search rankings and inbound links follow you.
Can Inkwell export to WordPress and Ghost?
Yes. Since v1.0.8, Inkwell's Admin Export screen downloads a WordPress WXR 1.2 file or a Ghost import ZIP, after showing what will carry over. WordPress exports include comments and Yoast SEO and Rank Math fields; Ghost exports include bundled images.
Ready to host your own blog?
Inkwell is free, open-source, and self-hosted — your content, your server, your rules. Deploy in minutes on .NET 10.