Ghost VS WordPress (and Why I Migrated Back to WordPress)

A few weeks ago, I decided to hop on the Ghost train.  Ghost is a blogging engine, written in Node.js (JavaScript) and is only a little over a year old now, but has a massive backing for how young it is.  In general, there’s a ton of hype around new tools and frameworks in the development community, and this is no different.  I’ve had my blog on WordPress since the beginning, so I decided to run an experiment for a bit and get an objective answer as to which is better and document my experiences, so here we go.  Let’s compare Ghost VS WordPress!

The Goal

I blog because I love teaching, but I also do it to document what I know and have done in hopes people will hire my team of subcontractors for their project and me.  So, in general, I wanted the following after migrating my blog to Ghost:

Increase in Page Views

It takes a LONG time to increase unique visitors through SEO/links/etc., so that wasn’t in the scope of this experiment, though page views were.  I needed the site to keep visitors reading.

Increase in Speed

I was using a HostGator reseller account for my hosting, which let me allocate “unlimited” resources to my site. Still, Google was seriously dinging me because HostGator throttles EVERYONE and oversells their hosting.  Reseller hosting there gives you a few more tools to be able to manage your account if you know what you’re doing, but there was still nothing I could do at times. Additionally, part of it was that WordPress has just grown over the years to the point that it can many times be overkill for just a simple blog.

Migrating to Ghost

I self-host WordPress, and I knew I wanted to self-host Ghost as well.  One problem with Ghost is that since it uses Node.JS, you are limited to where you can host it.  I ended up choosing Azure as their websites have Git-enabled deployments, scaling, backups, and a ton of tools in addition to being one of the few Node.JS hosting platforms out there.  A side benefit of this is that Azure is fast.

[blockquote] IMPORTANT!: Ghost is a blogging platform for developers who know what they’re doing.  A WordPress install can generally be hacked together with enough reading and tutorials; however, Ghost is currently a bit touchy, and unless you are a developer, you’re likely to find yourself spending a lot of time debugging issues. If you aren’t a developer, I suggest paying for them or someone to host and manage it for you.[/blockquote]

To migrate to Ghost, it was a pretty easy 3 step process:

  1. Set up a new Ghost blog somewhere (pretty obvious, right?).
  2. Migrate your images:
    1. The easiest way is to install the Cloudinary plugin for WordPress and migrate your images there before step 3.  In doing so, you get your URLs automatically moved to Ghost, but with the added benefit of Cloudinary’s CDN, which is pretty nice.
    2. Back up your wp-content/uploads folder, and upload it to a wp-content/uploads folder under your Ghost install so that things all match up.
  3. Install the Ghost Export plugin for WordPress, and then export your WordPress blog to a .json file that you can then upload into Ghost

All in all, the installation was quick.  The hardest part was getting all of the redirects set up in the web.config.  WordPress handles 301 redirects for you if you ever change a permalink. Ghost has just introduced the concept of plugins, so the majority of things, like 301 redirects, you have to do yourself (more on this in a bit).

Results of Moving to Ghost

Here’s what I changed on the site at this point:

  • Moved to Ghost
  • Moved hosting from HostGator to Microsoft’s Azure
  • Used a modified version of the Casper theme that ships with Ghost


  • Page speeds dropped from about 5 seconds to 1 second (awesome!)
  • Actual writing experience in Ghost is fantastic and inspired me to write two new posts, so traffic was up for a bit.


  • The bounce rate went from ~1% to >70%! (This is BAD!!!)
  • Pageviews decreased while unique visitors stayed constant.
  • Lost my ability to manage images (ended up managing them in Cloudinary and then just linking to them)
Ghost allows you to use Markdown and live-edit side-by-side!


I love the 2-pane way that Ghost’s editor does side-by-side editing, how fast it is, and that it uses Node.JS (there are few languages I hate working with more than PHP).  The deal-breaker for me was that Ghost lacks the MASSIVE community, support, and plugins that help make blogs grow themselves.  The data clearly show that my bounce rate increased, page views dropped, while my incoming visitors stayed constant. In other words, once users finished reading the article, they left.

Plugin Ecosystem

The reasoning was primarily due to my WordPress blog’s plugins that help users discover other content on the site.  I’ve got about four different places on my WordPress blog that help guide users into related content on my site that just wasn’t there in Ghost without custom work. That’s not Ghost’s fault, as it does the actual content authoring exceptionally well; however, it doesn’t change the fact a big reason you write content on a blog is to have someone read it. This downside of Ghost will get better with time, but right now, there’s next to nothing as far as plugins are concerned.  You can, of course, write your plugins or hand-code all of these other features that you may need, but then we get back to the part where you’re at a considerable disadvantage if you aren’t a developer.

Back to WordPress

I ended up moving back to WordPress because keeping my page views are more important to me than being able to edit and preview on the same screen.  Luckily I had a backup. However, I still had the problem of HostGator being pretty slow and taking my site down whenever a post would get featured on a big website somewhere (I had one post get high on Reddit one day and my site was down for most of the day, sadly).

Here’s what I did differently this time:

  • Moved hosting (as well as the majority of my clients) over to WPEngine
  • Just bit the bullet and did a page speed audit on my site to speed things up.
  • Leveraged a CDN (content delivery network) using WPEngine

With these changes, I got my site loading VERY quickly, which was part of the original goal anyway.  Also, I got all my discovery features back to get my page views back up, which I didn’t want to lose with the work I had done over the years.

Ghost vs. WordPress: The Takeaway

I love Ghost, and I’ll likely be spending some free time contributing plugins (called “apps”) to get Ghost up to speed so I can move.  The Ghost team is fantastic, and for WordPress having a ten-year head start on Ghost, it’s come surprisingly far in such a short amount of time.  However, the ten extra years of plugins and features that WordPress has are hard to beat.  If you’re trying to decide between the two:

Use Ghost If:

  • Your blog is just starting (301 redirects for a lot of history require setting them up the old fashioned way)
  • You care more about getting your ideas down than having people read everything you’ve written.
  • Are a hacker/dev and want a site that runs on Node.JS (this was a big reason I loved Ghost)

Use WordPress if:

  • You want something hackable, but not something you need to babysit
  • Need more features than just blogging
  • Have very minimal dev experience and don’t want to have to invest in learning the platform
  • The command line scares you.

Your mileage may vary, of course.  I am a developer and was looking to self-host, or at least have 100% full access to the guts of my install.  Both of these platforms work great for pure blogging, and you can hire someone to host/manage them if you’re not a developer; however, WordPress wins if you’re looking for sophisticated features as opposed to the raw speed and simplicity of Ghost.

Have you tried both?  Where did you land?  What is the one critical plugin you have to have in Ghost (or any platform) before you would make a move?  Let me know in the comments below!