One way to speed up your website development is to build your website locally on your own computer using a software like WAMP (for Windows) or MAMP (for Mac).
Once you’re finished perfecting your website, the next step is to move it from your computer to a live site and share your creation with the world. In this article, we will show you how to easily move WordPress from local server to a live site.
We will cover two different methods to move WordPress from local server to your live website (step by step).
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 local server to a live site.
You can choose the method that best suits you:
- Method 1. Move WordPress from local server to live site using a plugin
- Method 2. Manually move WordPress from local server to live site
Before You Begin
In order for you to migrate WordPress from localhost to live server, you need to have a few things in place.
First, we’re assuming that you have a WordPress site running on 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. We have a list of the best WordPress hosting companies that you can choose from.
To speed it up, you can use Bluehost. They’re an official WordPress recommended hosting provider, and they are offering our users an exclusive 60% off discount + a free domain.
If you need help setting up your website, follow our step by step guide on how to make a website.
Finally, you will need to have a FTP program and know how to use FTP, so you can upload your content to the live site.
Ready? Let’s begin migrating your WordPress site.
Method 1. Transfer WordPress from Local Server to Live Site Using a Migration Plugin
This method is easier and recommended for beginners. We’ll be using a WordPress migration plugin to move WordPress from localhost to a live site.
Step 1. Install and Setup Duplicator Plugin
First, thing you need to do is 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.
Upon activation, you need to go to Duplicator » Packages page and click on the ‘Create New’ button.
After that, click on the next button to continue.
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.
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 the Archive package. You need to click on the ‘One click download’ link to download both files to your computer.
So what are these files?
Well, the archive file is a copy of your complete WordPress website. 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 migration by unpacking the archive file.
Step 2. Create a Database for Your Live Site
Before you can run the installer or upload the WordPress website from localhost to your hosting server, you will need to create a MySQL database for your 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. Scroll down to the Databases section and then click on the MySQL Databases icon.
On the next screen, you’ll see a field to create a new database. Simply provide a name for your database and click on the ‘Create Database’ button.
cPanel will now create a new database for you. After that, you need to scroll down to the MySQL Users section.
Next, provide a username and password for your new user and click on the ‘Create a user’ button.
The new user you just created, still does not have permission to work on the database. Let’s change that.
Scroll down to the ‘Add User to Database’ section. Simply select the database user you created from the dropdown menu next to the ‘User’ field, then select the database, and click on the add button.
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 Site
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, 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 archive and installer files from Duplicator to your empty root directory.
Step 4. Runing The Migration Script
After you have uploaded the migration files, you need to visit the following URL in your browser:
http://example.com/installer.php
Don’t forget to replace example.com with your own domain name.
This will launch the Duplicator migration wizard.
The installer will automatically scan for the archive file and run a validation test. You need to check the terms & conditions checkbox and continue by clicking on the Next button.
On the next screen, it will ask you to enter your WordPress database information.
Your host will likely be localhost. After that, you will enter the details of the database you created in the earlier step.
Click on the next button to continue.
Duplicator will now import your WordPress database backup from the archive into your new database.
Next, it will ask you to update site URL or Path. You shouldn’t have to change anything since it automatically detects the URL of your live website, and its path.
Click on the next button to continue.
Duplicator will now finish the migration and will show you a success screen. You can now click on the ‘Admin Login’ button to enter the WordPress admin area of your live site.
Once you login to your live site, Duplicator will automatically clean up the installation files.
That’s all, you have successfully moved WordPress from local server to your live site.
Method 2. Manually Transfer WordPress from Local Server to Live Site
In this method, we will show you how to manually move WordPress from local server to your live site. It will come in handy if the first method doesn’t work or 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’ll 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.
In the Export Method option, you can choose “Quick” or “Custom”. Custom will provide you with more options to export your database.
We recommend choosing Quick, and then click the Go button to download your database.
Step 2: Upload WordPress Files to Live Site
Now we’ll 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’re 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 the files in your public_html directory.
Now select your local WordPress files and upload them to your live server.
Step 3: Create MySQL Database on 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’ll show you how to create a database using cPanel.
First, you need to log in to your cPanel dashboard and click on the MySQL Databases icon which can be found in the databases section.
On the next screen, create a database by entering a name for your database and clicking the Create Database button.
After creating your database, scroll down to the 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 by making sure every box is checked, and then click the Make Changes button.
Step 4: Import WordPress Database on 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.
This will take you to phpMyAdmin where you want to click on the database you created in Step 3. 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 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.
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 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:
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.
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: https://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: Setup Your Live Site
Now that we have imported the database and all of our content should be uploaded, it’s 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.
You will need to provide the database name, user and password you created earlier in Step 3.
Next, save the wp-config.php file and upload it back to your server.
You can now visit your website, and it should be live now.
Next, you need to login to your WordPress admin panel and go to Settings » General. Without changing anything, scroll to the bottom and click the Save Changes button.
This will ensure that the site URL is corrected anywhere else that it needs to be.
After that go to Settings » Permalink and click Save Changes to ensure that all post links are working fine.
Step 7: Fix 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’ll face broken links and missing images.
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.
That’s all, you have successfully migrated WordPress from localserver to a live site!
Hopefully now your live website is up and running smoothly. Be sure to check out your website to make sure that everything is working as expected. If you notice any errors, you can check out our guide to common WordPress errors for help troubleshooting.
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.
In buying a domain and web host to move my wp local site to a live serve, do I need to purchase a WordPress hosting or an ordinary web hosting???
I’m confused because some web hosting services have WordPress hosting and web hosting as two different options.
It would depend on the hosting provider, some you can place it on either and one is optimized for WordPress while other hosts only allow WordPress on their WordPress hosting.
Step 4. Runing The Migration Script
After you have uploaded the migration files, you need to visit the following URL in your browser:
example.com/installer.php
Don’t forget to replace example.com with your own domain name.
I do this, but the Duplicator Migration Wizard never starts. Any ideas?
You would want to ensure you placed the files in the correct folder on your hosting for the most common reason for that issue.
Hi! i want to move my local wordpress site to another local wordpress site using xampp so method will work for me or not?
You should be able to use this method for transferring to a different localhost as well.
Hi dear team,
Thanks for this helpful article.
Please, if my domain has already an existing website and i wanted to update with my new website developed in localhost, how can i update my new website ?
Thanks for all
You would want to create a backup of the current live site, remove the live site, then follow the instructions in this guide.
Thanks for your reply
I followed your steps for the manual process. Everything worked until i tried to update the posts in the PHPmyadmin. The urls doesn’t seem to update when i run the query.
You would want to ensure you replace the localhost/test and the yourlivesite.com with the correct addresses.
I am setting up my site using manual method (method #2) and have followed till step no. 4 without any error.
However, after added my DB login details in wp-config.php file, now the site (WP set up page) is not appearing and the site keeps loading with a blank screen eternally.
I don’t know if something is missing or went wrong. I see no error message, just a blank, loading screen.
You may want to go through our recommendations in our article below:
https://www.wpbeginner.com/wp-tutorials/how-to-fix-the-wordpress-white-screen-of-death/
The most common reasons would be if you didn’t add the correct database name.
Thank you!!
It worked like a charm! It was the incorrect settings in wp-config file.
You are a champ!
Thanks again!
Glad we could help
Thank you, thank you, thank you!! I am a novice, but your tutorials gave me the confidence to build a WP site on Localhost and then upload it to my new host. All went smoothly. I really appreciate all that you provide.
Glad our guides could help you
I used the manual method and have issues.
Homepage of the site shows on the live server however other pages when I click redirect me to localhost pages and I cannot seem to find out to solve this.
The most common reason for that specific issue would be if you skipped the Velvet Blues step in this guide to update your URLs
Can I change my test site to live site in-place ? I mean I need to convert test site into live site on the same localhost.
If you mean on the same hosting provider, then that would be more of a staging site in which case you would want to take a look at our guide below:
https://www.wpbeginner.com/wp-tutorials/how-to-create-staging-environment-for-a-wordpress-site/
Pls what do you mean by
“To fix this, connect to your website using an FTP client and edit wp-config.php file?”
We link to it earlier in the article but we have a guide on how to use FTP:
https://www.wpbeginner.com/beginners-guide/how-to-use-ftp-to-upload-files-to-wordpress-for-beginners/
When I am editing the staging site, there would be orders happening on my live site. How do I make sure that when I upload my staging site into my live site that the new orders would also be captured?
Thanks
You would want to pause receiving orders during that update process to prevent issues
WOW, this is perfect! I could NOT migrate my site or get any of this to work before. Working with my hosting company didn’t help – they only gave me bits of information that didn’t make any sense to me. I followed your step-by-step instructions and my site is up and running! I can’t thank you enough!
Glad our guide was helpful
Where can I find my login info? I didn’t see the login details from the steps, now I cannot login in to my wordpress dashboard.
You would use the same login information from your local installation to log into your site.
Is there a way to migrate part of a development site and not the whole site?
I would like to migrate certain updated pages and content that is ready to go live without also migrating functionality or content that is still under development.
You could manually do what it sounds like you’re wanting to do by using the built-in exporter under Tools>Export and selecting the specific pages
If in the place of using an FTP, I decide to compress and upload to my cpanel then extract there, will it make any difference?
As long as your hosting provider allows you to do that it should be fine.
Hello,
I have tried to upload my wordpress site created on my localhost, and used Method 1. All went well until I got to the Duplicator portion – Step 2. There is no “port” field as shown on your screenshot, so I just enter “localhost”. When I click “test database” I get a fail warning to “verify host connection” which says “unable to connect user to host”. I tried some of the troubleshoot steps to resolve but none of these work. One of the troubleshoot points states “On some servers, the default name ‘localhost’ will not work. Be sure to contact your hosting provider”. Could this be the problem?
More than likely, you would want to reach out to the support for your hosting provider and they should be able to assist.
Is it possible to transfer a single post from local to live word press site?
You would go under Tools>Export and select the single post using the options available there
This post is a life saver!!!
Glad our guide was helpful
thank you guys!!
i followed the steps it’s working for me
your save my life
You’re welcome
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??
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.
Really Thanks:)…It’s a great tutorial and it’s very helpful to me..
You’re welcome
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?
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.
After moving my website to a live site, will I still be able to edit and make changes to it? Thanks!
Yes, you would be able to
Easy to follow guide. Even easier than some videos i have watched on youtube.
Glad you’ve found our content helpful
Great solution to my Problem.
Thanks
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.
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.
Thanks for the guide, it really helped!
You’re welcome
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.
We will be sure to work on improving clarity of this in the future, we linked to our guide on FTP at the start of our article, you can find the FTP guide below:
https://www.wpbeginner.com/beginners-guide/how-to-use-ftp-to-upload-files-to-wordpress-for-beginners/
Thank you, I missed it.
Method 1 worked fine afrter few refreshes in the step 2. Thanks
Glad our guide was able to help
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
You would want to check with your hosting provider that the file is located in the correct location in your files.
Wow… I can believe my eyes. It worked perfectly with the first option. God bless you.
Glad our guide was helpful
Thank you so much for this… Really helped me a lot.
You’re welcome, glad our guide was helpful
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!
You’re welcome, glad our guide could help with this process
The post is really helpful just like many other posts. Thank you
You’re welcome
Hi. I’ve successfully migrated from localhost to livesite! Yay! What now do I do with the localhost?
That would be a personal preference question whether you would like to keep it or remove it.
Hi! Using Method 1, all went well until Step 4 – the migration wizard doesn’t launch when I type in example.com/installer.php (I changed example.com 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?
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.
Thanks. I have done migration by 1st method.
Glad our guide could assist
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!
Thanks for sharing what worked for you
Thanks. The first Duplicator based method worked for AWS based AMI Linux server 2 which had external database connection as well.
Glad our recommendation worked for you
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.
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
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.
If you are using the manual method from this article you would overwrite the files currently on your hosting rather than deleting them.
Thank you so much for the instructions. The manual way was way simpler and faster than any plugin I tried.
Glad our guide could help
Thanks! Just followed and migrated my site using method 1. Thanks!
You’re welcome, glad our recommended method was able to assist
Thank you for that great tutorial! It was really help
You’re welcome, glad our guide was helpful
you forgot to include in method the wp-config.php file to edit database connection
As the database is being copied from your local environment it means you will not need to edit the wp-config normally
Thank you very much for this update. I really appreciate.
You’re welcome
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!
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.
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.
For that error, you would want to take a look at our guide here:
https://www.wpbeginner.com/wp-tutorials/how-to-increase-the-maximum-file-upload-size-in-wordpress/
The Mamp guys have now a publish to live site function in the pro version.
Thanks for sharing that information
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!
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.
Thank you very much for your answer!
By the way. I LOVE your page, it has been my go-to page to find reliable answers.
Glad we can be helpful
Thanks for the tutorial, it has helped me a lot , please, after uploading my WordPress file, how do I get to my WordPress dashboard
You would log into your site to be brought to the admin area. We have a guide for finding your login url here: https://www.wpbeginner.com/beginners-guide/how-to-find-your-wordpress-login-url/