Why and How I Migrated from Posterous to Self-Hosted WordPress

Over the weekend I spent some time converting this blog from Posterous to WordPress.

Posterous SpacesI found Posterous to be too inflexible for my needs. Simple tasks such as rewarding the top commenters by listing them on the homepage were simply not available. I also disliked their themes, the inability to embed JavaScript snippets, and the lack of an API for posting from a blogging client like Ecto.

Why I moved away from Posterous

In short, I realized that my lack of activity on this blog was mostly motivated by my dislike for Posterous, so I decided to move from it. Coincidentally, the day after I did such a change, Posterous decided that they weren’t so much a blogging platform anymore but rather a… well I’m not sure what they are, I guess a Tumblr/Google+ hybrid of sort. But this blog was never a “Space” as they call them now.

In my upcoming book on blogging for hackers and founders, I mention Posterous, but recommend that people opt for self-hosted options like WordPress, Blogger (if they want a hosted solution), or something like Jekyll/Octopress if they’re feeling adventurous.

As such I decided it was time I took my own advice and move this blog from Posterous to a WordPress instance that I setup on my server.

Migrating from Posterous to WordPress

Theoretically, moving from Posterous to WordPress is fairly straightforward. You install a Posterous importer plugin, do the import, and when you’re done, switch the DNS from Posterous to your own server.

In practice however, this didn’t work. The Posterous plugin for WordPress.org was simply broken when using it with the current version of WordPress (3.2.x), as confirmed by many others who experienced the same issues.

Not wanting to lose the existing permalinks or having to manually, tediously copy over my posts and the visitors’ comments, I decided to use a clever trick.

  1. I temporarily registered a private WordPress.com blog.
  2. Then I went to Tools → Import and selected Posterous.
  3. After the import was completed, I used Tools → Export to get a WordPress eXtended RSS (WXR) file for all posts and comments.
  4. With this file at hand, I imported it to my self-hosted blog (using Tools → Import).
  5. I re-uploaded and re-linked the few images in my posts, because they pointed to WordPress.com after the import, but I didn’t plan to keep the private WordPress.com blog around.
  6. I deleted the private WordPress.com blog.
  7. I then switched the A record in my DNS from the Posterous IP to that of my server.

The key here was to use the Posterous importer provided by WordPress.com, because unlike the public version that’s available as a plugin, Automattic (the company behind WordPress.com) ensures that it’s actually working.

