Beginner's Guide for WordPress / Start your WordPress Blog in minutes

How to Move a Live WordPress Site to Local Server

Do you want to move a live WordPress website to a local server on your computer?

Installing WordPress on your computer (local server) allows you to easily learn WordPress and test things. When you move a live WordPress site to a local server, it enables you to experiment with the same data as your live site.

In this article, we’ll show you how to easily move a live WordPress site to a local server without breaking anything.

Moving a live WordPress site to a local server on your computer

Why and Who Would Want to Move a live WordPress Site to Local Server?

If you have been running WordPress website for sometime, you may want to try out new themes or a plugin. However, doing this on a live website may result in poor user experience for your users.

To avoid this, many users create a copy of their WordPress website on a local server to test new themes, plugins, or do development testing.

This allows you to set up your theme with all your content and test all the features without worrying about breaking your site. Many users copy their site to a local server to practice their WordPress and coding skills with actual site data.

Even though you can do all the testing with dummy content in WordPress, real site data gives you a better visual representation of how these changes will appear on your live site.

Preparing to Move a Local Site to Local Server

First, you need to make sure that you always back up your WordPress website. There are several great WordPress backup plugins that you can use.

Secondly, you need to install a local server environment on your computer. You can use WAMP for Windows, and MAMP for Mac. Once you have set up the environment, you need to create a new database using phpMyAdmin.

Simply visit the following URL in your browser to launch phpMyAdmin.

http://localhost/phpmyadmin/
http://localhost:8080/phpmyadmin/

From here you need to click on ‘Databases’ tab and create a new database. You’ll need this database to later to unpack your live site data.

Create database

You are now ready to move your live WordPress site to local server.

Method 1. Moving Live WordPress Site to Local Server using Plugin

This method is easier and recommended for all users.

First thing you need to do is install and activate the Duplicator plugin. For more details, see our step by step guide on how to install a WordPress plugin.

Duplicator allows you to easily create a duplicate package of your entire website. It can be used to move your WordPress site to a new location, and can also be used as a backup plugin.

Upon activation, the plugin adds a new “Duplicator” menu item in your WordPress admin sidebar. Clicking on it will take you to the packages screen of the plugin.

Creating new package in Duplicator

To create a new package, you need to click on the create new package button. Duplicator will start the package wizard, and you need to click on the Next button to continue.

Duplicator package set up

The plugin will then san your website and run some background checks. It will then show you a summary of those checks. If everything looks good, then click on the ‘Build’ button to continue.

Duplicator scan

Duplicator will now create your website package.

Once finished, you’ll see an archive zip file that contains all your website data, and an installer file. You need to download both files to your computer.

Download package files

You are now ready to unpack and install these files on your local server.

First, you need to create a new folder in your local server’s root folder. This is the folder where your local server stores all websites.

For instance, if you are using MAMP, then it will be /Applications/MAMP/htdocs/ folder. Alternatively if you are using WAMP, then it would be C:\wamp\www\ folder.

Inside this folder, you can make new folders for each new website that you want to import or create on your local server.

Creating a website folder on your local server

After that, you need to open the folder you created for your local website and then copy and paste both the archive zip file and the installer script you downloaded earlier.

Copy and paste Duplicator package and installer files

To run the installation, you need to open the installer.php script in your web browser.

For example if you pasted both files in /mylocalsite/ folder, then you will access them in your browser by visiting http://localhost/mylocalsite/installer.php.

You will now see the Duplicator installation script like this:

Duplicator installer screen

Click on the Next button to continue.

Duplicator will now unpack the archive zip file and will ask you to enter your local site’s database information. This is the database you created earlier.

Duplicator database information

The server name is almost always localhost and username is root. In most cases, your local server installation does not have a password set for root, so you can leave that blank.

At the bottom of the page, you’ll see a ‘Test Database’ button that you can use to make sure your database information is correct.

Test database connection

If everything looks good, then click on the ‘Next’ button to continue.

Duplicator will now import your WordPress database. After that, it will ask you to double-check the new website information that it has automatically detected.

Check local site information

