GreyMatter

Quick Guide to WordPress migration

I’ve recently migrated multiple blogs from WordPress.com to my own domain+server (WordPress.org).  In my research, I did not find much by way of how-to guides that could tackle some of the common problems one encounters in such a migration.  Therefore, I thought it would be useful to share how you can go about it in a quick-and-easy manner.

Before we tackle the migration process, if you are new to blogging and wondering what blogging platform to adopt, I wholeheartedly recommend WordPress.  I have extensively used Blogger, Typepad, Squarespace and few others, and have yet to find a better, more robust solution to my blogging needs than WordPress.  Since it is among the most popular blogging platforms on Earth, you also enjoy a lot of development support and plugins (for selft-hosted versions), all for free!  If you’re not quite clear about the differences between WordPress.com and WordPress.org, read this support page or this one, to know more.  The short version is this:

WordPress.org is free blogging software. With WordPress.org, you can install themes and plugins, run advertisements, edit the database and even modify the PHP source code. Anyone can download the software for free but it must be installed on a web server before it will work. If you mismanage your web server, you can lose your entire blog.

WordPress.com is different. You do not have to download software, pay for hosting or manage a web server. When you sign up for a WordPress.com blog, you will get a URL like “andy.wordpress.com”.  What you can do on WordPress.com is blog for free.

Now, let’s get right down to it.  Bear in mind that this is the quick-and-dirty guide, and not the full-and-comprehensive one involving PHP script codes and server-side modifications.

You would assume that moving your blog from WordPress(.com) to WordPress(.org) should be completely straightforward and hassle-free.  The truth is it’s mostly hassle-free and pretty straightforward, but there are a few things you should know.

1. Search engine rankings – If your WordPress.com blog has lived on the web for a while, it would have probably accumulated page-ranking currency thanks to Google et al.  When you move, your blog’s domain name will change and your page-rankings will be reset to zero.  (Note: This does not apply to those of you who have paid for “wordpress credits” on your wordpress.com blog, and already mapped your own domain name to your blog.)

2. Images – A lot of you run wordpress blogs with a number of image files included in your posts.  The import/export tool of WordPress now enables “Import with Attachments”, but this is not a feature I have much experience with.  In my case, there were just a handful of blog posts that included image files, and I found it simpler to delete any references to images from my posts, after I’d migrated them to their new location.  (I did this by opening up the exported XML file in Wordpad, doing a “find” on any code referring to <img>, and simply deleting those references.)

3. Posts, Pages and Comments – This is the juicy stuff that your blog is made of, and also includes the Categories, Tags and Comments.  WordPress-to-Wordpress migrations are done via its built-in Import/Export tools, found under the Tools menu on your left panel.  You login to your WordPress.com blog, click Tools/Export, save the resulting XML file on your desktop.  The Tools/Import process is typically non-messy if you watch out for a few things before you login to your new WordPress blog and import the XML file:

a. There is an upper-limit of the filesize that can be “imported” into WordPress.  It should suffice for most of you.  My blog had more than 500 posts and comments, and I didn’t reach any where close to the limit.  Anyway, stay within it and you should be fine.  Exceed it and you may need help from your web hosting provider to find a way around it.

b. You need to ensure that the Author or User Role defined in your old and new blogs states your name and nickname in the same way, else the Import/Export process will create duplicate or mis-mapped entries.

c. Permalink structure – This is the most important aspect of the migration to ensure any internal links and search-engine references are intact.  Your WordPress.com blog follows a specified permalink structure to generate URLs for each posts.  The default setting on your new WordPress blog may not match with this, and you will need to modify it in Settings/Permalinks to ensure it matches your old permalink structure.  This needs to be done before you import all your entries.  Read this support page for details.

d. Modifying your XML file – After you “export” it from the old location and before your “import” it into the new one, there are some things you need to change in your XML file for smooth running.  Open it up in Wordpad or any text editor of yoru choice, “find” all HTML references to your old domain (say, andy.wordpress.com) and “replace” it all to your new domain name (say, www.andygates.com).  If your permalink structure is the same in both locations, every thing else should work, and all your links should point to the right posts.

That’s it!  Now, all that’s left to do is to import your modified XML file into your new WordPress.com blog, and see it in action.  When you see it all nice and ready, you can use Google’s AddURL and RemoveURL features to update your search-engine listings, so that the old ones get removed and the new ones get indexed.

The above process should also work, in principle, for all migrations to and from WordPress, where either the source or the destination blogging platform is not WordPress (with some limitations, of course).

If you anticipate you will need help in installing WordPress on your new hosted server, choose a hosting provider with cPanel and Fantastico bundled.  cPanel is the easiest “control panel” for server management out there, and Fantastico provides easy-to-use installation scripts for many popular softwares, including WordPress.

For more help on WordPress.org, go to its support pages.  If you already run an old self-hosted WordPress.org installation and are looking to upgrade, go here for instructions.

Happy blogging!

Update:

As of Sep 2012, I’ve moved both my blogs from my self-hosted platform (WordPress.org) back to WordPress.com. My primary motivator was reduced technical maintenance needed to run my sites, and also to reduce the spam I was getting in my comments. I also took the opportunity to move my photoblog from Pixelpost to WordPress.com, thanks to an excellent script by ElevenTwentySix, which needed just a few minor modifications to make it work its magic. Your mileage may vary.