Ghost JSON Export file to WordPress XML Import File Converter

This tool was last updated on Feb 27, 2015. Due to changes in Ghost and WP formats it may not work for you. A github repository with the latest working code can be found at: This website will apply the latest version of the github repo. Please feel free to contribute so that the tool can work for all versions.

This tool converts the contents of the JSON Ghost export file to the contents of a WordPress import XML file. It produces XML that the WorPress importer can recognize and includes:

  1. users
  2. tags
  3. posts


  1. Paste the contents of the Ghost Export file in the first textarea
  2. Press Convert
  3. Copy the resultant XML in the lower box into a new file and save it with a .xml extension.

Follow the instructions in these step by step instructions to move from Ghost to WordPress.

Ahmed Amayem has written 90 articles

A Web Application Developer Entrepreneur.

  • thatryan

    Hey there, thank you for this tool! Worked great for me.

    • ahmedamayem

      Great to hear.

  • Trevan Hetzel

    Looks like there’s a JS error when hitting the “convert” button. Not letting me past it.

    `Uncaught TypeError: Cannot read property ‘0’ of undefined`

  • jefflouella

    I am getting this import error from the XML.

    Import WordPress
    Failed to import “”: Invalid post type
    Failed to import “”: Invalid post type
    Failed to import “”: Invalid post type
    Failed to import “”: Invalid post type
    Failed to import “”: Invalid post type
    Failed to import “”: Invalid post type
    Failed to import “”: Invalid post type
    Failed to import “”: Invalid post type
    Failed to import “”: Invalid post type

  • Altair

    Many thanks!

  • Tim J Robinson

    I found one bug with this import/export process. If your post title has an ampersand in it (&) it will fail to import with an error like:

    `Failed to import “”: Invalid post type`

    To fix that just change the ampersand to “and”. It seems XML format doesn’t support an ampersand not wrapped in CDATA

  • Glenn Zucman

    Thanks so much for providing this!

    Unfortunately it didn’t work for me at all. Not sure if it is something to do with my particular configuration, or perhaps changes on the Ghost or WP end have broken something.

    Like you, I really liked Ghost, but have realized that the road map to the future feels much more about WordPress. Also like you, I’m committed to Markdown. My favorite way to write ATM is with the Mac/Win app Typora, and then paste to WP Jetpack Markdown. (the MD plugin you list on the other page hasn’t been updated in 2 years – there used to be a lot of WP MD plugins, but it seems like since Jetpack released their MD module, that everyone else has given up)

    Happy blogging, Ahmed!

    • ahmedamayem

      Thank you Glenn for your feedback.
      I have just created a github repository for this project so that the code can be updated by anyone who would like to contribute:

      Thank you

    • Steve Mitchell

      I’m having the same problem migrating everything using an exported JSON file from Ghost Pro and their most recent version. Even after turning debug on with the WordPress importer, I just see “Failed to import “”: Invalid post type ”

      I assume that they may have changed their export format, which means your parser would need to be updated, which is likely why you stuck it on Github. Not having enough programming skills to tackle that, I guess I’m stuck manually copying each post from one to the other!

      • ahmedamayem

        Sorry to hear that Steve. I was hoping someone who is using the latest versions might be able to take up the mantle.

  • Angélica Costa

    Not working.

  • Donald

    This works well on Ghost 4.x JSON, but breaks on the newer version 5.x