As you may have read in the previous entry I recently came back into possession of jamespoling.com. After selling off a blog network and taking a break from writing I recently started blogging again at jpoling.com.
I was never 100% happy with that URL so, as soon as I was able to regain control of my domain, naturally the first thing I wanted to do was move everything over from jpoling.com to jamespoling.com.
The problem with that is, I already had some pretty good search engine traffic as well as links from other outside sources and I didn’t want to lose any of that traffic with the move. All those incoming links and that tasty SEO I love so much, I really didn’t want to sacrifice any of it. Fortunately, I did some research and realized, you don’t have to lose any of it.
How to migrate your WordPress site to a new domain without losing traffic
The first thing you’ll need to do is make sure you have your new blog set up at your new domain with your old content already imported in. If for some reason you haven’t gotten that far or are stuck, feel free to contact me and we’ll get it worked out.
Once that is ready you’ll need to go into your WordPress settings on the new site and make sure you are using the same permalink structure that you were using on your old site. e.g. If you were using Month and Name (/%year%/%monthnum%/%postname%/) on your old domain, make sure that’s what you have set on your new domain. You can find those options in admin >> settings >> permalinks.
To run SQL queries, login to MySQL database that houses WordPress tables via phpMyAdmin or login to the DB server and run MySQL client as root.
- To update WordPress options with the new blog location, use the following SQL command:
UPDATE wp_options SET option_value = replace(option_value, 'http://www.old-domain.com', 'http://www.new-domain.com') WHERE option_name = 'home' OR option_name = 'siteurl';
- The URL values in this field are stored as absolute URLs instead of relative URLs, so it needs to be changed with the following SQL query:
UPDATE wp_posts SET guid = replace(guid, 'http://www.old-domain.com','http://www.new-domain.com');
- Use the following SQL commands to fix all internal links to own blog in all WordPress posts and pages:
UPDATE wp_posts SET post_content = replace(post_content, 'http://www.old-domain.com', 'http://www.new-domain.com');
That’s it! Your done. When someone visits or clicks on a link to your old URL they will be automatically forwarded to your new URL. If they click on an incoming link like http://jpoling.com/2009/01/google-reveals-hidden-features-in-iphone-app/ they will be automatically redirected to https://jamespoling.files.wordpress.com/2009/01/u-haul-truck-picture1.jpg2009/01/google-reveals-hidden-features-in-iphone-app/. Go head, try it out. Type in jpoling.com in your browser and see where you end up. Enjoy!