JustinsBlog.com

Personal Blog - Helpful Resources - Possible Rants

  • Home
  • About
  • Blog
  • Contact
post

How to Move WordPress to New Domain

April 30, 2009 By Justin

Moving WordPress to a new domain

Have you ever thought about moving your WordPress website?  Better yet, have you ever thought of creating a duplicate or backup of your WordPress website to use as a clone for reproduction?

If you are a webmaster or domainer, chances are you’ve heard of WordPress and have possibly used it and if you’ve been around a while, you may even have several or many WordPress sites up an running.  Either way, at some point you may want to move or copy your website so let’s get going.   

Moving WordPress

WordPress consists of two major components which make up an actual website, data and files.

  1. Database – is a database of tables that stores all of the content of your website.  This will contain every stitch of content on your website including users, links, basically everything.
  2. Files – These are the actual files and directories (folders) stored on the server of your host.  A file manager is where you’ll find these.  Files are what makes your website look like it does and communicate with the database to display your website information within the confines of css and templates.

In my case, I have a small business website where I installed a bare bones, WordPress 2.7.1 with nothing but Maintenance Mode installed and a customized temporary landing page.  The objective is to duplicate or copy my website onto another domain name to save time.  Some may do this differently but I’m going to list my steps below how I do it.

Seven Quick Steps to moving your WordPress site:

  1. Backup database tables
  2. Backup and download WordPress files
  3. Upload WordPress backup .tar file to new location
  4. Change wp-config file (database access)
  5. Import tables to new database
  6. Run mySQL queries in phpMyAdmin
  7. Update WordPress General settings

Step 1 – Backup WordPress database

While there are of course, many ways to do this I prefer going right into phpMyAdmin in cpanel and clicking on my wordpress database and then clicking on export and making sure all the tables are selected.  I use the “zipped” compression level and save it to a folder on my hard drive.  I like to call mine, Site Recipes.  So now I have a backup of the basic tables within database, now what?

Step 2 – Backup WordPress files

  1. Go into File Manager and to the directory where WordPress is installed.
  2. Select All the files – Usually there’s a checkbox.
  3. Compress Files – in cpanelX theme there is button for that.  I use the .tar selection when it prompts me.
  4. Download the file you just compressed into the same folder as your database tables.

Now that I have both a database backup and a file backup we’re going to have to put these both on the new server.  There are a couple things that you should have completed in order to move your website… like a new host or a new cpanel account or simply a sub-directory or add-on domain.  In my case, I’m moving this WordPress site from domain ‘A’ to domain ‘B’ so I have the necessary elements already set up.  These are my Cpanel hosting account and I’ve created a database with username and password.

Step 3 – Upload and Extract WordPress Tarball to location

