Good Migrations: Blogger’s Checklist for moving from hosted to self-hosted WordPress blog

Wow, chickadees am I exhausted! I just finished migrating my hosted WordPress blog over to the wide open spaces of my brand-new website and transformed it into a self-hosted blog.

Sitting here in the middle of all my packing boxes (LOL), I thought I would take a few minutes to document the process of this migration — from hosted to self-hosted WordPress blog — in case any of you are contemplating such a move. WordPress offers its own suggestions here, but this post will be more of a personal account.

Why Move?

You may well ask: why bother? The answer is, in a word: control. In a video on here, WordPress founding developer Matt Mullenwegg likens a hosted blog to a rental home, and a self-hosted blog to owning your own home. In a rental, your landlord takes care of pretty much everything for you, but you don’t have a lot of choice in what he/she does. Similarly, in a hosted WordPress blog, the host (that’s WordPress) makes most widget, plug-in, theme, and appearance decisions for you, leaving you very little wiggle room. Whereas a self-hosted blog is like having your own house — you have total control over your blog’s appearance and functionality.


Here are several examples of what you can’t do on that you can do on

1. Edit your blog’s theme  (unless you pay for that option on
2. Advertise on your blog (no revenue-making on
3. Upload plugins to add functionality (also, since javascript is disabled from being used in widgets on, your choice of widgets in a hosted blog is very limited.)

From to

This post is a sort of Blogger’s Checklist for moving a WordPress blog from hosted to self-hosted, using the software — just so you’ll know what you’re getting into! (People also refer to this move as going from to

I was under the delusion that I would be done in a day: just export my posts from one blog, import them into another. End of story. How long could it take? It wasn’t as if there weren’t any real boxes to pack or unpack. LOL. Wishful thinking!

It is true that the basics can be done in a day, thanks to WordPress’s Export tool. But after that, you will embark on a fascinating journey of themes, widgets, plug-ins, and tweaks of all varieties to make your new blog your home. In a hosted blog, does most of this for you.

But when you host your own blog, using, it’s a whole other story. You’re out by yourself under a vast and starry sky full of endless shiny gadgets. You’ll have to figure out which widgets to use, which plug-ins to download, how you want your background to look, how to track your usage stats, how to notify the search engines — and on … and on … and on.

So to help you get started, here’s Bay’s “Good Migrations” to-do checklist.

“Good Migrations” Blogger’s Checklist

1. To start, you need a registered WordPress blog and, of course, a privately hosted server. Your blog/site must be up and running before you migrate your content.

2. In your old blog, export posts by choosing Tools, Export on the dashboard. The posts will be exported as a single XML file, which you can then access in your downloads folder on your computer.

3. In the new blog, import the XML file you just downloaded from your hosted blog. To do so, choose Tools, Import on the dashboard in your new blog. Note: To make sure your photos and other attachments are imported, be sure to check the “Download and import file attachments” box during import.

4. Now is as good a time as any to choose your theme. You will have many more choices of themes in your self-hosted blog than you did when WordPress hosted your blog. I examined tons of themes, and finally settled on the same one I had used in my hosted blog! LOL. However, it was not available from, so I had to track it down on the Internet and download it. (For the curious, it’s called “Spring-loaded.”)

5. As you review your imported posts, you will notice that there are many items that were not imported, such as your blog subtitle, widgets, plug-ins, custom menus, and many more. You will need to download your widgets and plug-ins, tweak the appearance of your blog, change its title, design your blog’s stat tracking, and notify the search engines. Oh and don’t forget to write a final post over at your old blog telling everyone you’ve moved, leaving them a link to your new blog.

This “settling in” process can take can take some time — days, maybe even a week — or longer. There are many different widgets and plug-ins that do a similar job (some better than others). You will need to choose and download the ones that work best for you. And then you may wish to go under the hood and tweak the appearance of your blog. Often all this involves quite a lot of experimentation. For example, astute readers will notice that I tweaked the background colors of my theme to become softer than the original version.

In the interest of comraderie, I have listed below the plug-ins and widgets that I chose, in order to give you a starting point — or even a “starter kit,” since this collection will give you a very satisfactory startup blog (as of WordPress 3, August 2010).

Akismet. This is your spam blocker. You will need to retrieve the key that you used in your posted blog, and use it again in your new blog. Anyone who has an account on will have an Akismet key. Just look for the API key on the Settings page. There is no need to purchase it from Akismet for a personal blog (commercial blogs are different).

Universal Google Analytics plug-in. My hosted blog had a nifty built-in graph showing usage figures for my blog. It was quite helpful, but very simple. I decided I wanted more usage tracking of my new blog, so I signed up with Google Analytics. Now I can track my blog’s usage up the wazoo. I could probably even tell what you had for breakfast when you read this post. LOL

DB Cache Reloaded and Hypercache. These are caching plug-ins to replace the built-in caching of my old hosted blog. Caching generates a static copy of your blog posts, so that they do not need to be generated for each reader. This speeds up the viewing process immensely and should keep your site from choking if you get a sudden avalanche of readers. Here’s a great video from Tutorial9 called WordPress Caching, comparing various plug-ins.

Google XML site map. This plug-in generates a special XML site map that helps search engines like Google, Yahoo, and Bing better index your blog. This is so Google’s spiders don’t have to crawl all over your site to discover what is there.

FlickrRSS. There are tons of Flickr plug-ins. You will have endless hours — and I do mean hours — of fun playing with them all. I finally chose this one because it seemed simple and easy. It allows me to integrate photos from my Flickr account into my blog, and put them in a sidebar with a caption. (But I had to hack the image width in the plug-in code to fit my theme.)

Smart YouTube. This is a great plug-in among the many YouTube plug-ins. It allows you to insert YouTube videos into posts, comments, and RSS feeds on your blog. What I like about it is that it allows HD video play, fullscreen mode, and it has a settings page that allows you to adjust the size of the video.

Video Sidebar Widget. This widget displays videos from a variety of sites such as YouTube, Vimeo, MySpace, etc. in a sidebar. I had to tweak the widget code, as the size of the video was not quite right for my theme. But otherwise, this is a great alternative to the complicated Vodpod sidebar that I used in my hosted blog, which required using a third-party site.

SD like button. There are more social media buttons than I care to think about. I chose this one because it was easy and did what I wanted straight out of the box. It allows you to configure and display the Facebook “like” button before and/or after each post and/or page. Should you want to amuse yourself by reading about a couple dozen more social bookmarking plug-ins, here’s a great review.

That’s the end of my must-have list — for now. There may be more tomorrow!

Here are a couple more tips on setting up housekeeping at your new blog.

  • You will want to check and modify all the internal links in your imported blog posts, as they will probably still refer back to the old blog.
  • You’ll need to decide whether you want to keep your old blog up, or take it down. I chose to keep it up, since people may have bookmarked it, and I didn’t want them to get a “Page Not Found” error should they revisit it one day. At first, I was concerned that I might end up on Google’s dreaded “supplementary index” —  that no man’s land where Google used to send sites for which it found duplicates. Many a poor website developer found his website tossed off the grid in this way back in the old days. Reassurimgly, Google now says not to worry anymore about duplicate content on the web being sent beyond the pale. Its more sophisticated systems are now able to distinguish between reasonable duplication and deceptive practices. Read Google’s comments here.

Going Live!

Once you have your blog tweaked the way you want it, it is time to enable the search engines. While I was in the process of migrating, I disabled search engine access to my new site (via privacy settings on the dashboard). But once I felt my blog was ready to”go live,”  I enabled the search engines, using the privacy settings on my new blog’s dashboard.

Once my site was open to the search engines, I submitted my first XML site map through the Google XML site maps plug-in. Then I waited about 24 hours for Google Analytics to find and analyze the site. Behold, the next morning, I saw my very first visitors arrive — from Florida and Taiwan, believe it or not. And now you. Welcome! P.S. Do you really eat that for breakfast?

One Response to this post.

  1. alfiesaden's Gravatar

    Posted by alfiesaden on 16.08.10 at 4:35 am

    hi – is it just me !! can any one explain why when i type in the firefox browser “” i get a different site yet whe i type it in google its ok? could this be a bug in my system or is any one else having same probs ?
    alfie saden

Respond to this post