ghost to wordpress migration

How to migrate a blog from Ghost to WordPress for free. Here is my experience

Hi, I have recently migrated my site from Ghost to WordPress and here I am sharing my experience regarding the transition. What works, what does not work etc, and some tips, for newbies who think about migration too. Jump to the main content. Tl,dr it is painful.

But before that let me clear one thing, I love Ghost, and will use it for personal blog sites, newsletter platforms, or where subscription-based writing is the primary focus. I will write a detailed blog post about which one to choose for what purpose from my perspective.

And a quick TLDR, migration is hard, but depends on the features you use at Ghost, so if you are planning a migration do it early, or pick one and stick to it. Both platforms have ups and downs and it depends on your future needs and plans. You can get good and cheap WordPress hosting here.

ghost to wordpress migration

With that being said let’s begin today’s topic:

Migrating From Ghost to WordPress

Here I will be giving a breakdown of the migration of different parts of the Blog.

For reference, I preserved my Ghost version of the blog at (I may not be available always🥲)

1. Migrating the Posts (Specifically the post text)

Posts text is the easiest thing to migrate from Ghost to WordPress. Ghost provides one “Glorified JSON” file for migration. In Ghost settings at the bottom, you will find migration tools under which you will find the option to export. Download that file, then use this free tool from WPBeginner to convert the JSON file to a WordPress import file. Then in the WordPress dashboard go to ‘import’ and install the WordPress import. Upload the converted file from the tool mentioned above. Your posts will be imported, easily. One thing, after importing the posts convert them to block format, otherwise, you can’t edit them later (made the mistake).

2. Migrating the Images

Migrating Images from Ghost to WordPress is a little tricky. Simply install and activate the Auto Upload Images plugin. Upon activation, you simply need to edit and bulk edit (just select all and edit) your blog posts, and the plugin will then import any external images in those articles to your media library. Yes, the plugin imported the media but in my experience, I had to manually update the photos inside the posts with the photos imported, otherwise, it was just showing the images from a link of the previous blog URL. Featured images were good to go.

My recommendation would be to use an image delivery solution and insert images from an image URL as it future-proofs cross-platform migrations later, and also speeds up your site. A good yet cheap solution can be storing images in Cloudflare R2 or Blackblaze B2 and delivering them through Gumlet Image CDN. I found this most cost-effective (generous free tier), but there are many other platforms like Cloudinary, Imagekit, etc.

3. Migrating the subscribers

If you have paying subscribers, then I don’t know because I don’t have that. And also In my opinion Ghost will be a better platform in that regard. In your ghost to WordPress migration, you need a WordPress plugin for your newsletter. Get your free newsletter subscribers through the ‘export your subscriber’ list in an XML format that Ghost provides in the member’s tab in the Ghost admin area. For newsletters and subscribers, I use Brevo because it has a generous free tier (300 emails/day) and an unrestricted contact list, so I can’t complain.

Now up to this part, it should go relatively smoothly ( I have doubts about the images though) let’s begin the ugly part of your Ghost to WordPress migration, i.e. what breaks?

4. Callout bars

If you use callouts in your posts you know what I am talking about. It is the highlighted text area – see the below image:

Yes, This is going to break, you have to manually recreate this, for every place where you have used them. You can achieve the same look and aesthetics, with a background color to the specific block. But yes, unfortunately, this will break in your Ghost to WordPress migration and you have to manually recreate them.

😀 Just like this example


Bookmarks are when you insert other URLs inside a post, like a big card for your visitors to visit. Well, that feature breaks too in Ghost to WordPress migration, and in this case, it does not visually look good. I also could not make it work in WordPress (my WordPress knowledge is limited).

This is what Bookmarks look like
This is what Bookmarks look like

Anyway, this is going to break, unfortunately.

6. Code Blocks

If you have code blocks in your posts they are going to break too. For me, it broke. I used Prism js in Ghost for theming, but it works differently in Ghost. You have to add a plug-in for theming your code, and WordPress expects you to insert a code block of that plugin. So it is going to break, or may not look as good as it used to look in Ghost at first.

Okay, my list is finished now.


Well as you can see, migrating difficulty depends on your your level of involvement in Ghost itself. It is not an easy job but not difficult either. Keep calm, and slowly migrate. My migration is mainly because I wanted to write a post about it, and secondly customization, especially sidebars in desktop mode. But that is for another day. I will also make a post about my WordPress setup, where the only thing that costs money is the domain name.

If you are migrating due to the relatively high cost of Gost here is a post about How to host a ghost blog for FREE, and How to massively increase the speed of your Ghost Blog. Or you can get a lifetimagicpagesme Ghost hosting by paying once. Subscribe to the newsletter for those future posts. Happy blogging.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.