Trusted WordPress tutorials, when you need them most.
Beginner’s Guide to WordPress
25 Million+
Websites using our plugins
Years of WordPress experience
WordPress tutorials
by experts

How to Move WordPress From Local Server to Live Site (2 Methods)

Editorial Note: We earn a commission from partner links on WPBeginner. Commissions do not affect our editors' opinions or evaluations. Learn more about Editorial Process.

Many WordPress users prefer to work on their websites using a local server on their computer before transferring it to a live hosting server.

It allows you to work on your website privately before making those changes available online.

Eventually, you’ll need to move it to a live server to make it available for online visitors.

In this article, we will show you step-by-step instructions on how to move WordPress from a local server to a live site.

How to move WordPress from local server to live site (2 methods)

Why Move WordPress From a Local Server to a Live Site?

Building your WordPress blog on a local server is a safe way to test changes on your website without affecting visitors.

When you have finished perfecting your website, the next step is to move from your local server to a live site.

Let’s show you two ways to move your site from a local server to a live site.

The first method uses a WordPress migration plugin and is recommended for beginners.

In the second method, we will show you how to manually move WordPress from a local server to a live site.

You can choose the method that works best for you:

Before You Migrate Your WordPress Site

To migrate WordPress from a local server to a live server, you need to have a few things in place.

First, we are assuming that you have a WordPress site running on a local server (also called localhost) on your computer and you have full access to it.

Next, you’ll need to have a domain name and web hosting.

To make your decision easier, we recommend using Bluehost. They are an officially recommended WordPress hosting company, and they are giving WPBeginner users an exclusive discount + free domain and SSL.

Basically, you can get started for as little as $1.99 per month.

If you want a great Bluehost alternative, you can look at Hostinger. They are also offering an exclusive discount to WPBeginner users with a free domain name.

If you can afford to pay a little more, then check out SiteGround. They also have a special deal for WPBeginner readers.

If you need help setting up your website, then follow our step-by-step guide on how to make a website.

Finally, you will need an FTP program and know how to use FTP to upload your local server site to the live site.

Ready? Let’s begin migrating your WordPress site.

Video Tutorial

Subscribe to WPBeginner

If you’d prefer written instructions, then just keep reading.

Method 1: Transfer WordPress From The Local Server to Live Site Using a Migration Plugin (Recommended)

This method is easier and recommended for beginners. We will be using a WordPress migration plugin to move WordPress from localhost to a live site.

Step 1: Install and Set Up the Duplicator Plugin

First, you need to install and activate the Duplicator plugin on your local site. For more details, see our step-by-step guide on how to install a WordPress plugin.

Pro Tip: There is also a pro version of Duplicator that offers secure backups, cloud storage, easy site restore, and more.

Upon activation, you need to go to the Duplicator » Packages page and click on the ‘Create New’ button.

Create new package for migration

This brings you to a screen where you can give your backup a name.

Then, click the ‘Next’ button.

Name backup package

Duplicator will now run some tests to see if everything is in order.

If all items are marked ‘Good’, then click on the ‘Build’ button.

Build package

This process may take a few minutes, depending on the size of your website. You need to leave this tab open until the process is complete.

Once finished, you’ll see download options for ‘Installer’ and ‘Archive’ packages. You need to click on the ‘One-Click Download’ link to download both files to your computer.

Download package files

The ‘Archive’ file is a complete copy of your WordPress site. It includes all WordPress core files as well as your images, uploads, themes, plugins, and a backup of your WordPress database.

The ‘Installer’ file is a script that will automate the entire migration process by unpacking the archive file containing your website.

Step 2: Create a Database for Your Live WordPress Website

Before you can run the installer or upload the WordPress website from localhost to your hosting server, you need to create a MySQL database for your new live website.

If you have already created a MySQL database, then you can skip this step.

To create a database, you need to visit your hosting account’s cPanel dashboard. Then, locate the ‘Databases’ section and click on the ‘MySQL Database Wizard’ icon.

MySQL Database Wizard

On the next screen, there’s a field to create a new database.

Simply provide a name for your database and click on the ‘Create Database’ button.

Name new database

cPanel will now create a new database for you.

After that, you need to enter a username and password for your new user and then click the ‘Create User’ button.

Create new database user

Next, you need to add the user you just created to the database.

First, click the ‘All Privileges’ checkbox.

Check all privileges

