How to transfer a WordPress blog to a different domain?

Let’s say we are currently hosting our WordPress blog on certain domain and would like to move it to a new domain. How to do this with the least hassle and SEO hit?

Are there any plugins that could help with this? (for example providing automatic cross-domain 301 redirection or similar)

Related posts

Leave a Reply

4 comments

  1. I recommend handling the 301 redirect in your web server rather than in WordPress. mod_rewrite or RedirectMatch will be much more efficient than spinning up WordPress to deliver a Location: header.

    <VirtualHost *:80>
        ServerName busted-cheap-url.com
    
        # mod_alias
        RedirectMatch permanent (.*) http://great-new-url.com$1
    
        # OR mod_rewrite
        RewriteEngine on
        RewriteRule (.*) http://great-new-url.com$1 [R=301]
    </VirtualHost>
    

    There are several methods for changing the blog URL; I tend to prefer setting a new WP_HOME and WP_SITEURL in wp-config.php as a quick fix, and running SQL commands in the database as a more permanent solution.

    See also:

  2. Look at the previous answer as to SEO and 301 redirect.
    As for moving wordpress:

    1. Change the site_url and home_url values in your db. these two values resid in wp-options. just use the phpmyadmin interface to change them to the new wordpress location
    2. Use wordpress search&replace plugin in order to make sure all your in-bound links and images don’t break. (just change http://oldurl.com to http://newurl.com for all content and post meta it’s a fairly easy to use plugin)

    That’s about it. you’re good to go.

  3. What I like to do is to export the wordpress database to a .sql file. Then do a find/replace on oldurl.com to newurl.com. Yes, you can just change your site_url and home_url in the options table, but you will have missed A LOT of other places.

    Not to mention, some plugins will break if you don’t do it this way.

    Once you make the change, import your .sql file into the new database on the new server.