Click on the Next button to continue.

Duplicator will now finish the setup and will show you a button to log into your local site. You’ll use the same WordPress user name and password that you use on your live site.

Import finished

That’s all, you have successfully moved your live site to local server.

Method 2. Manually Move a Live WordPress Site to Local Server

In case the plugin does not work for you, then you can always manually move your live site to a local server. The first thing you would need is to back up your website manually from your WordPress hosting account.

Step 1. Export your live site’s WordPress database

To export your live site’s WordPress database, you need to log into your cPanel dashboard and click on phpMyAdmin.

Note: We’re showing screenshots from Bluehost dashboard.

cPanel phpMyAdmin

Inside phpMyAdmin, you need to select the database you want to export and then click on the export tab on the top.

Export WordPress database manually

phpMyAdmin will now ask you to choose either quick or custom export method. We recommend using custom method and choosing zip as the compression method.

Sometimes WordPress plugins can create their own tables inside your WordPress database. If you are not using that plugin anymore, then the custom method allows you to exclude those tables.

Leave rest of the options as they are and click on the Go button to download your database backup in zip format.

Select export options

PhpMyAdmin will now download your database file. For more details, see our tutorial on how to backup your WordPress database manually.

Step 2. Download all your WordPress files

The next step is to download your WordPress files. To do that you need to connect to your WordPress site using an FTP client.

Once connected, select all your WordPress files and download them to your computer.

Download all your WordPress files

Step 3. Import your WordPress files and database to local server

After downloading your WordPress files, you need to create a folder on your local server where you want to import the local site.

If you are using WAMP then you would want to create a folder inside C:\wamp\www\ folder for your local site. MAMP users would need to create a folder in /Applications/MAMP/htdocs/ folder.

After that, simply copy and paste your WordPress files in the new folder.

Next, you need to import your WordPress database. Simply open the phpMyAdmin on your local server by visiting the following URL:

http://localhost/phpmyadmin/

Since you have already created the database earlier, you now need to select it and then click on the Import tab at the top.

Import WordPress database

Click on the ‘Choose File’ button to select and upload the database export file you downloaded in the first step. After that, click on the ‘Go’ button at the bottom of the page.

PhpMyAdmin will now unzip and import your WordPress database.

Now that your database is all set up, you need to update the URLs inside your WordPress database referencing to your live site.

You can do this by running an SQL query in phpMyAdmin. Make sure you have selected your local site’s database and then click on SQL.

Updating URLs in database

In phpMyAdmin’s SQL screen copy and paste this code, make sure that you replace example.com with your live site’s URL and http://localhost/mylocalsite with the local server URL of your site.

UPDATE wp_options SET option_value = replace(option_value, 'https://www.example.com', 'http://localhost/mylocalsite') WHERE option_name = 'home' OR option_name = 'siteurl';
 
UPDATE wp_posts SET post_content = replace(post_content, 'https://www.example.com', 'http://localhost/mylocalsite');
 
UPDATE wp_postmeta SET meta_value = replace(meta_value,'https://www.example.com','http://localhost/mylocalsite');

This query will replace refences to your live site’s URL from database and replace it with the localhost URL.

Step 4. Update wp-config.php file

The final step is to update your local site’s wp-config.php file. This file contains WordPress settings including how to connect to your WordPress database.

Simply go to the folder where you installed WordPress on your local server and then open wp-config.php file in a text editor like Notepad.

Replace the database name with the one you created in phpMyAdmin on your localhost.

After that, replace the database username with your local MySQL username, usually it is root. If you have set a password for the MySQL user root on your localhost, then enter that password. Otherwise, leave it empty and save your changes.