Then, scroll down and click the ‘Make Changes’ button to save your changes.

Your database is now ready to be used with your WordPress site. Make sure to note down the database name, username, and password. You’ll need this information in the next step.

Step 3: Upload Files from Local Server to Live WordPress Website

Now, you need to upload the archive and installer files from your local site to your hosting account.

First, connect to your live site using an FTP client. Once connected, make sure that the root directory of your website is completely empty.

Normally, the root directory is the /home/public_html/ folder.

Some WordPress hosting companies automatically install WordPress when you sign up. If you have WordPress files there, then you need to delete them.

After that, you can upload the and installer.php files from Duplicator to your empty root directory.

Upload archive and installer files

Step 4: Running the Migration Script

After you have uploaded the migration files, you need to visit the following URL in your browser:

Don’t forget to replace ‘’ with your own domain name.

This will launch the Duplicator migration wizard.

The installer will run a few tests and will initialize the script.

Duplicator migration wizard step 1

Under the Setup section, you will be asked to enter your MySQL host, database name, username, and password.

Your host will likely be localhost. After that, you will enter the details of the database you created in the earlier step.

Then, click on the ‘Validate’ button to make sure the details you entered are correct.

Validate settings

After that, click on the ‘Next’ button to continue.

Duplicator will now import your WordPress database backup from the archive into your new database.

It will also update URLs pointing to the local site to your new live site.

You can now click on the ‘Admin Login’ button to enter the WordPress admin area of your live site.

Admin login

Once you log in to your live site, Duplicator will automatically clean up the installation files.

That’s all. You have successfully moved WordPress from the local server to your live site.

Method 2: Manually Transfer WordPress From the Local Server to the Live Site

In this method, we will show you how to manually move WordPress from the local server to your live site. It will be useful if the first method doesn’t work or if you prefer to do it manually.

Step 1: Export Local WordPress Database

The 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.

Export from localhost

In the ‘Export method:’ option, you can choose ‘Quick’ or ‘Custom’. Custom will provide you with more options to export your database.

But we recommend choosing ‘Quick’ and then clicking the ‘Go’ button to download your database.

Export WordPress database using phpMyAdmin

Step 2: Upload WordPress Files to Live Site

Now, we will need to move all your website files to the live site.

To get started, go ahead and open your FTP client and connect to your web hosting account.

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 ‘’, then you will want to upload all the files in your public_html directory.

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

Upload WordPress files FTP

Step 3: Create a MySQL Database on Your Live Site

While your FTP client is uploading your WordPress files, you can start 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.

First, you need to log in to your cPanel dashboard and click on the ‘MySQL Database Wizard’ icon, which can be found in the ‘Databases’ section.

Select MySQL database wizard

On the next screen, you can create a new database.

You need to provide a name for your database, then click ‘Create Database’.

Name and create new database

cPanel will now automatically create a new database for you.

Next, you need to enter a username and password for your new user, and then click ‘Create User’.

Create new database user

After that, you need to add the user you just created to the database.

First, check the ‘All Privileges’ checkbox.

Check all privileges checkbox

Then, scroll down and click ‘Make Changes’ to save your changes.

You’ve successfully created a new database for your live WordPress site.

Step 4: Import WordPress Database to Live Site

The 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’.

Click on phpMyAdmin

This will take you to phpMyAdmin, where you want to click on the database you just created above. phpMyAdmin will show your new database with no tables.

Next, click on the ‘Import’ tab in the top menu. On the import page, click on the ‘Choose File’ button and then select the database file from the local site you saved in the first step.

Import database via phpMyAdmin

After that, click the ‘Go’ button at the bottom of the page. Your database will automatically be imported to phpMyadmin.

Step 5: Change the Site URL

Now, you need to change the site URL in your database so that it will connect with your live WordPress site.

In phpMyAdmin, look for the wp_options table in your database that you just imported above.

If you changed your database prefix, then instead of wp_options, it might be {new_prefix}_options.

Next, click on the ‘Browse’ button next to wp_options. Or, click the link in the sidebar to open up the page that has a list of fields within the wp_options table.

Browse the wp options table

Then, in the options_name column, you need to look for the siteurl option.

Then, click the ‘Edit’ icon.

Edit siteurl in phpMyAdmin

This brings up a window where you can edit the field.

In the input box for option_value, you’ll see the URL of your local install, which will be something like http://localhost/test.

You need to insert your new site URL in this field, for example:

