My podcast website has been on Ghost for about two years using the Pro plan, which cost around $11 a month. When I first started, I wanted a managed hosting platform with built-in newsletter features. So it basically came down to Substack or Ghost.
I tried Substack first. As I mentioned in this post, it was cheaper, but I didn’t like the permalink structure. So, I moved to Ghost. It’s a solid platform overall, and to be honest, I don’t really have any complaints about it.
Things changed when I started moving all my other websites to WordPress using Pressable hosting. The more I worked with WordPress again, the more I realized I preferred it. Mainly because I’m already familiar with it and it gives me more flexibility, which is very important to me.
So I decided to migrate the site from Ghost to WordPress.
The whole process is actually very simple. Essentially, you export your content from Ghost as a JSON file, convert it into a format WordPress can read (in this case, XML), and then import it into your WordPress site. There’s also a free online tool that helps with the conversion.
Let’s get started!
Step 1: Preparation and Export from Ghost
The first step is to set up your WordPress website. If you’re using self-hosted WordPress, make sure everything is installed correctly on your server. If you’re using WordPress.com, simply create a site in your account.
Double-check that everything works properly and that you can view your website.
Once your WordPress site is ready, you can start exporting your data from Ghost. Here’s how:
- Log in to your Ghost admin dashboard.
- Go to Settings → Import/Export and use the export tool to download all your content (posts, pages, tags, and authors) as a JSON file.
Step 2: Convert the Export File
WordPress’s built-in importer does not natively support Ghost’s JSON format. You must convert the file.
The good news is you can use a third-party conversion tool or service. Online converter like wpghostimport.com can process your Ghost JSON file and generate a WordPress-compatible XML file.
Step 3: Import Content into WordPress
Once you have the WordPress compatible XML file, the next step is to import it to your new site:
- Log in to your WordPress dashboard.
- Go to Tools → Import.
- Scroll down to the WordPress option and click Install Now, then click Run Importer.
- Upload the XML file you generated in Step 2.
- Follow the prompts to map authors and import attachments.
Step 4: Post-Migration Configuration
Now you have your Ghost content imported and a new WordPress website set up. There are several settings you might want to configure. Below, I’ve listed some of them, mainly SEO-related, since WordPress has free tools you can take advantage of, a luxury you don’t get when using Ghost.
- Set Permalinks: Go to Settings → Permalinks and choose a structure that matches your old Ghost URLs to maintain SEO rankings and prevent broken links.
- Import Images: Ensure images were properly imported into your WordPress Media Library.
- Install SEO Plugins: Unlike Ghost, WordPress offers plugins to configure your site’s SEO like Yoast SEO or All In One SEO.
- Point Your Domain: Update your domain registrar’s NS records to point your domain to your new WordPress host.
- Check and update other DNS records, such as MX, if you use an email service for your domain, to make sure everything is still working.
Step 5: Canceling Your Ghost Pro Account
Just because you’ve moved your site doesn’t mean Ghost will stop billing your account. You need to cancel your Ghost (Pro) subscription manually.
- Log in to your Ghost Admin panel.
- Go to the Settings (gear icon) and select Ghost (Pro).
- Click on Billing.
- Select Cancel account at the bottom of the page.
- Confirm the cancellation.
