How to Move WordPress To Another Domain

There may come a day when you need to switch domains. It might be that the brand name you chose years ago doesn’t properly explain what your unique selling proposition is anymore.

Or maybe you are transitioning from a branded domain to a personal domain. Or vice versa.

Whatever the case, if you are going to do it yourself (which is completely possible), you’re going to want a step-by-step guide to follow.

Corbett has transferred WordPress to different domains multiple times over the past few years. I just went through this whole process last weekend for the first time and had my fair share of opening up Google and starting my search with “how in the world do I…”

There were also a number of things that completely broke for me in an embarrassing way (like sending 10 emails in a row of old blog posts that I didn’t want sent to my entire email list).

But in general, moving WordPress to a new domain can be pretty seamless with a little planning. If you have a strong reason to rebrand or move domains, this post will help.

This guide will help you manually transfer your domain and fix many of the problems that may arise from doing so.

(Quick note: Transferring your domain manually can be tricky. If you are worried about messing things up or that you don’t have the technical skills to do it, we recommend that you use the WordPress plugin BackupBuddy, which automates much of this process. Keep in mind that the steps below about podcasting and your email list will still need to be addressed even if you use BackupBuddy to do the transfer.)

Alright, let’s get into it.

1. Backup WordPress Databases

The first step is to backup the WordPress database on your original domain (henceforth referred to as the “old” domain). Note that backing up your database doesn’t completely backup your theme, widgets, plugins, etc. Those will be handled separately.

(If you want to back up your entire WordPress install, including what I just mentioned, your best option is to use BackupBuddy. Heck, you should be using the plugin for backups on a regular basis anyway, even if you aren’t transferring domains.)

If you are merging two WordPress installs together you’ll want to backup both of the WordPress databases. If the install on the new domain is a fresh WordPress install though, you won’t need to worry about it.

If you don’t have BackupBuddy there are a bunch of free WordPress plugins that allow you to backup/download your WordPress database. This one worked for me.

Save a copy locally, save a copy in the cloud, and save a copy on a old AOL floppy disk from the 90’s. You don’t want to be without your database.

2. Export & Import Content

The next step is to export your posts and pages from your old domain. To do so, log in to your WordPress admin panel and go to Tools > Export.

Screen Shot 2013-07-29 at 1.29.34 PM

From there make sure “all content” is selected and then export the data.

Now go to the new WordPress install and go to Tools > Import. From there you can import all the content from your previous domain. Just select the export file you created from your old site.

3. Migrate wp-content/uploads via FTP

Next you’ll need to manually transfer your WordPress uploads folder via FTP from your old domain to your new one. This folder contains all the images and other files in your blog posts that you uploaded using the WordPress interface.

This step isn’t too hard. First, log into the FTP of your website using your favorite FTP program. (I use Transmit on the Mac.)

Screen Shot 2013-07-29 at 1.31.35 PM

Navigate to root folder of your domain and copy the wp-content/uploads folder onto your computer. Now transfer the uploads folder to the same place on the new domain.

(Note: You’ll have to “merge” the two folders if you have existing uploads on the new domain. If it’s a fresh WordPress install, you can just replace the entire uploads folder.)

4. Re-Install & Configure Theme

This is another step where it really helps to use BackupBuddy.

Because I like to do things the hard and manual way… I had to reinstall my WordPress theme, Thesis, and manually copy over all of the custom code I’d put together. Specifically the custom.css and custom_functions.php files.

I also had to manually update the site options (which included font scripts, Google Analytics code, etc.) and the design options (font sizes, column widths, etc.).

It is an extremely manual process to have both of the WordPress installs open and copy+paste HEX values for font colors.

Your mileage may vary here. Some themes have an “export options” button that will make this process somewhat easier. Consult your theme documentation for further instructions.

5. Reinstall & Configure Plugins

Plugins are another part of the WordPress install that don’t get transferred over with the Export & Import process described so far.

Not only will you need to search, find, and reinstall all of the plugins, but you’ll also have to reconfigure them. Depending on how many plugins you use this may take a while.

The easiest way to do this is by having windows of both the old and new domains open at the same time and going through all the settings at the same.

6. Update Widgets

Any sidebar or footer widgets in your WordPress install will not be present on the new domain. You’ll be manually replacing links to old domain pages, images, and files here.

Open your old domain’s WordPress panel and navigate to Appearance > Widgets. Then manually copy + paste all of your text widgets or recreate the widgets.

7. Search And Replace Your Domain Name