Then, you can save the field by clicking the ‘Go’ button.

edit the siteurl field

Next, you need to follow the same steps as above for the home option name. The wp_options menu can be a few pages long. Usually, the home option will be on the second page.

Then, update the home URL, so it’s the same as your live site URL.

Step 6: Set Up Your Live Site

Now that you’ve imported the database and uploaded your content, it’s time to configure WordPress.

At this time, your site should be showing an ‘Error establishing a database connection‘ error.

To fix this, connect to your website using an FTP client and open up the wp-config.php file.

You’ll be looking for the following lines of code:

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'database_name_here' );
/** MySQL database username */
define( 'DB_USER', 'username_here' );
/** MySQL database password */
define( 'DB_PASSWORD', 'password_here' );
/** MySQL hostname */
define( 'DB_HOST', 'localhost' );

You will need to provide the database name, username, and password you created earlier.

Next, save the wp-config.php file and upload it back to your WordPress hosting server.

Now, when you visit your website, it should be live.

After that, you need to log in to your WordPress admin panel and go to the Settings » General. Then, without changing anything, scroll to the bottom and click the ‘Save Changes’ button.

Save general settings

This will make sure that your site URL is corrected anywhere else that it needs to be.

Once you’ve done that, go to Settings » Permalinks, then scroll down and click ‘Save Changes’ to ensure that all post links are working fine.

Save permalinks settings

Whenever you are moving a WordPress site from one domain to another or from a local server to a live site, you’ll face broken links and missing images.

A simple way to update the URLs is by using the following SQL query:

UPDATE wp_posts SET post_content = REPLACE(post_content, 'localhost/test/', '');

Simply go to phpMyAdmin, click on your database, and then click on ‘SQL’ from the top menu and add the query above.

Make sure you change it to your own local site and live site URLs and click the ‘Go’ button.

Fixing WordPress images and broken URLs after moving to live site

That’s it. You have now successfully migrated WordPress from your local server to a live site.

Hopefully, your live website is up and running smoothly. If you notice any errors, then you can check out our guide to common WordPress errors for help with troubleshooting.

We hope this article helped you move WordPress from a local server to a live site. You may also want to see our guide on how to create an email newsletter the right way or see our comparison of the best GoDaddy hosting alternatives.

If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.

Disclosure: Our content is reader-supported. This means if you click on some of our links, then we may earn a commission. See how WPBeginner is funded, why it matters, and how you can support us. Here's our editorial process.

Editorial Staff

Editorial Staff at WPBeginner is a team of WordPress experts led by Syed Balkhi with over 16 years of experience in WordPress, Web Hosting, eCommerce, SEO, and Marketing. Started in 2009, WPBeginner is now the largest free WordPress resource site in the industry and is often referred to as the Wikipedia for WordPress.

The Ultimate WordPress Toolkit

Get FREE access to our toolkit - a collection of WordPress related products and resources that every professional should have!

Reader Interactions