/** 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');

You can now visit your local site in a browser window by entering the URL like this:

http://localhost/mylocalsite/

Replace ‘mylocalsite’ with the name of the folder where you copied your WordPress files.

That’s all, your live WordPress site is now copied to your local server.

We hope this article helped you learn how to easily move a live WordPress site to local server. You may also want to see our guide on how to easily make a staging site for WordPress for testing, or how to move a WordPress site from local server to live site.

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.

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

257 CommentsLeave a Reply

  1. 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. So i followed the instructions to manually move the site to the letter using wampserver but when i navigate to the file path localhost/mysite and hit enter, the site does not open but instead only a file downloads which is called. ” download” which is a php file:

    /**
    * Front to the WordPress application. This file doesn’t do anything, but loads
    * wp-blog-header.php which does and tells WordPress to load the theme.
    *
    * @package WordPress
    */

    /**
    * Tells WordPress to load the WordPress theme and output it.

    what could be the problem ?

    • Please ensure you go through the installer.php when first installing the site and ensure WAMP is running as common possible reasons for that issue.

      Admin

  3. Thanks for the tutorial, its more clear than a lot of the ones I found online, I have a problem though, migration all fine, the site is running but I cannot login with the usernames I had on the live site, cannot access the admin dashboard to create new usernames either. Help please?

  4. Thank you for this tutorial, you run a very helpful website. It took me a long time to run through this, as there are alot of steps and I find a lot of ways to go wrong! I ended up using the file names that you used in your examples, to reduce complication. And success! Much appreciated.

  5. Thanks for the great tutorial! However, it only works for my home page. When I try to open a subpage, I see this error message: “The requested URL was not found on this server.” Can you help me here?

    Best regards,
    Lina

    • It would depend on the method you used but we would recommend ensuring you used the SQL update as that should fix your URLs in your database. You may also want to ensure the links you are using in your menu are not custom URLs as that can be a common reason for that issue as well.

      Admin

  6. is the above code is right ?
    I copy and paste in SQL but every time this massage comes,
    0 rows affected. (Query took 0.0046 seconds.)

    • The code should work but especially if you’ve already run it once, there will be no change in your site and it will come back with 0 affected.

      Admin

  7. Hi, thanks for your fab instructions. I used the Duplicator method and everything works…except when viewing the site my images/thumbnails don’t show up (broken image), until I click on them. Then they show in their own window, as expected.
    They do show properly in the wp dashboard editor.
    Cheers, Deb

  8. I have created a backup of my website manually and setup on local machine and run the above quires, but my website is redirecting to online version.

    • It seems like you may have not updated the URL, you can do so using step 3 of the manual method of this article. :)

      Admin

  9. Thank you so much for this clear and useful article. I was able to follow it and migrate my WP site in less than 20 minutes – and I’m no expert. You’ve saved me a lot of pain – thank you.

  10. Doesn’t work for me. I create the package, but it installs the basic WordPress files. So when I navigate to the folder it asks me to setup wordpress

    • For the most common reason, you would want to ensure you are properly connected to the database, if you are not then it would show the option for creating a new site instead of showing the correct site.

      Admin

  11. Nooo, its not working for me. pefrectly written tutorial and easy to follow (apart from it says hhttpps in the 3rd query)

    i get this in my browser:

    This site can’t be reachedlocalhost refused to connect.
    Try:

    Checking the connection
    Checking the proxy and the firewall
    ERR_CONNECTION_REFUSED

    • Thanks for pointing out that typo, it should be fixed. For that error, you would want to ensure you updated your URL in step 3 correctly for the most common reason for that issue.

      Admin

  12. Thanks for your tutorial.

    The front page is partially working but every other page is not working at all. Furthermore, it seems that front page is loading All the pages. What could be wrong?

  13. Hi, Thank you for this super useful article.

    I don’t know why mine doesn’t just work, I have done the exact same thing and gotten all the correct feedback. Whenever I try to open the home page localhost/site/ I get a page that doesn’t exist with the headers and footers and the rest of the pages still point to the live site.

    • It sounds like you may have not set the URLs correctly. You would likely want to go to method 2 and try the SQL changes to update your URLs.

      Admin

  14. For those who are getting “wp_options doesn’t exist” error, you may have changed your table_prefix before. Just open the wp_config.php file and check $table_prefix = ‘wp_’

    if the value isn’t “wp_” you get that error so when pasting the code edit it accordingly, for instance:
    UPDATE xx_options SET option_value………..

  15. When I copy and paste the code you provided to phpMyAdmin’s SQL screen, I am getting message: #1146 – Table ‘xyz.wp_options’ doesn’t exist.

    How can this be fixed?

    • You would want to ensure you have the correct database selected for the most common reason for that issue.

      Admin

  16. I used the Duplicator plugin to set up a copy of a website for a non-profit that I inherited. After reloading it so that all plugins are disabled I finally came to the conclusion that my site is attempting to use https:// to log in to the dashboard. To further confuse me, an empty site that I created on localhost does NOT use https:// for log in to the dashboard. I understand the value of https:// on the live site, but it appears there may be a way to disable it on localhost?

  17. Is there a plugin that allows you to download a zip file from the live site then upload into a fresh install of wordpress on the local host in a simpler way?

    • For what it sounds like you’re wanting, the closest would be method 2 of this guide that you would want to take a look at.

      Admin

  18. I successfully uploaded to localhost but when i try to use localhost/mysite_location/wp-admin, it redirects to the live site. Not the one on the localhost.
    Need help :(

  19. Great tutorial. It’s straight forward. Unfortunately I still get redirected to the dashboard as soon as I try to enter my URL. I followed all the steps but something must be missing. Does anyone has an idea what the problem might be? Cheers

    • You may want to check your options table in your database to be sure that you didn’t set the site’s url to your wp-admin area

      Admin

  20. Hi, thanks for the tutorial, it’s was super helpful!!
    However, after following all your steps, I have problems “establishing secure connection” (I guess because of the SSL) and thus it doesn’t work . I even tried and changed a line ‘DB_HOST’ to ‘localhost/localhost:8888’ in the wp-config.php that wasn’t mentioned in the video but didn’t help.

    Also, when changing links I tried many variations nothing worked. Has someone faced a similar issue and found a solutions to it?

    • Did you attempt to clear all of your caching after updating the URLs and is there the option to continue anyway under advanced on that error page?

      Admin

  21. First of all thank you for theses clear explanations that I followed to the letter. The result is that i can access to to my site homepage locally, but links in this homepage do not seem to work because when I click on a link, for example :
    localhost.mysite.com/subject.html
    it is the following page that is displayed fir all links :
    localhost/dashboard

    Can you help me to resolve this problem
    Thanks in advance

  22. Great Working, am facing a new problem which is i can access the only home page of my word press side. how can i able to access other pages??

  23. Hi there,

    this is really easy to follow and helpful so thank you for that.

    I do have a very straightforward question though.

    When updating the URLs, you say to replace http:// example.com with your live site, but what if my live site uses https?

    • If you’re moving your site to a local server we recommend http to avoid local installation issues with not having an SSL, you would change to https if you’re moving the content back to a live site that is using SSL.

      Admin

  24. Thanks. You wrote this article over 5 years ago, and it’s still good. I managed to set everything up nicely without too much trouble by following your manual instructions. Thanks in particular for the SQL queries.
    Philip

  25. After finishing the installation I click Admin Login button. the browser open new window to the installation of wordpress again? and the login page is not there

    I checked the folders. all files are copied.

  26. Somebody find a fix for the localhost site copy (from live https) administration wanting to use https ?

  27. I found your instructions for the manual move of my site (from live server to localhost) worked pretty well. I had to do the permalinks thing – just click on ‘save’ without changing anything – to make links work properly. But otherwise it’s mostly good.

    However, I’ve encountered a problem when trying to use new themes. If I add a new theme, then sure the theme installs ok and shows up on the theme page. However, if I try to preview or activate the new theme I just get a totally blank page – even the admin goes blank. The only recourse is to use the browser back button to get back to the admin view where I can delete the theme.

    Adding new themes and trying to use them just makes the whole thing fall over!

    Any ideas?

    (p.s. I’m using a very old version of WordPress – 2.9.2…!! Which is the reason for wanting to play with it on localhost and work out the best way to upgrade.)

  28. Tutorial worked pretty good but I had “internal Server Error”. I was downloading an entire network installation. I recopied the wp-config.php file because it had become compressed, all spacing removed. Then replaced the .htaccess with a fresh network version and that “RewriteBase /sitename/” was to the folder of the installation, instead of “RewriteBase /”

  29. The instructions are clear and straightfoward but unfortunately I am having a total nightmare getting my site to work on the local server. After much trial and I’ve managed to get connect to the database and get some of the site content displayed but links aren’t working (they’re not found, apparently). I’m using MAMP Pro for Windows. Maybe I’ll try XAMMP – or using a Mac – instead. I think alot of the problem is to do with permissions but don’t really know where to start there seem to be so many fixes needed!

  30. I solve my problem. If you manually moved wordpress to localhost, and you install w3 total cache in your wordpress, you have to clear the browser cache after change database and wp-config. Or just open your localhost site with different browser.

  31. I have changed wp-config and all database url to localhost, but localhost still redirect me to live site. Why? I cannot install any plugin like duplicator anymore because the site already deleted

    • Hi Andy

      Have u tried changing the settings from wp dashboard?

      Settings-> General->WordPress Address (URL),Site Address (URL)

      Even if it shows the localhost address just save it and check. Hope it helps.

  32. Hi wpbeginner,

    Thank you for the tutorial, it helps me a lot. I tried the manual install and but in the end it keeps redirecting me into wordpress installation page. Pls help me, i think i’m almost done. Im using xampp.

    Thank you

  33. Hi,
    Im having issues while moving my site, it says LOCALHOST REFUSED TO CONNECT.
    But my other local sites are okay.
    Im moving it to local because something gone terribly wrong and my page woun’t load on the server’s.

    Please any suggestion or advise is appriciated

    • In MAMP Preferences set your Ports to – Apache 80, Nginx 443 and MySQL 3306 and see if that fixes it

  34. Thanks for this article, I found it very useful but would like to add to it if I may.

    I used the manual method successfully with one exception, I could not navigate to any of the pages or posts from my sites menu. I would get a page not found error. I tried everything here, saving the premalinks, but nothing worked. I finally found a post elsewhere that gave me the solution. I had to modify a line in Apache’s httpd.conf file. Open the file and search for ‘AllowOverride’. If it looks like this: ‘AllowOverride None’, change it to ‘AllowOverride All’. I could not get to every page and post and see all the content!. FYI, there are several ‘AllowOverride’ options but the one you are looking for resides on a line by itself. I know this is a WordPress and not an Apache config forum but others may be experiencing the same issue. Hope this helps.

  35. Hello Guys,

    I’m running into a serious problem. When I click on my local site forler with servers ON on MAMP, it redirects to live site :-( I’ve done everything this tutorial says, do you know where is the problem ?

    Thanks for your help

  36. Unfortuntely when I follow this guide, all the links in my local site redirect to the live site.
    Any suggestions?

  37. Hi,
    after following the instructions for the manual migration I end up with a blank screen when I try to access my website on the localhost. Any ideas?

  38. After running the SQL Query to replace links I receive a 1064 error – it seems there is a problem with the code syntax. I’m guessing it’s the (:) in my localhost url : ‘http://localhost:888/localwebsite’ – any ideas how I can work around this? I am using MAMP to run the local server.

  39. Hi there!
    I’ve had a successful migration to local site except for my Media Library, every picture is there (lots of files), url’s are correct, but when they don’t show up in the actual blog. When I go to media library it just shows the grid of the pics – all blank, but in description, url etc everything is correct.

    Any idea what to do next?

    • Try going to your wordpress dashboard, click on the settings menu near the bottom of the sidebar on the left. Then click on the reading menu in the settings submenu, scroll down to the site visibility options and select the ‘allow search engines to index’ option and click save changes at the bottom of the page. See if that works, if not you may have to go to your terminal and manually pull media files from your old site recursively – I had to go this route and can walk you through it if you have any questions. Hope this helps

  40. Hi there, Thanks for the post, it’s a huge success for me.
    So far, I’ve been able to get to the wp-login page.
    and I’m sorry if this is a very silly question. but I’m really newbie with wp

    my problem is I can’t login :$

    I’ve tried the same logins as the live details = don’t work
    as I haven’t set up the dashboard and it’s a local. no email will work.

    what should I do?
    btw, it’s on a mac.

    Many thanks in advanced. Help is appreciated!!

  41. Hi again,
    My sincere apologies! Posted a comment yesterday (July 24) re difficulty running the Duplicator program from my browser. Went back to check today and realised that I had made a mistake with the placement of the “test-site” folder which contained the installer.php and the zip archive database.

    Once I truly placed this folder in the htdocs folder then everything worked fine and I was able to install the website data locally as per your instructions.

    Thank you again for all your help!

  42. Hi — thank you again for another great article! All very helpful!

    I am at the step of opening the Duplicator installer on my local computer. However when I put “http://localhost/test-site/installer.php” into my browser I get a “404 error message” saying “object not found”.

    Interestingly if I use “localhost” alone or “localhost/phpmyadmin” they both work. I have moved the “test-site” folder to the “htdocs” folder but still does not work.

    Any suggestions??
    Thank you

  43. Thanks for this guide, but what if you’re migrating from a live site with an SSL cert down to a dev site without SSL (https to http?)

    I got the front-end working fine, however, HTTPS is still added to my wp-login URL, preventing me from accessing the login page into the admin.

    Any additional steps required to eliminating https on a local/dev site’s WP login page?

    • I am having a similar issue. I migrated a live site to MAMP using WP Migrate DB plug in and FTP. I get the following error – due to the live sites SSL Certificate. It has something to do with the database prefixes not matching. But – I cannot change the prefix on the live site, I called Go Daddy to see if I edited the live site prefix to match my local install database prefix if it would break the site, they said no guarantees, I tried it and it broke the site.
      error message I get when entering localhost:8888 url.

      An error occurred during a connection to localhost:8888. The client has encountered bad data from the server. Error code: SSL_ERROR_BAD_SERVER
      The page you are trying to view cannot be shown because the authenticity of the received data could not be verified.
      Please contact the website owners to inform them of this problem.

      Thank you in advance for any help!

    • Well, i used SSL certificate and that is what I did:
      At the step where you have to update the URLs inside your WordPress database referencing to your live site, you write the SQL query 4 times to change every URL that may exist.
      First time write code like above “http://www.example.com”, then “http://example.com”, after that “https://www.example.com” and finally “https://example.com”.
      Make sure: 1) that you write all four times the URL http://localhost/test-site which will replace those URLs
      2) change wp_options, wp_posts and wp_postmeta to your right ones (mine for example were cagwp_options etc.)

      And a last reminder: Finally (if you’re moving on localhost), on the last step you have also to change the host name to localhost (wp_config.php file)

      /** MySQL hostname */
      define(‘DB_HOST’, ‘localhost’);

  44. I am tried using this article but I am not sure at which point of time i am supposed to install wordpress. Can anyone help me here?

    Thanks

    • you don’t have to reinstall wordpress again. all files from the source wp installation is already backed up.

  45. I have used these instruction before and they worked fine, however i now have an updated version of mamp and wordpress and i continually get errors. betwen playing around i get the white blank screen or the index.php file. as text.

    Both similar problems to users below.

    it might be time to update this.

    I gave up on moving my site to local and decided to just have a dev url too however, when i run the sql query above i always end up with a token missmatch, despite making all the necessary changes.

  46. Thank’S a lot for your work.

    But it doesn’t work. If I run local installer.php I see blank screen.

    Best regards
    Andi

  47. hey

    I did everything as it is described and when I get to the last phase and put the url: localhost/mysite it automatically downloads a file that has this information:

    <?php
    /**
    * Front to the WordPress application. This file doesn't do anything, but loads
    * wp-blog-header.php which does and tells WordPress to load the theme.
    *
    * @package WordPress
    */

    /**
    * Tells WordPress to load the WordPress theme and output it.
    *
    * @var bool
    */
    define('WP_USE_THEMES', true);

    /** Loads the WordPress Environment and Template */
    require( dirname( __FILE__ ) . '/wp-blog-header.php' );

    is it something wrong that i did in the process?

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.