Now we’re getting into the good stuff. To make sure all of the links within your site will go to the new domain instead of the old domain, install the Search And Replace plugin. I used version 2.6.5.

Once you have this plugin installed, all you have to do is a search and replace of your old domain name with your new one.

Screen Shot 2013-07-27 at 9.26.28 AM

For example, I was transitioning from pocketchanged.com to calebwojcik.com so I just did a simple search and replace to change ‘pocketchanged’ to ‘calebwojcik’.

Boom. Simple as that. Be careful with this step. Having a backup is critical here, because this search and replace is very powerful since it works directly on your database. Double check your spelling before proceeding, and consider any repercussions that could result from a mass search and replace operation.

8. Update All Shortlinks

If you use a plugin like Pretty Link to create shortlinks to specific URL’s then you’ll have to re-create those manually as well.

9. Update Podcast Episodes

When you do a search and replace on your website there may be URL’s you don’t want changed. For me, that was the URL’s to my podcast episodes hosted on Libsyn.

I went to each episode’s blog post and manually changed the link back to the MP3 to the proper URL.

10. Update Feedburner

If you are using Feedburner (or Feedblitz) for an RSS feed you’ll need to update it as well.

The main place you’ll need to make changes is in the Feed settings. Update the “original feed” to your new domain name.

Screen Shot 2013-07-29 at 12.14.33 PM

It is up to you whether you want to update the “Feed Address” though, because if you do then your previous feed will no longer work (i.e. people will have to resubscribe via RSS).

You’ll also want to go through the rest of your Feed’s settings to change any mentions of your old domain or brand to the new one.

11. Update Email List & “Blog Broadcast”

Inside your email list provider there will be plenty of things to update.

You’ll want to update the names of your lists (which might break your opt-in forms, so make sure to test them). You’ll also need to update any mentions of the old brand, old email address, etc.

Now for the biggest mistake I made during my domain transfer.

I left the “blog broadcast” setting to automatic in Aweber and a day after my feed updated Aweber blasted ten emails out to my list. By the time I heard from Aweber it was too late.

What happened was that Aweber pulled ten random posts from my archives (some from over a year ago) and decided to send all of them out, at once, via email. What a nightmare.

To make sure this doesn’t happen you to, change your blog broadcasts to manual during your domain transfer.

12. Create a 301 Re-Direct

Okay, so if you’ve made it this far, well done. This is a long process.

This step is the most important one because this is what will actually cause people that visit your old domain to be redirected to your new domain. And not just the homepage, but every individual blog post and page too.

To do this step you’ll need access to the FTP of your old domain again.

A) In the root directory you should find a file named ht.access. (If you don’t, just make one in a text editor and upload it to the root folder of the old domain.)

B) Open that file in a text editor (TextEdit on Mac or Notepad on Windows).

C) Add a 301 re-direct to ht.access file right after the “RewriteEngine On” line that reads:

Redirect 301 / http://newdomain.com/

Here is the full text in my ht.access file at my old domain as an example:

BEGIN WordPress
<IfModule mod_rewrite.c>
 RewriteEngine On
 Redirect 301 / http://calebwojcik.com/
 RewriteBase /
 RewriteRule ^index.php$ - [L]
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule . /index.php [L]
END WordPress

This will now redirect all traffic from your old domain to your new one. Again, test to make sure it is working.

13. Submit XML Sitemap to Google

Okay, here’s the last important step. Search engines need to know that you transferred domains and where all of your content now lives. The best way to do this so you don’t lose any SEO is to generate and submit your XML sitemap and submit it to Google.

To do this, all you need to do is install the Google Sitemap XML plugin, go to Settings > XML Sitemap, and then submit your sitemap to Google.

14. Test, Test, Test

Pour yourself a caffeinated beverage and start clicking around your new domain.

Test the major pages of your site to make sure they all work. Then go through your most recent blog posts, the sidebar, the footer, and anything else you think might have broken. It is better that you find the problems and fix them yourself than to have someone in your audience find them.

Additional Resources:

I referenced a bunch of other guides online to figure out how to do this on my own. Hopefully this guide covered all of the steps in plenty of detail for you, but if not, here are a few of them.

And once again, if you’re doing this on your own, you really should consider using the BackupBuddy plugin. It has a migration tool built-in that will automate steps 1 through 8 above for you and will save you a bunch of time and potential errors.

Have you migrated domains before? Have any tips or potential pitfalls to share? Would you change any of the steps above? Let us know in the comments below.