909 CommentsLeave a Reply

  1. Syed Balkhi says

    Hey WPBeginner readers,
    Did you know you can win exciting prizes by commenting on WPBeginner?
    Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
    You can get more details about the contest from here.
    Start sharing your thoughts below to stand a chance to win!

  2. Sunita says

    Really Thanks:)…It’s a great tutorial and it’s very helpful to me..
    one thing i asked you..can you tell me how to open wp dashboard after this??

    • WPBeginner Support says

      You would want to add /wp-admin to the end of your domain and that should bring you to the login page where you would use the same login information as on your local install.


  3. gerardo says

    HI! i have a live site fully operational but on localhost i make a new site, mostly design. If i migrate it using some pluguin like duplicator, the info from the old site would be deleted?

    • WPBeginner Support says

      It would not remove your local site but if you’re trying to install it where a site is already installed then you would run into overwriting issues.


  4. Grace Lee says

    After moving my website to a live site, will I still be able to edit and make changes to it? Thanks!

  5. Temidayo Marvel says

    Great solution to my Problem.

    is it safe and easy to use premium themes and plugins on the wampsever while testing and setting up the WordPress site locally, or do I need to deploy my themes and plugins after importing the site to a livehost.

    • WPBeginner Support says

      You would want to check with the support for the theme and plugins you’re wanting to use for if they work on local sites or not.


  6. Jason Bar says

    I got lost on the part “connect to your live site using an FTP client.”

    That is completely different tutorial where there is no hyperlink to see it.

  7. Ashley Davies says

    Thanks for the article, I have run into a problem doing method 1. In step 4, when I visit the url at mysite/installer.php, I get an error from duplicator as follows:

    ‘Archive not found! The ‘Required File’ below should be present in the ‘Extraction Path’. The archive file name must be the exact name of the archive file placed in the extraction path character for character.’

    Any help with this would be greatly appreciated

    • WPBeginner Support says

      You would want to check with your hosting provider that the file is located in the correct location in your files.


  8. Elías Sánchez says

    I suffer with this kind of stuff, in fact today i spent a lot of hours doing this migration from local to a server.

    Reading and following this helped a lot.
    Thanks for sharing!

  9. Luz Manalo-Cruz says

    Hi. I’ve successfully migrated from localhost to livesite! Yay! What now do I do with the localhost?

    • WPBeginner Support says

      That would be a personal preference question whether you would like to keep it or remove it.


  10. Luz Manalo-Cruz says

    Hi! Using Method 1, all went well until Step 4 – the migration wizard doesn’t launch when I type in (I changed to my domain). Instead I get a Page Not Found. I’ve tried this twice now and I get the same Page Not Found screen on Step 4. Am I missing a step?

    • WPBeginner Support says

      You may want to ensure you placed the file inside the correct folder, you can check with your hosting provider and they should be able to assist.


  11. Milutin says

    If someone has problems on Method 1 Step 4 with cPanel host name (error text: No such file or directory), instead of localhost, try mysql. This step always bugs me off nad frustrates me.

    Thanks for the great tutorial! Used it multiple times!

  12. Purushothaman Gempuraj says

    Thanks. The first Duplicator based method worked for AWS based AMI Linux server 2 which had external database connection as well.

  13. Meredith Bashert says

    I’m still seeing “error establishing a database connection.” I don’t have a domain name set yet (waiting until the site is complete) so I used the domain name that I used to log in to the FTP client as my option value in my wp_options.

    • WPBeginner Support says

      For that error, the domain you set is likely correct but you would want to double-check your username and password for your wp-config file


  14. Husain says

    Dear WpBeginner team,
    In case i already have a website running on my live server (Hosting) and i want to upload a new site on it, so do i need to manually delete all the old files ?

    Please advise.

    • WPBeginner Support says

      If you are using the manual method from this article you would overwrite the files currently on your hosting rather than deleting them.


  15. Paul K says

    Thank you so much for the instructions. The manual way was way simpler and faster than any plugin I tried.

    • WPBeginner Support says

      As the database is being copied from your local environment it means you will not need to edit the wp-config normally


  16. Beth says

    I am completely stuck on Method 1 Step 3 – when i try to connect in FileZilla it keeps saying “Could not connect to server”. Please help!

    • WPBeginner Support says

      The most common reason would be your FTP information being incorrect, if you reach out to your hosting provider they should be able to assist.


  17. Shubham says

    After exporting my website from local host i couldn’t import it to another wordpress which is live . This was because of file size limit. Any suggestion in this regard.

  18. Claudia says

    Thank you so much for your tutorial. I built the website on localhost, thanks to your tutorial about it. I have a question about this process of going from local to live though.

    I currently have a page online and working. I wantred to change it, so that was the reason I developed the new site on localhost. What I would like to know is if I should do something else before using this tutorial to put the local site live.
    Should I delete all data from the current page and then upload the local one? or what should I do.

    Thank you so much!

    • WPBeginner Support says

      If you are wanting to replace the current page, then it would be best to create a backup of the live site and then remove it to replace it with the version you are moving from your local installation.


  19. Ola Philips says

    Thanks for the tutorial, it has helped me a lot , please, after uploading my WordPress file, how do I get to my WordPress dashboard

  20. Sandie says

    Thanks for the tutorial. I followed the manual method and the only issue I had was an internal server error on anything but the front page.

    This was because on my development server my WordPress was installed at localhost/SAF, so the Rewrite Base and Rewrite Rule in the .htaccess file had to be updated to remove the SAF/. Might be worth updating the instructions to check for this, based on the comments it looks like a couple of others have had a similar issue.

  21. liam Donoghue says

    I don’t know if i’ve missed something here but i don’t understand the jump in step 3. You’ve said

    ‘Now you need to upload the archive and installer files from your local site to your hosting account.

    First, connect to your live site using an FTP client. Once connected, make sure that the root directory of your website is completely empty.’

    How can I connect an FTP to a live site if it isn’t live yet. I have a c panel which has a database made for my site, a copy of my localhost site on my desktop and a filezilla. Am I connecting filezilla to my hosting account? how do I do that? Some clarity on this would be appreciated :)

    • WPBeginner Support says

      Apologies for the confusion, the methods involved in connecting to your host with FTP can vary depending on the host. If you reach out to your hosting provider they should be able to let you know how to connect filezilla to your root folder


  22. Alex Legard says

    I’m trying to host the WordPress them that I made from scratch. I followed the instructions in this article except for step 7. Now I’m getting the “Stylesheet is missing” error. Help?

    • WPBeginner Support says

      For a custom theme, you would want to make sure you have a style.css file in the main folder of the theme and ensure that your computer didn’t rename it style.css.txt


  23. Joseph says

    I have a very important question as I never see any specific information about JavaScript in using these methods to upload your site to wordpress. My question is this; if I have javascript files and CSS included in my website files for displaying numbers and text, will they still function properly after I upload my website using this method? I need my javascript files. Please help as this is important to me. I want to use this method after I finish my website but Idk if the javascript files included will work as they should. Thanks in advance.

    • WPBeginner Support says

      Unless the file was hardcoded to use a file on your local computer then Javascript files should still work the same as some themes use Javascript files and they don’t have any issues.


  24. Margie says

    Great tutorial – thank you so much! Got my site up and running (using your manual method) without just a couple small hiccups that were easily solved with a Google search. Overall, I’m very pleased!

    • WPBeginner Support says

      Did you follow the steps in step 7? You could also recreate the menu links if you wanted.


  25. Tenasu mensah says

    what should i do if the database you are importing is larger than the required amount given?

  26. Johannes says

    Thanks a lot for the instructiuons. I had the internal error problem. Luckily I had the htacces file from a previous installation on the server and could just replace the other one.

    Everything running perfectly now.

  27. Gimhana Jayasekara says

    Awesome work. You helped me so much. I used 2nd method because I prefer manual handling. Works fine.

  28. Milutin says

    Thanks a lot for your help. ALTHOUGH…

    After a lot of effort, I understood the chaos of 2 domains on the job I’ve been given, so now website finally is live. But I cannot complete your tutorial because whatever I click or whatever else I type as URL besides just domain, it gives me error 500… I’ve tried all possible solutions mentioned in your other article, but nothing worked. Would you know the reason of the problem?

    It’s my school’s website. It’s in Serbian, but click on any link and you will see the error in English.

    Thank you again for this tutorial, it helped me A LOT.

  29. Anne-Laure says

    Hi I’m having an issue when I try running installer.php I get a 403 Error message. Any ideas what is happenning?

  30. Eddie says

    Everything was going smoothly. I was on step 4and uploaded my site. It gave me an “Error Establishing A Database Connection”. I realised my dtabase name was slightly diifferent from the one on my site. I went into phpmyadmin on WAMP and created a new database with the correct name and copied the old database data on the new database. Now the wordpress site on my PC says ” We were able to connect to the database server (which means your username and password is okay) but not able to select the xxxxxx database.
    I restarted my PC and my WP site is blank. Is there anyway I can salvage this? I still have access to WAMP.

    • WPBeginner Support says

      It could likely be due to how the content was copied, you would want to edit your wp-config file to point to the correct database for your content to be on your site again.


  31. Donald says

    Things were going smoothly moving form local host to my domain until Step 1 of 4: Deployment
    You are migrating site from the PHP 7.2.11 to the PHP 5.6.38.
    If this servers PHP version is different to the PHP version of your package was created it might cause problems with proper functioning of your website and/or plugins and themes.
    Note: This warning will still show if you choose option #2 and open_basedir is enabled, but should allow the installer to run properly. Please work with your hosting provider or server administrator to set this up correctly.
    Wrote to host but wonder if I can ignore this and just go?

    • WPBeginner Support says

      We would recommend reaching out to your hosting provider as some of your plugins/themes may require the newer php and your host should have the ability to help you update the PHP being used for the server.


Leave A Reply

Thanks for choosing to leave a comment. Please keep in mind that all comments are moderated according to our comment policy, and your email address will NOT be published. Please Do NOT use keywords in the name field. Let's have a personal and meaningful conversation.