I recently migrated my site to a new domain, and I took an interest in seeing how simply this could be done. Could I, for example, create a list of directions that accomplished everything I wanted out of the move without requiring technical skills to implement? Could I build the “wordpress migration for dummies” framework?

I was able to accomplish this goal through a little research and experimenting, and as such I’d like to republish my findings here in case it might be helpful to you someday (hi random Google readers from the future!).

I only had a few goals for my migration:

  1. Keep my current posts available at the new URL
  2. Automatically forward any traffic to my old URL to the new domain
  3. Have one canonical source for Search Engines in order to maintain good standing in Google.
  4. Never need to use a tool that I couldn’t explain to my grandma over the phone.

Here’s how I was able to complete my goals:

0. Export your blog content to an XML file (found under Tools>>Export). You should probably backup your database just to be safe.

1. Create a new, clean install of WordPress at the new domain name.

2. Go to Settings>>Privacy in the new install and set it so that Search Engines can’t find the new blog.

3. Install all plugins to new blog.

4. Copy all the settings from the old blog to the new blog. You do this by hand, but it generally takes less than 5-10 minutes. Make sure Permalinks get setup with the same structure.

5. Goto Appearance>>Themes and select your design, customize however you set your old theme.

6. Goto Tools>>Import and import the file you exported in step one. When asked whether to include files, do so.

7. Goto your old blog, and download and activate the plugin, Redirection.

8. In your old blog, goto Tools>>Redirection and start setting up 301 redirects for your blog. This is made infinitely easier with the use of regular expressions, which is describe on the page linked in step 7.

Simply, what you want to do here is setup the source url with a simple regular expression that will find all your posts.  For me, this was /blog/(.*) then you want to check the RegEx box, and set the Target URL to a Regular expression that will pass through the original permalink URL. For me, this was http://cuethefuture.com/blog/$1 don’t forget to make sure the action is set to “redirect to URL.” Once you’ve set that, all your posts should be forwarded properly. Then just redirect the base url (i.e. redirect tylerwillis.net to cuethefuture.com) and any pages. If you have a predicatable URL structure here, you can use the regular expressions trick again.

9. In your old blog, goto Settings>>Privacy and make this site invisible to Search Engines.

10. In your new blog, oto Settings>>Privacy and make this site visible to Search Engines.