I plan to post much more often now that I have a nice, neat setup for my personal blog. Grab its feed or sign up to receive my posts by email in the sidebar.


  1. Did you consider Tumblr? Why you decided for a self-hosted WP instead of another hosted solution?

    • I prefer the utmost flexibility that a self-hosted solution grants me. I don’t mind running it on my own server, as I already handle several technical blogs on it. Adding one more doesn’t make a difference to me.

  2. Timely article – I’m planning on doing this exact thing this weekend, and for similar reasons. The Posterous pivot really didn’t do it for me, the primary reason I started with posterous (post-by-email) is in WordPress now, and the inability to embed javascript, like you said.

    Looking forward to the move. I’ve been playing a lot with WordPress lately as a CMS for client sites, and it’s grown a lot since the last time I used it (2.x).

    Thanks for the workaround 😉

  3. Yay, you replaced a (most likely) secure hosted solution with a piece of fiddly php with millions of security issues.

  4. I wish I’d seen this article a few days ago. I’m in the midst of migrating my posterous to a wpengine hosted wordpress blog, and it was a substantial struggle to get the content over without major formatting issues.

  5. FYI – all you have to do is ask them about the javascript support and they can add it to your account. but overall with the other features (top commenters), you wouldn’t be ok with any microblogging platform to begin with. it’s a shame the wordpress.com version works better than .org.

    • When I asked a long time ago, they told me flat out that JavaScript wasn’t an option. I guess they changed their policy recently.

      • Yeah, you can request it and they are also thinking about sometime in the near future supporting some JS.

        • Oscar is correct. It never really was a policy – we’re planning to roll this out to everyone but can enable people individually as part of our beta. Just email me – rich@posterous-inc.com from the account under which you have a Posterous account and I will take care of it.

          Also, please let us know (ideally via developers.posterous.com) on what we need to add to our api as you should be able to do anything you want from it: https://posterous.com/api We revamped it in July so it could be that you hadn’t seen the update.

          • Rich, thanks for stopping by and for clarifying your stance on JavaScript.

            Regarding the API, I did give up on Posterous before the complete API was available, and not being a standard API, I still think Ecto, MarsEdit and others won’t work with it in their current incarnations.

            Posterous is not a bad platform for blogging. I even mentioned it as an option in my upcoming book. It’s just that for my needs, it didn’t quite cut it.

  6. The plugin importer – http://wordpress.org/extend/plugins/posterous-importer/ – is actually an Automattic plugin, and should work the same as on WordPress.com. If it’s not, then there’s a problem that should get reported 🙂

  7. I switched from WP to Posterous a year ago after using WP for years and never wanted to go back for a few reasons. For one, WP is indeed powerful and has all kinds of options and plugins, etc, but thats why I dislike it. To me, WP is the MS Word of blogging platforms.

    I also switched because I didn’t want the hassle of upgrading constantly (in software terms).

    And one of the biggest reasons was I didn’t want to have to build everything around WP. WP’s code is horrendous last time I looked and if I want to add something i have to work around it. Posterous I simply pull in all my posts I want via their API and just use Posterous as an editor and a storage bin so I can build everything around it.

  8. Troy McConaghy says:

    You’d think that the importer used by WordPress.com would be the same as one provided at WordPress.org. WordPress has a GPLv2 license, no?

  9. Antonio, we’re sorry to see you go but understand that Posterous might not be a perfect solution for everyone. So we’re happy that users have the tools to move freely between platforms.

    Spaces still allows users to use Posterous primarily as a blog platform. It should actually help you increase readership as it’s now easier to follow Spaces and read them via web, email, and our new app.

    Spaces also lays the foundation for some amazing new features we have coming. We hope to get you back one day! Thanks.

    • Thanks for stopping by, Sachin. I appreciate that.

    • …been there, done that.

      I had a blog that was self-hosted wordpress, moved it to Posterous, moved it back for many of the same reasons you mention, and last week made it back to Posterous again.

      I think Posterous lacks some of the features you’d like — as you mention.

      But it was the high maintenance and update frequency that got me back to a great hosted platform.

      At the end of the day, using a good mail app (with the ability to save drafts) beats Ecto hands down.

      And none of the features that can be added to wordpress are show stoppers.

      In the end, I just want to write. Even though I’m completely comfortable fiddling with code (including a very popular wordpress plugin); wordpress seems to get in the way on too many fronts…

  10. I’d be more impressed if you were doing a better job of it. Don’t put your left margin all the way to the left. Makes it hard to read.

  11. Best decision you will ever make my friend… WordPress is the best blogging software out there in my opinion. So customisable and easy to use 🙂

  12. I’m suspect to say this (since I’m a WordPress addict), but you did the right choice!

  13. Nice, just wanted to do the same, this new posterous was a very bad idea.. anyway is there any pro/contra to use WP instead of other blog engines or something like RoR or Octopress you mentioned? Thanks

  14. Posterous is a nice service…when it works. The problem is they don’t seem to be very organized, and this recent switch threw a lot of people for a loop.

  15. My GOD I am so happy I found this. Posterous’ Markdown support, or lack thereof, and it’s peculiar choice of direction… Well, I had hoped for a better outcome, but just like you, I find myself not wanting to deal with actually posting on Posterous. Thank you so much!

  16. Doug Lerner says:

    The main problem with this solution is:

    “I re-uploaded and re-linked the few images in my posts, because they pointed to WordPress.com after the import, but I didn’t plan to keep the private WordPress.com blog around.”

    In my case, of 830 photos imported, 695 did not get attached and still point to the wordpress.com site. Still looking for a viable solution.


  17. I recently migrated my Posterous site to a self hosted WordPress site and it all went well except for the image quality – all the images are now incredibly low resolution, can anyone help with this?


  18. How did you configure your permalink structure?

    I was able to import but the links don’t work. I get a URL not found. Can you tell me how you fixed it please?

    Thanks a bunch!

  19. Just found this via google as Posterous is shutting down. One word of advice – if you don’t make your ‘temporary’ wordpress.com blog private, you can tick a box when you bring the WordPress export over to your self-hosted blog, to download and re-upload attachments, saving you that step.

    Since it’s only going to be around for a few minutes, there’s not much chance of someone finding the temporary one!

    Thanks for the post though, very helpful and got my old Posterous posts onto my blog in no time…

  20. Hi Antonio, Thanks for this tip, it saves a lot of time and works like a charm.

Comment Policy: I greatly appreciate your comments and thoughts. Comments are moderated and they will be approved shortly after you submit them.


  1. […] feel. If you are wondering how I migrate from Posterous to a self-hosted WordPress, check out this post by Antonio Cangiano. Follow @matthewphiong Share: This entry was posted in Note by matthewp. […]

  2. […] whatever reason, the Posterous Importer plugin can have issues from time to time. Here’s a quick tip I read on another blog. If you have any problems with the plugin, you can always register a quick […]

  3. […] whatever reason, the Posterous Importer plugin can have issues from time to time. Here’s a quick tip I read on another blog. If you have any problems with the plugin, you can always register a quick […]

  4. […] This blog post is useful in outlining one way to get content migrated quickly, using wordpress.com as a bridge to a self hosted wordpress site. The import took less than five minutes to clear into wordpress.com, and same again on the transfer to self hosted. […]

  5. […] it (you can read about how to use it here). After a  quick google search I ended up here and I followed the instructions to import my Posterous data. Basic steps were:create a blog on […]

  6. […] whatever reason, the Posterous Importer plugin can have issues from time to time. Here’s a quick tip I read on another blog. If you have any problems with the plugin, you can always register a quick […]

  7. […] The process of moving house wasn’t difficult at all, really. I started with Sarah Gooding’s instructions for the process, and used a workaround described by Antonio Cangiano: […]

Speak Your Mind