One of the hurdles of many people out there looking to try Ghost is that they already have a WordPress blog. Many of the tutorials are already outdated, not keeping up with the current versions of the platform.

But don't panic, here I show you how to truly do it, step by step, so you can start using Ghost right away.

Warning: due to issues with the official Ghost plugin, this is not an automated process. In order to migrate your site completely, there are some manual steps to do so your commitment to fulfill this task is key.

Before continuing with the tutorial, please consider that:

  1. All your posts, pages and tags will be migrated with the json file (more on that later). All other things like custom fields, meta, members, authors, shortcodes, post types, taxonomies, or binary files will not be migrated.
  2. Categories won't be migrated. If needed you can convert your categories to tags before exporting.
  3. Comments will have to be exported and then imported in the service you are using in Ghost.
  4. Media can be exported but will have to be manually assigned within Ghost.
  5. Authors will not be migrated, but the posts will contain the Author assigned. We'll have to create those authors ourselves.
Tip: if you are going to use Ghost Pro Business, then the Ghost team will transfer the site for free and you don't need this tutorial.

Without further ado, let's start migrating our site!

Note: for reference, I'm using one of the blogs I manage using WordPress (for various reasons) with around 60 posts and more than a 100 members.

Migrating your WordPress content to Ghost

  • Install the Ghost plugin.
  • In the Wordpress admin console, on the left side go to Tools -> Export to Ghost.
  • Don't pay attention to all the stuff you see there and go straight down where it says "Download the .json instead".
  • Save the file to your computer.
  • Now head over to the Labs section of your Ghost website. There, go to Migration Tools -> Import content.
  • Click on "Choose File", select the .json file that the Ghost plugin created and click "Import".
  • All your posts, pages and tags are now migrated.
Not working: the plugin doesn't work as expected and has not been updated in months. You will not get the advertised zip file, only json works. Because of that, your images will not be exported in this step. In addition, your site could send you an alarm about malfunctioning plugins since this plugin apparently causes errors.

Adjust the migration information

Now that the first step is complete, we need to fix some "bugs" associated with it.

One of them is that members/users, instead of migrate as Ghost members, are actually placed as authors. If you have a lot of users, you will now have a lot of authors in your Ghost admin.

Since there's no mass deletion option for authors, you will have to go one by one. (I KNOW IT SUCKS).

Another thing is the pages: probably most of your pages will just transfer the meta data but not the actual design, since the theming structure is completely different. In this case, you'll have to decide to either re-create the page in Ghost or just delete it.

Tip: if you think this is too much of a hassle, you can contact me for migration services. I have exported several blogs already and can provide assistance to you. Depending on the complexity of your blog, a fixed price will be determined after evaluation.
Do you like these alert boxes?
GhostPortal is the sole vendor of this product.

Migrating the media

To transfer all your media content, we'll rely in a plugin called Export Media Library.

  • Install the plugin.
  • Go to Media -> Export.
  • Select yes or no for compression and click Download Zip.
  • You will then get a zip file with all your media content. You will have to then manually assign that media to your posts/pages.

Migrating members (if needed)

If you have a lot of users/members, we'll have to semi-manually transfer them to our Ghost site. In order to do this, we need to install another plugin: Export Users With Meta.


  • Go to Users -> Export to CSV.
  • Select the roles you want to export and the columns. In my case, customers and user email are enough.
  • Open your CSV file, and change the column name from "user_email" to just "email".
  • Go to the members area and select "Import members from CSV".
  • That's it! All your members are now in your blog.

Migrating your SEO information

Well, the best that works for me on this one is to just copy Β the information on Yoast SEO and paste it on the General settings:

  • Copy the information in your home/front page in the Yoast Section and copy it in the Site Meta settings.
  • Do the same for the site title and description.

Migrating comments

For this one, it is extremely important that you confirm if the comment platform you are going to use in Ghost supports comment importing. My personal recommendation would be to use Hyvor talk.

Warning: Before importing, make sure that you have carefully read the Introduction to Importing guide. This guide explains how the importing process works and the limitations of importing. After reading that, continue the following steps.

First, we'll export the WordPress comments:

  • Go to your WordPress dashboard.
  • Go to Tools -> Export.
  • From "Choose what to export" menu choose posts.
  • (Optional) Then, if you need, select what posts you need to export (by category, authors, start date, etc.).
  • Download the file.

Next, we'll import the comments into Hyvor:

  • Go to the Hyvor Talk console.
  • Select the website from the left panel which to you need to import the comments.
  • Go to the import section.
  • Choose WordPress from the Import From option.
  • Select the downloaded file by clicking Choose File. Click Upload.

And that's it. Importing may take some time depending on the length of the queue. Therefore, allow up to 24 hours. You will receive an email once the importing process is completed.

You can check the status from the Import History section of the console (Console -> Import -> Import History).

Confirm everything is working as expected

The last step is to ensure that everything works fine. Visit a few posts, check if there are any missing images, and make sure that your blog is working as you projected it to.


Congratulations on your migration to Ghost πŸ™Œ. Hopefully this should have given you everything you need to transfer from Wordpress over to Ghost.

Ultimately, you have 3 ways to do this migration process:

  1. Follow this tutorial and do it yourself.
  2. If your business is huge and your are planning to use Ghost Pro Business, then the Ghost team will transfer your blog for you.
  3. If you want someone else to do it for a modest fee, then you can contact me since I offer those services. Every site is a different case and depending on the complexity a fixed price is determined.

If you run into any problems, feel free to leave a comment or tweet me.