Do not extract that .tar file you downloaded, simply use an ftp program or cpanel to upload it to your new domain where you’ll be moving the site.  On my hosting account with Hostgator, my files are stored in the /public_html/ directory.  This is the web accessible directory, (when you go to www.yoursite.com it automatically takes you to the /public_html/ directory on your server.  In there it’s going to look for an index file.   So upload that backup to the location of your new website and extract it there.

In cpanelX 11, you can do this within cpanel.  Just select the file and extract it to the location on your server that it was uploaded to, change nothing.  We uploaded to /public_html and that’s where we will extract it.

Step 4 – Change wp-config

There are three things in the wp-config.php file you’ll want to change, (This file is located in the directory you unzipped the wordpress backup in.  The three changes are: (in bold)

/** The name of the database for WordPress */
define(‘DB_NAME’, ‘cpaneluser_databasename‘);

/** MySQL database username */
define(‘DB_USER’, ‘cpaneluser_username‘);

/** MySQL database password */
define(‘DB_PASSWORD’, ‘DatabasePassword‘);

Cpaneluser – refers to your cpanel user login name which is a prefix followed by an underscore then the database name and username.  This information is needed to communicate with the database.

Step 5 – Import the WordPress Database Tables

Now that we have the files and all have been uploaded and extracted and we have configured the WordPress files to communicate with your database, we must now populate the database with the tables we saved from our site recipe or site backup.  Once we have the new database tables in place we’re going to have to run some database queries using the MySQL replace() function to change links within the database.  You’ll need to stay in phpMyAdmin to do this step.

Step 6 – Run MySQL Queries to Change the WP Database Links

First SQL querie we’re going to run is replacing the siteURL in the database.  Rather than looking for the exact table, just select the database we added tables to and select the 2nd tab, SQL.

UPDATE wp_options SET option_value = replace(option_value, ‘http://www.old-URL.com’, ‘http://www.new-URL.com’) WHERE option_name = ‘home’ OR option_name = ‘siteurl’;

The next database query we will run is going to replace the URLs within the WordPress posts and pages and stored in wp_posts.  Here is the querie:

UPDATE wp_posts SET guid = replace(guid, ‘http://www.old-domain.com’,’http://www.new-domain.com’);

Again, simply replace the old-domain with your new domain name leaving everything else in tact.  The last query we will run is going to replace links within posts or internal links.

UPDATE wp_posts SET post_content = replace(post_content, ‘http://www.old-domain.com’, ‘http://www.new-domain.com’);

Now that all the links are changed within wordpress, we are almost done.

Step 7 – Change your WordPress General Settings

Login to your WordPress now under:   yourdomain.com/wp-admin and go to settings, general and change the information in there including your email address and the name of your website.

That’s it!  Your new wordpress site should be up and running.  Below are several links to other methods of moving your wordpress website that you may find helpful.

  • Moving WordPress to another domain 9 steps
  • Moving WordPress To A Different Domain
  • How to move WordPress site to another server with zero downtime
  • Moving WordPress to a Different Domain

Filed Under: Web Development Tagged With: how to, move wordpress, Wordpress

Comments

  1. Gaurish Sharma says

    May 9, 2009 at 1:45 PM

    Thanks…Handy guide

  2. Tom G says

    November 5, 2009 at 8:30 PM

    Thanks a lot! Awesome.

  3. Richard says

    December 3, 2009 at 12:17 PM

    The best tut yet, thanks for urilising the cpanel funtions in file manager. One point to add: the easiest way to handle the datbase (if you’re simply moving servers and keeping the domain) is to use the cPanal backup wizzard. You can backup any database here and have it downloaded as a gzip.

    In the new server cpanel, you should now create a database with the exact same name as the one you had on the old server.

    Now do a restore database routine in the new cpanel and upload the saved database from your old site. IF it’s the same name, cPanal will recognise it and upload it, overwriting the empty database you just created.

    The advantage of this method is that using cPanal restore routine avoids any timeouts for large database imports that can happen in phpmyadmin.

    Done this a few times and it’s been flawless. Also much easier for the novice who might feel unsure of PhpMyadmin

  4. mb says

    October 27, 2010 at 11:57 PM

    Hi! This worked pretty well for me as well… I do have onw problem. When I upload images, they still upload to the old domain instead of the new one. Any other queries I should be running?

  5. mb says

    October 28, 2010 at 12:16 AM

    Oh, found it in the media settings… 🙂

  6. Bluefantail says

    January 10, 2013 at 2:47 PM

    You rock! This saved me ages, despite the trials and struggles of working with Godaddy. Much appreciated.

    FYI, if you’re extracting to an godaddy hosting account, you have to have a .zip or a .tar.gz backup, not just a .tar.

    • Justin says

      January 11, 2013 at 9:28 AM

      I would recommend against using GoDaddy for anything as there are much better hosting companies out there that use cPanel. HostGator has been my favorite throughout the years.

  7. take photos says

    June 19, 2014 at 12:29 PM

    Hey there would you mind letting me know which webhost
    you’re working with? I’ve loaded your blog in 3
    completely different internet browsers and I must say this blog loads a
    lot faster then most. Can you recommend a good internet hosting
    provider at a reasonable price? Thanks, I appreciate it!

About Justin

JustinsBlog.com author Justin KulhawickWelcome to JustinsBlog.com.  This is my home on the web where I write about Wordpress, domain names, hosting, technology and product reviews.  - serial entrepreneur and Apple fanboy

Recent Posts

  • How I Make Smoked Baby Back Ribs
  • 2017 New Year Resolutions – Goals

Recent Comments

  • Kevin Grames on Fresh Store Builder 7 Review
  • Justin on Fresh Store Builder 7 Review
  • Kevin Grames on Fresh Store Builder 7 Review

Copyright © 2023 JustinsBlog.com · WordPress