Get The Sparkline Daily — briefs to keep you on track
  • http://anchortab.com Justin Wesbrooks

    This is awesome! My team and I were just talking about needing to migrate everything to a new domain yesterday, and I was tasked with figuring it out. Needless to say, this helps A LOT. Thanks for the post :)

  • http://imants.do/ Imants Krezins

    Great post.

    I would add four points to make this even more comprehensive:
    1. Inform Google that you’re moving domain via Webmaster Tools (www.google.com/webmasters/tools/‎)
    2. Re-evaluate the plug-ins you’re using. Some plug-ins stop being supported by their creators and some new plug-ins may be created that better fit your needs.
    3. Test the speed of the website. If you’re moving to a shared hosting you are going to share resources with other websites – and there is a risk of being placed in a “bad neighborhood”. I use website speed test by Pingdom (http://tools.pingdom.com/)
    4. Closely monitor Google Analytics for 404 (Page not Found) errors. People may have linked to your old domain and the redirection is not working sending users to an error page.

    Imants

  • http://mattreport.com Matt

    And if this melted your brain, hire someone :)

    • http://www.calebwojcik.com Caleb Wojcik

      Ha! Exactly. It really is a manual process and takes a ton of work, even with a plugin that helps you out.

  • http://artistssuitcase.com Kent Sanders

    Caleb, THANK YOU, THANK YOU, THANK YOU! (Did I mention thank you?) This could not have been more timely because I am considering moving my blog to a new domain name. This is a fantastic post that’s extremely helpful. Thanks for taking the time to put it together.

  • http://epiclifepursuit.com/ Jason

    Wow, plenty of steps but good info indeed. Save it first as I never know I might need it one day. Thanks for sharing!

    • http://www.calebwojcik.com Caleb Wojcik

      No problem Jason. :)

  • http://omnicoreagency.com Omnicore

    Thanks for the post Caleb. It was very timely for us as we just re-branded our company and will set up 301 redirect very soon.

  • http://www.voicesofmarketing.com John Shea

    A lot of these steps are good but I was able to move my domain with less work following this guide and using the Duplicator plugin-
    http://optimwise.com/copy-migrate-wordpress-sites-with-the-duplicator-plugin/

    Didn’t need to re-install any plugins, just re-submit my sitemap pretty much. It even maintained my links through the Pretty Link plugin!

    • http://www.calebwojcik.com Caleb Wojcik

      Great share John. That sounds like a simpler solution than doing it all manually like I did.

  • http://www.bgsoftfactory.net Bernard Grosperrin

    I have been using Duplicator for WordPress, and blogged about it: http://www.bgsoftfactory.net/5-simple-steps-to-move-a-wordpress-website/
    It may not do absolutly everything, but at least it remove many manual steps, wich save time and lower errors propability. It can also be used as a backup, even if it’s not the intended goal for this nice plugin. As they say, your mileage may vary, but it has been great for me.

  • http://marketingwithsergio.com Sergio Felix

    Hey Caleb, now I know why I received 10 emails from you at once! LOL

    Anyway, I actually migrated a few sites just this past weekend (I never did it before) and came up with what I think was a very simple solution that doesn’t involves plugins, money or wordpress reinstalling and you get to have every single thing exactly as it was before (with all plugins both free and paid working properly):

    1. Export database inside PHPMyAdmin
    2. Download website files using FTP
    3. Create new database on new host
    4. Import database to new host
    5. Edit wp-config.php file with new database settings
    6. Upload website files using FTP

    That’s it! Although this doesn’t involves a change in the URL or domain name, this is just when you are “moving” your site to another host.

    Cheers,

    Sergio

    • http://www.calebwojcik.com Caleb Wojcik

      Great walkthrough on migrating sites. Sounds like that is a bit cleaner and more straight-forward than a domain transfer.

      Thanks for sharing.

    • http://www.sproutspire.com/ Carlie Hamilton

      I’ve done this also. You can do a search and replace within PHPMyAdmin to change urls.

  • http://www.designyourownblog.com/ Marianney

    I have been putting off switching hosts for too long. I have bookmarked this so I know where to go when I finally decide to take the time to do it. Scary!

    Thanks also to the commenters for their suggestions. I will be checking them all out.

    • http://www.calebwojcik.com Caleb Wojcik

      Definitely use Backup Buddy when you do so. Will save a ton of hassle.

  • http://2432121.com/ darryl

    I think I can handle this with the detailed instructions. Still seems pretty scary. Thanks for the information and all of the helpful comments from readers.

  • http://www.swimuniversity.com Matt Giovanisci

    Caleb,

    I just spent a whole week converting both my CMSs into one wordpress platform. I had to do all of these steps even though I wasn’t moving domains, just combining content. It sucked to say the least. However, I’m happy that all my content is now under one roof that’s easy to manage.

    Your part about grabbing a caffeinated beverage and going through your site, that’s what I’m doing now. There is not enough coffee or motivational tapes to get me through this, but it MUST be done.

    Let me know if you take a hit, traffic-wise. I think I’m gonna suffer this month until Google reindexes my site.

    Good work!

    • http://www.calebwojcik.com Caleb Wojcik

      Great idea for a follow-up on the SEO implications. And yes, there is not enough caffeine in the world to get you to check all the links on a site to make sure they work…

      Luckily there is a plugin to help with broken links: http://wordpress.org/plugins/broken-link-checker/

    • http://www.swimuniversity.com Matt Giovanisci

      Thank you for turning me on to that plugin. Saved me a ton of time :-)

  • http://energymatch.ca/ Ekaterina Ramirez

    I chose .ca domain (don’t want it anymore) and would like a different name for my site (didn’t come up with a better one yet).

    Thanks for sharing this, Caleb. I’ve been wondering at the back of my mind how to do it. I don’t feel like doing all this right now but will need soon.

    I wonder how the switch impacts google ranking?! I don’t want to lose what I’ve built so far.

    • http://www.calebwojcik.com Caleb Wojcik

      If you do a domain transfer with a proper 301 redirect and then submit the new XML sitemap to search engines like Google, you might lose a bit of ranking for the first week, but it should be right back to where it was before shortly.

  • nate

    Not my plugin, but I have used it plenty, its free, and it makes it extremely easy to transfer to a new domain. Its called duplicator and can be found here: http://wordpress.org/plugins/duplicator/

  • http://easybuypal.com Gareth

    I really struggled with this before but learnt over a few domains I now do it when I build a new site I usually start builing it on my local machine and then migrate it to the web host, here’s the steps I use, no plugins required, transfers everything. You can even use this to maintain multiple different versions of your site

    1) Using SQLAdmin export database to a .sql file
    2) If you’re changing domain name open the .sql in a text editor and search replace old domain for new
    3) Zip up contents of public_html directory
    4) Create a new database and db user with full permisions on new webhost
    5) Import .sql file into new database
    6) ftp the zipped public_html to webhost and extract contents into public_html
    7) Edit public_html/wpconfig.php to point to new database with new user / password

    That’s it, if you use much custom code its really handy to have a local copy of you site on your machine which you can tinker with and break and fix without affecting your live site.

    If you do want a local copy use Xampp on windows and edit your C:windowssystem32driversetchosts file add two entries of:
    127.0.0.1 yourdomain.com
    127.0.0.1 http://www.yourdomain.com

    This allows you to enter your domain in a browser and send the request to your machine, just comment the lines out with a # if you need access to your live site.

    • http://easybuypal.com Gareth

      For that 2nd hosts entry don’t include the “http://” – it got added automatically by wordpress comment formating ;-)

  • http://flashissue.com Phil Hill

    Or you can use something like managewp.com to clone your site to a new domain and then delete the old one (i’m not associated, just a customer).

  • http://www.positivebusinessonline.com Nik Cree

    Thanks for the ht.access (NB. the file name should be .htaccess for it to work) script. I was about to Google it for a friend who is moving a client site when your email of this post arrived. And a couple of steps I would definitely have missed (eg AWeber). Great Checklist!

  • http://www.incomegin.com Josh Lee

    I, too, recently migrated a WordPress site to a new domain and changed the permalink structure. Two recommendations I might make:

    (1) Be careful with search and replace in databases. I prefer interconnect’s script over a plugin (just remember to delete after use!). http://interconnectit.com/products/search-and-replace-for-wordpress-databases/

    (2) When you’re all finished check the media upload directory setting (under “media” in “settings”) and ensure it is pointing to the new domain and right directory. Mine wasn’t.

  • http://blog.qoyyuum.me Qoyyuum

    Oh! Caleb! *Raises hand frantically* I gots a question. After I migrate to a different domain name and redirect traffic from users that goes from the old domain name to the new one, what would happen to the PR of the old and the new?

    Also, if after doing all this redirecting traffic and stuff, do I still need to pay for the old domain name?

  • Pingback: Wordpress Reading List | WP Advocate

  • http://www.marketingyourfarm.com/new-here/ Iain

    Thanks for the information Caleb. I’ll have to bookmark this one for when that time comes.

    Even though you did a lot of the process manually, it’s really best to learn how to do it that way before you go the automatic route.

    Because if something goes wrong, and you didn’t learn how to do it manually, it can be a real pain to figure it out.

    Thanks again.

  • Irf

    Here’s a great resource to aide your move to another domain –
    http://interconnectit.com/products/search-and-replace-for-wordpress-databases/

    Can actually say have used it before and it was really helpful. However, make sure you follow the instructions fully.

  • http://www.smartselfpublisher.com/ Dan Gamito

    This is an amazing guide, and would definitely help somebody who has to migrate a site in a pinch do so without bombing their database and installs to hell.

    Thank you Caleb!

  • http://freelancewritersonline.com/ Kirsty Stuart

    Oh no! I mean – this is great, but it dropped into my inbox literally 24 hours too late! I’ve just moved my site and had to find out about most of the above through Google searches and YouTube videos. I wish I’d had this all in the one place to refer to.

    Nevermind, I picked up some extra tips here (I’m still tweaking my new site) so thanks!

  • Pingback: Blogelina Roundup for the Week Ending 8-02-13 | Blogelina

  • Pingback: transfer domains « Intellehost

  • http://www.lauraraisanen.com Laura Raisanen

    Wow, what a fantastic and comprehensive guide! Thank you very much for sharing :)

    Regards,

    Laura

  • http://hackthebrowser.org/ Joe Mauer

    That was pretty quick.

    Thanks for the tutorial, could you recommend something if I wanna move from WordPress to Joomla.

  • http://www.advertiseforworld.com/ Dwayne Graves

    Thanks for the info. I have made some domain name choices that I may regret in the future. If this happens, I’ll definitely read through these tips again.

  • Hollie

    Thank you so much for this post! I have been having so much trouble with my host who put my wordpress site on the wrong domain and I was finding it was an impossible task to move everything to a new hosting account on the right domain. The backup buddy is perfect and a worked a treat! Thank again.

  • http://incomepress.com Joey Kissimmee

    Just switched domains on one of my main niche sites and damn this was easier than I thought. The hardest and longest part was resetting all the damn plugins. Other than that it was easy. Thanks ;-)

  • http://incomepress.com Joey Kissimmee

    Once the move is done, when is it ok to delete all the old WP files of the original blog and when can I completely delete the old original domain?

    The old domain is going to expire soon so just want to know if I need it or not. Thanks.

    • Corbett Barr

      Before you delete anything, make sure you make a backup first :)

      If the redirects are being handled by a .htaccess file, and not by WordPress, you should be able to remove WordPress anytime. However, you should keep the old domain with the .htaccess file in place for as long as you want the redirects to continue functioning.

  • Darren Stehle

    Hey Guys

    I bought the 301 redirect in my WP.com blog, darrenstehle.com, and have directed the site to eatmovebe.com.

    A while ago I imported all of my posts, but here is the current issue: if you were to click on the following link, http://darrenstehle….ok-08-may-2013/

    it goes to eatmovebe.com, but it can’t find the post, which is now a permalink, http://eatmovebe.com…ok-08-may-2013/

    So, what can I do to map the links from darrenstehle.com to EatMoveBe, less the date in the URL?

    Thanks

    PS. I also posted this on the Fizzle Forum at:
    http://fizzle.co/forums/index.php?/topic/5380-how-do-i-export-import-my-blog/

    • Caleb Wojcik

      Just seeing this now, but it looks like you got an answer on the Fizzle forums. :)

  • http://authosites.com/ Nicole Brady

    Hi everyone,

    Just an issue I had while transferring my site and how I overcame it.

    I was transferring everything to my new domain, authosites.com. I followed the instructions listed here exactly.

    I definitely imported all of my uploads to my new host and domain. However, none of my featured images were showing up on my posts. After further investigation I discovered that my media library was empty.

    In order to get my images back into my media library I used this plugin http://wordpress.org/plugins/add-from-server/ to import the images from my uploads folder.

    Then I had to reassign all of my images. Some extra work unfortunately, but in case anyone ran/runs into this issue I thought I would share!

Up Next:

5 Simple Steps to Backup Your WordPress Site

My original title for this post was: The Most Important Thing You Can Do for a Successful Blog (But Probably Won't). Backups are ridiculously important and absurdly overlooked.

The Sparkline

For independent creatives and entrepreneurs building matterful things.

Get The Sparkline Daily: