Beginner's Guide for WordPress - Start your WordPress Blog in minutes.
Choosing the Best
WordPress Hosting
How to Easily
Install WordPress
Recommended
WordPress Plugins
View all Guides

How to Move WordPress From Local Server to Live Site

Last updated on by
Special WordPress Hosting offer for WPBeginner Readers
How to Move WordPress From Local Server to Live Site

Developing a WordPress site locally can help speed up the development process. In the past, we showed you how to install WordPress on your Windows computer using WAMP and on Mac using MAMP. Once you have finished the development on localhost, the next step is to move the site live. In this article, we will show you how to move WordPress from local server to a live site. By using this process, you would be able to migrate all of your content (posts, pages, images, etc), themes, as well as plugins from local server to a production site.

Before we start, we must let you know that you can make this migration from local server to a live site easier by using one of the two plugins: BackupBuddy or Duplicator. In this article, we will show you how to move WordPress from local server to live site manually, so you can learn the process. However to make the process easy for us, we rely on BackupBuddy when we do this on a day to day basis.

Pre-Steps

In order for you to migrate your locally developed WordPress site to a live server, you need to have two things. First is the local server. We are assuming that you have a WordPress site running on local server, and you have full access to it. Next, you would need to have web hosting that supports WordPress, so you can migrate your content over.

You would need to have a FTP program and know how to use FTP, so you can upload your content to the live site.

Note: the screenshots used in this article are from WordPress hosting providers that have cPanel.

Step 1: Export Local WordPress Database

First thing you need to do is export your local WordPress database. We will be using phpMyAdmin to do that. If you are unfamiliar with it, then you might want to take a look at our guide to WordPress database management using phpMyAdmin. Simply go to http://localhost/phpmyadmin/ and click on your WordPress database. Next, click on the Export button from the top menu bar.

Exporting WordPress database using phpMyAdmin

In the Export Method option choose custom, which will provide you with more options to export your database. Select all tables to export and gzipped for compression. Scroll down to the bottom of the page and press the Go button to download your database.

Step 2: Uploading WordPress Files to Live Site

Now open an FTP client and connect to your live site. Once you are connected to your live site, make sure you upload the files in the right directory. For example if you want the site to be hosted on yoursite.com, then you would want to upload all files in your public_html directory.

Now select your local WordPress files and upload them to your live server.

Uploading WordPress from localhost to live site

Step 3: Creating MySQL Database on Live Site

While your FTP client is uploading your WordPress files, you can spend this time on importing your database to the live server. Most WordPress hosting providers offer cPanel to manage your hosting account, so we will show you how to create a database using cPanel. Log in to your cPanel dashboard and click on the MySQL databases icon which can be found in the databases section.

Creating MySQL database in cPanel

On the next screen, create a database by entering a name for your database.

Create a new database

After creating a database, scroll down to MySQL users section and create or add an existing user to the database. After adding the user, cPanel will take you to set MySQL privileges for that user. Simply grant all privileges to the user.

Create a new MySQL user or Add an existing user to the Database

Step 4: Importing WordPress Database on Live Site

Next step in the process is to import your WordPress database. Go to your cPanel dashboard, scroll down to the databases section and click on phpMyAdmin. This will take you to phpMyAdmin where you want to click on the database you created earlier. phpMyAdmin will show your new database with no tables. Click on the Import tab in the top menu. On the import page, click on choose file button and then select the gzipped database file you saved in step 1. Lastly, press the Go button at the bottom of the page. phpMyadmin will now import your WordPress database.

Importing database in phpMyAdmin

Step 5: Changing the Site URL

Now you need to change the site URL, so you can setup your live WordPress site. In your phpMyAdmin, look for the wp_options table in your database that we just imported in step 4. If you changed your database prefix, then instead of wp_options it might be {prefix}_options.

Click on the browse button next to wp_options or the link that you see in the sidebar to open the page with a list of fields within the wp_options table. See screenshot below:

Browse wp_options in phpMyAdmin

Under the field options_name, you need to look for siteurl. Click the Edit Field icon which can be found at the far left at the beginning of the row.

Edit siteurl in phpMyAdmin

When you click the edit field, an edit field window will appear. In the input box for option_value, you will see the URL of your local install probably something like: http://localhost/test. Carefully insert your new site url in this field, for example: http://www.wpbeginner.com

Save the field by clicking the Go button.

Next, you need to replicate this step for the option name: home. The wp_options page can be a few pages long, so simply find the home tab. Usually it is on the second page which you can navigate to by clicking on the pagination arrows in phpMyAdmin.

Update the home url to be the same as your siteurl.

Step 6: Setting Up your Live Site

Now that we have imported the database, and all of our content should be uploaded, it is time to configure WordPress. At this time, your site should be showing an Error Establishing Database Connection error. To fix this, connect to your website using an FTP client and edit wp-config.php file. Provide the database name, user and password you created earlier in Step 3. Save the wp-config.php file and upload it back to your server. Visit your website, and it should be live now.

Login to your WordPress admin panel, and go to Settings » General. Click save Options. This will ensure that the site url is corrected anywhere else that needs to be.

Then go to Settings » Permalink and click Save to ensure that all post links are working fine.

Step 7: Fixing Images and Broken Links by updating Paths

Whenever you are moving a WordPress site from one domain to another, or from local server to a live site, you would face broken links and missing images issue. You can either use the SQL query or use the Velvet Blues WordPress plugin.

For those who want to do it via SQL, here is a simple SQL query that should solve this problem:

UPDATE wp_posts SET post_content = REPLACE(post_content, 'localhost/test/', 'www.yourlivesite.com/');

Simply go to phpMyAdmin, click on your database and then click on SQL from top menu. Write this query but don’t forget to change it with your own local site and live site URLs.

Fixing WordPress images and broken URLs after moving to live site

That’s all, hopefully your live site will be up and running by now. Checkout your site to make sure that every thing is working fine as expected. For troubleshooting and questions feel free to leave us a comment below and we will try to help out as much as we can.

If you are doing this on a regular basis, then we highly recommend that you get BackupBuddy because it will make your life easy. You will thank us for that later :)


Editorial Staff at WPBeginner is a team of WordPress experts led by Syed Balkhi. Page maintained by Syed Balkhi.

WPBeginner's Video Icon
Our HD-Quality tutorial videos for WordPress Beginners will teach you how to use WordPress to create and manage your own website in about an hour. Get started now »

Comments

  1. shah says:

    Hi
    Thankyou for the details, but i am still not able to get the path of images correct inspite of the changes done … i have my folders in public_html and have my db created …my live website is working fine except for the pic / logos

  2. zarna says:

    My wordpress site went live but my images are not getting replicated and they aren’t visible. Can you please guide me what should be the images folder structure while uploading it to live ??

    Your help and guidance would be appreciable.. Thank you.

  3. Coil McCoy says:

    Great post !!!
    Only the last part doesn’t worked for me, the pictures and links still missing !
    Any clue?
    thank you

  4. Vinish Chaudhary says:

    Hello,
    All great beside this You don’t have permission to access / on this server.Don’t know why it is showing when I try to access my site.I have done all steps like you said but getting this error can anyone please help me to solve this problem.

  5. Sudais says:

    Instead of this long way,I use a plugin called wp all in one migration,I just need to import a single file using a plugin when I go live and all done,no playing with databases,etc.I think everyone should do that saves alot of time and handywork.

  6. Paul says:

    Great article ! But I’m still stuck at the last step. Images aren’t showing on my website.

    Well in fact they does, but only on my PC. Everybody else is getting a buggy website.

  7. Farooq Bashir says:

    Wow .. Great Article sir
    Its Perfect Working.
    Thanks

  8. Bikram Ray says:

    Hi,

    No doubt; a very useful article. But I got stuck in the last step. I ran the SQL update query but still having issues regarding image path.

    Just one thing; while uploading the file through FTP, I did not upload the wordpress folder (the test folder) rather I uploaded whatever inside it.. So in the server there is only the folders and files directly placed under ‘public_html ‘

    Regards,
    Bikram

  9. Kay says:

    DIDN’T WORK!!

    Error
    SQL query:


    — Database: `wordpress`

    CREATE DATABASE IF NOT EXISTS `wordpress` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
    MySQL said: Documentation

    #1044 – Access denied for user ‘ksalim’@’localhost’ to database ‘wordpress’

  10. Damilola says:

    A very awesome article, it really made a project i was working on for a client already on my local machine easy to move to his server, i mean i literally tried to develop the website all over again and it was such a pain in the ass….Thank you

  11. Tim Vincent says:

    Thank you so much for this guide. I struggled doing this for some time before finding this. I followed it word for word and all seems to work. I am very grateful!

  12. sonu says:

    hello! syed

    i want to ask you to from where i get the best free wordpress simple attractive theme which laterly i planned to upload on the live server….any help would be much appreciated….thanks…

  13. sonu says:

    hello! syed

    i want to ask you when we upload the worpress site from locahost to live server….i just want to ask the wordpress having lot of files and inside the wp-content/themes/… having three different types of theme like twenty fourteen,twenty thirteen ,so is it needed to upload all these themes or not….help would be much appreciated…..thnks…..

  14. Andres Paz Soldan says:

    Thank you! This was very useful!

  15. Lellys says:

    First of, thank you!

    I did everything and my site is working, but when I need to login on my wp-admin, it show me a blank screen and nothing happens. Any idea?

  16. paddy lutaaya says:

    thank you for this article i have followed the steps and uploaded my website to c panel but it has failed to work it brings internal error please help me solve this thank you

  17. Phillip Pilkington says:

    Allgreat advise except step 6. I have not got past this stage, the advice is not clear. My website shows the Error Establishing Database Connection. This next part doesn’t explain anything to me.
    “To fix this, connect to your website using an FTP client and edit wp-config.php file. Provide the database name, user and password you created earlier in Step 3. Save the wp-config.php file and upload it back to your server. Visit your website, and it should be live now. ”

    I am connect via ftp, then just edit the file….no, nothing happens from here.I open the file in aneditor but I don’t make any changes because it does not show anything about whatis expalined.

    Regards,

    • Tyler Hall says:

      Hey, I am currently transferring the files as we speak. Not sure if you found a solution yet (hopefully you have its been 15 days) but you should probably change the hostname: /** MySQL hostname */
      define(‘DB_HOST’, ‘ ‘ your hostname before should have been your localhost or similar.

  18. Himanshu says:

    Thanks for the post. Really helped solve my problem. Although I faced some issues with database importing. After much effort, updating the phpmyadmin version fixed it for me. If possible you could also include common errors in each section, so that a beginner doesn’t get lost. As it happens, most likely you are going to face some error here and there. Other than that great post. Thanks.

  19. Ola says:

    Hi,

    Thanks for this, the steps are so direct and you made WordPress uploading fun.

  20. Andy says:

    Hi. When I go to my website it says Welcome to: yourwebsite.com
    This Web page is parked for FREE, courtesy of GoDaddy.com. Do I have to register my domain? I just thought of a random website name to put in for the changing site url step 5. Also when I enter the local host site I get the message the webpage could not be found. What should I do?

Add a Comment

We're glad you have chosen to leave a comment. Please keep in mind that all comments are moderated according to our comment policy, and all links are nofollow. Do NOT use keywords in the name field. Let's have a personal and meaningful conversation.