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

How to Easily Create a Staging Site for WordPress (Step by Step)

When it comes to making updates or significant changes to your WordPress site, doing so directly can be risky. This is where a staging site comes in.

It is a perfect clone of your live website where you can safely test changes, troubleshoot issues, and refine updates before deploying them to your main site. Creating a staging site can save you from potential downtime, broken features, and other complications.

At WPBeginner, we use staging sites to test website updates before publishing them on our live sites.

In this step-by-step guide, we will show you how to easily create a staging environment for your WordPress site. We will cover several different methods and most of them only require a few clicks.

How to create a staging site for WordPress

What Is a Staging Site?

A staging site is a clone of your live website that is used for testing changes before making them live. Staging sites help you catch errors, so you don’t break your live website.

In the past, it used to be very difficult to set up a WordPress staging site, but now that has changed so even a non-technical person can do it.

A lot of users install WordPress locally on their Windows or Mac computers to test changes. Once they’re done with the updates, they simply upload those changes from localhost to the live server.

The biggest problem with this approach is what if something that worked on your localhost does not work on the live server?

Often the local sites and live WordPress hosting servers are not running in the same environment.

Since the staging site lives on your web hosting server, you can easily prevent all those errors because it runs the same server configuration as your live site.

With that said, let’s take a look at how to set up a staging site for WordPress.

How to Easily Create a WordPress Staging Site

There are multiple ways to create a staging site for WordPress. The easiest is using your hosting provider’s built-in staging site feature.

Some of the best WordPress hosting companies already offer 1-click staging websites. If your website is hosted with one of them, then you can easily create a staging site without any hassle.

If you do not have one of these popular hosting solutions, then we also have a solution to help you create a WordPress staging site using a plugin (and even manually).

For faster browsing, you can use the navigation below to jump to the section that’s most applicable to you:

Creating a Staging Site on Bluehost

Bluehost is one of the best WordPress hosting companies. They offer a quick 1-click staging site solution with all their plans.

First, you must head over to your Bluehost dashboard and visit the ‘My Sites’ section.

Next, switch to the ‘Plugins’ tab and toggle the switch next to the ‘Bluehost Plugin’ option.

Turn on Bluehost plugin

After that, head over to your WordPress site dashboard and visit the Bluehost » Staging page.

Now go ahead and click the ‘Create Staging Site’ button.

Click create staging site button

Bluehost will now prepare the staging environment for your website.

Once that’s done, it will display a Staging Site’ section where you must check the ‘Not currently editing’ box.

Click not currently editing button

A prompt will now open up on your screen asking you to switch to the staging site.

From here, click the ‘Switch’ button.

Click switch button

Once switched, you will see a button on the screen indicating that you are working on the staging website.

You can go ahead and work on your website without worrying about it affecting your live site.

Activate theme on staging site

Deploying Changes From Staging to Live Site on Bluehost

Once you are ready to push changes from staging to the live site, simply go to the Bluehost » Staging page from the WordPress admin sidebar.

From here, you’ll see the deployment options drop-down menu next to your staging website. You can deploy only the files, only the database, or deploy all changes.

If you’re not sure, then click on the ‘Deploy All Changes’ button to continue.

Choose the Deploy All Changes option from the Staging Site option

After that, click the ‘Deploy Site’ button next to the dropdown menu.

This will bring up a popup where you will be asked to confirm that you want to deploy the staging site to the production site. Click on the ‘Deploy’ button to continue.

Click the Deploy button in the prompt

Bluehost will now start deploying your staging site to the live site. Depending on the size of your website, this may take a while.

You can now switch back to your live website to see your changes in action by clicking on the Radio button under the Production site option.

Switch to the Production Site

Cloning Production Site to Staging

Now, as you switch back to the production website any changes you make there are not automatically synced to your staging website.

In the future, if you want to test more things on your staging website you’ll need to duplicate your site.

To do this, you must visit the Bluehost » Staging page and click on the ‘Clone to staging’ button.

Click Clone to staging button

Bluehost will then clone the latest changes to your live website to your staging website. After that, you can switch to the staging website for testing and development.

Creating a Staging Site on SiteGround

SiteGround is another top WordPress hosting company offering a 1-click staging feature with their GrowBig and GoGeek plans.

If your website is hosted with SiteGround, then this is how you would set up a staging website.

First, you need to log in to your SiteGround dashboard and switch to the Websites tab. From here you need to choose the Site Tools below your website.

SiteGround dashboard

On the next screen, you need to click on the WordPress » Staging menu from the left column.

From here, select your website and then provide a name for your staging copy.

SiteGround make a staging copy of your website

Click on the ‘Create’ button to continue and Siteground will create a staging copy of your website.

After that, you need to click on the ‘Go to protected URLs’ button so that you can password-protect your staging website and keep it private.

Siteground staging site created

On the next screen, Siteground will automatically fill in the URL and path for your staging website.

You have to enter the username and password that you want to use to protect your staging site.

Protect staging website

Click on the ‘Protect’ button to save your settings.

You can now go back to the WordPress » Staging page and click on the ‘Log in to Admin Panel’ button next to your staging website.

Login to your staging website

SiteGround will now open the WordPress admin area of your staging website. You can test your changes on this staging website.

Deploy Changes Back to Your Live Website

Once you have tried your changes on the staging website, you may want to merge them to your live website.

SiteGround makes this easy too.

Simply click on the WordPress » Staging menu from the left column. Then click on the three-dot menu next to your staging site under the ‘Manage Staging Copies’ section.

Deploy all changes from staging to live website

The menu will show you two deployment options. You can either choose the ‘Full Deploy’ or ‘Custom Deploy’ option.

The ‘Full Deploy’ option merges everything from the staging website to your live website. ‘Custom deploy’ allows you to select which files or data you want to merge.

If you are unsure, then choose the ‘Full Deploy’ option.

SiteGround will then copy the staging site to your live website.

Merging Live to Your Staging Website

Changes you make to your live website are not automatically copied to your staging website.

Each time you need to work on your staging website, repeat the process above to create a fresh staging website.

Creating a Staging Site on WP Engine

WP Engine is the best WordPress-managed hosting company in the world. Managed WordPress hosting is a concierge service for your WordPress site where the hosting provider takes care of updates, backups, security, and performance.

WP Engine offers a one-click staging solution with all their plans. If you are using WP Engine to host your website, then this is how you would set up a staging environment for your site.

First, you need to log in to your WP Engine dashboard. Next, go to the ‘Sites’ page and select your website by clicking on it.

WP Engine sites

This will bring you to your website dashboard.

Now, you need to click on the ‘Add Staging’ link from the left column or select it under your site name at the top.

Click to add staging environment in WP Engine

This will bring you to the ‘Add Environment’ screen.

You’ll be asked to choose how you wish to proceed with your staging environment.

Copy existing environment to staging site

Here is what each of these options does:

  • ‘Start with a new blank site’ creates a new empty site.
  • ‘Start with a guided experience’ creates a new site with a guided experience and demo content.
  • ‘Copy an existing environment to this site’ will copy your production or development environment to this site (e.g. copy your live site to this environment).
  • ‘Move an existing environment’ moves an environment to this site (e.g. move the development environment to the Staging)
  • ‘Start with a WooCommerce site’ creates a new WordPress site with WooCommerce pre-installed.

Since you want to create a staging copy of our live website, you’ll need to click on the ‘Copy an existing environment to this site’ option.

Choose environment you wish to copy

After choosing an environment choose the latest backup you want to copy from and then click on the ‘Next’ button to continue.

Now, you’ll need to provide a name for your staging site. This name will be used in your staging site URL. After that, choose STG (staging) as your environment type.

Staging site name

Click on the ‘Create Environment’ button to continue.

WP Engine will now create a staging site for you. After that, you will be redirected to your Staging environment dashboard.

Password protect your staging environment

Next, you need to click on the Padlock button to enable password protection for your staging site.

After that, you need to switch to the ‘Utilities’ tab to copy your staging site username and password.

staging site password

You can now click on the ‘WP Admin’ button at the top to log in to your staging website.

Feel free to make changes and try out features on the staging website just as you would in a typical WordPress site you install anywhere else.

login to staging website

Deploy Changes From Staging to Live Website on WP Engine

Want to merge changes you made on the staging website to your live website?

Simply click on the ‘Copy Environment’ button to begin deployment.

Copy staging environment

This will bring you to the options page. From here, you need to choose your source and destination environments for the copy.

Here you’ll select your staging website as the source environment and your production or live website as the destination environment.

Deploy options

You can choose what you want to copy. For instance, you can copy all database tables and files, specific files and database tables, or only the file system.

Note: If you copy everything, you will lose any data stored on your live website after you use it to make the staging environment. This may include important data such as new posts, pages, customers, and orders. So it’s a good idea to run a backup of your live site before deploying from staging.

Next, click on the ‘Review and Confirm’ button to begin deployment. It will take a while to copy everything to your live website.

You will get an email notification when the process is complete.

Creating a Staging Site Using WordPress Plugin

If your WordPress hosting company does not provide a staging site feature, then you can still create a staging website using a WordPress plugin.

There are some disadvantages to using this method.

First, a plugin will have limited control over your hosting server. This is why it may not always give the best results.

Secondly, the plugin we will be using will store your staging site on its own servers. If you are concerned about privacy and data protection, this may not be ideal for you.

Lastly, the plugin has several known incompatibilities. Please check their incompatibilities page to make sure that your website is compatible.

That being said, let’s see how to create a staging WordPress site using a WordPress plugin.

The first thing that you need to do is install and activate the WP Stagecoach plugin. For more details, see our step-by-step guide on how to install a WordPress plugin.

Upon activation, the plugin will add a new menu item labeled WP Stagecoach to your admin bar. Clicking on it will take you to the plugin’s settings page.

Enter WPStagecoach API keys

You will need to enter your WP Stagecoach username and the API key, which you can find in your account on the plugin website.

After that, you need to visit the WP Stagecoach » WP Stagecoach page and choose a name for your staging site. This name will also be used as the subdomain of your WordPress staging website.

Connect WP Stagecoach

Don’t forget to check the box next to the ‘Password protect the staging site’ option. It will protect your staging website from public view and search engines.

Click on the ‘Ride the Stagecoach’ button to continue.

WP Stagecoach progress

The plugin will now create a backup of your WordPress files and database to export them for your staging site.

It may take a while depending on the size of your WordPress website.

Once finished, you will see the link to your staging site and its admin area.

WP Stagecoach fiinished creating a staging site

You can click the link to visit your staging site and start working on it.

You’ll notice a bright orange message in the admin bar at the top indicating that you are working on your staging site.

WPSC staging preview

Deploying Staging Site to Live Using WP Stagecoach

Once you are ready to import changes to your live site, head over to the WP Stagecoach » Import Changes page and click on the check for changes button.

Check for changes

The plugin will now check for changes on your staging site and then show you options to import them.

You can choose from all changes, file changes, or database changes.

Changes options

The plugin will show you the progress of the import and will notify you when it is done.

You can now test your live site to see if all changes were successfully imported.

Create a Staging Site for WordPress Manually

This method will teach you to manually create a staging site for your WordPress install. It is for advanced users and requires more work than other methods described above.

Another disadvantage of this method is that your website will be temporarily unavailable when deploying changes back from staging to the live server.

That being said, let’s see how to manually create a staging environment for your WordPress site.

First, you need to create a subdomain for your staging website. If you use Bluehost, then go to your hosting account’s dashboard and switch to the ‘Advanced’ tab.

Next, click the ‘Manage’ button next to the ‘cPanel’ option.

Click Manage button next to the cPanel option

This will open the cPanel in a new tab where you must scroll down to the ‘Domain’ section.

From here, click the ‘Domains’ option.

Click the Domain option in the cPanel

This will open a list of all the domains on your hosting account. Here, you must click the ‘Create a New Domain’ button.

Once you do that, a new page will open on the screen where you must write your subdomain followed by the domain name under the ‘Domain’ field like this:

subdomain.example.com

After that, simply click the ‘Submit’ button to store your settings.

Create a sub domain

Note: We’re using Bluehost in our example screenshots, so your screen may look different.

Your hosting control panel will now add your subdomain, which you can use to import your live WordPress site.

Next, you need to install and activate the free Duplicator plugin on your live site. If you need full features, you can get the premium version of Duplicator here.

Upon activation, you need to click on the Duplicator menu in your WordPress admin sidebar and click on the ‘Create New’ button under Backups.

Create a new backup in Duplicator

Next, you can enter a name for your backup and click on the ‘Next’ button to continue.

Enter a name for your backup

After that, Duplicator will now run the website duplicator wizard.

First, it will run some tests to see if everything is in order. If all items are marked ‘Good,’ then click on the ‘Build’ button.

Duplicator build package button

The plugin will now start creating a Duplicator backup package for your WordPress site. This process may take a few minutes depending on the size of your website.

Once finished, you’ll see download options for the Installer and the Archive package. You need to click on the ‘Download Both Files’ button to download both files on your computer.

Download Duplicator package and installer to your computer

You’ll need to upload both of these files to the file directory of the subdomain you just created. For details, see our guide on how to use FTP to upload files to your WordPress website.

Next, your new staging WordPress site will need a new database. Let’s create one.

Head over to your WordPress hosting account’s control panel and switch to the ‘Advanced’ tab.

After that, scroll down to the ‘Databases’ section and click on the ‘Manage’ button next to it.

Click the Manage button next to the Database option

If you are not using Bluehost, then your WordPress hosting environment may look a bit different. Don’t worry, and just look for the Databases section.

This will take you to the ‘MySQL Databases’ page where you can start by providing a name for your database.

Then, click the ‘Create Database’ button.

Click create database button to create a  Staging site database

Next, you need to create a MySQL user for your database.

Scroll down to the MySQL Users section and provide a username and password for your new database user.

Database username and password

Now you must give this user permission to access and modify the database you created earlier.

Simply scroll down to the ‘Add user to database’ section and select your database and the user you just created.

Add user to database

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

You will be asked to select privileges for the user. Go ahead and select the ‘All Privileges’ checkbox and then click on the ‘Make changes’ button.

Manage user privileges

Now your database is ready to be used for your staging website.

Next, you need to open a new browser tab and enter the subdomain of your staging site like this:

https://yoursubdomain.example.com/installer.php

Don’t forget to replace yoursubdomain it with the actual subdomain and example.com with your own domain name.

This will launch the Duplicator installer wizard.

Enter database details

Under the ‘Setup’ section, the installer 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 for your new domain name in the earlier step.

Click on the ‘Validate’ button to make sure that Duplicator can connect to your database.

Duplicator validated

Once done, click on the ‘Next’ button to continue.

Duplicator will now unpack your WordPress database and files and import them to your staging site.

Once finished, you will see a success message.

Duplicator wizard finish

You can click on the ‘Admin Login’ button to enter the WordPress admin area of your website on the new staging site.

Now you have your staging site set up. You can protect it by adding password protection to the subdomain.

Head over to your hosting account’s dashboard and switch to the ‘Advanced’ tab.

After that, scroll down to the ‘cPanel’ section and click the ‘Manage’ button next to it.

Click the Manage button next to the cPanel option

This will open the cPanel in a new window where you must scroll down to the ‘Files’ section.

From here, click on the ‘Directory Privacy’ icon.

Click on the Directory Privacy option in the Files section

Next, you need to select your subdomain folder and then select the option to ‘password protect this directory’ checkbox.

You will be asked to provide a name for this setting, and then click the ‘Save’ button.

Configure directory privacy settings to password protect staging site

Your staging site will now be hidden behind password protection, keeping it out of search engines’ hands and the public’s eyes.

You can now work on your staging site and make any changes to it.

Manually Deploy Staging Site to Live

After you are ready to deploy changes from your staging site to the live server, you will follow the same steps described above.

Simply create a new Duplicator package on your staging site and download the Installer and Archive files to your computer (See instructions above).

Next, you need to head over to your live site and create a complete WordPress backup (you can use Duplicator to create a complete backup as well).

Once you are done, you will need to delete all WordPress files and folders from your live website. This means your WordPress site will be down for a while.

Finally, follow the instructions above to run the Duplicator installer wizard to import the staging site to the live server.

As you can see, the last method is not the best method at all. There are many things during the process that can damage your site.

We suggest avoiding this method at all costs unless you have no other choice. We recommend using a reliable hosting provider like Bluehost, SiteGround, or WP Engine with built-in staging site features.

We hope this article helped you learn how to easily create a staging environment for your WordPress site. If you run into any issues, check out our ultimate guide to fixing the most common WordPress errors. You may also want to learn how to use WordPress Playground in your browser for testing.

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

207 CommentsLeave a Reply

  1. Beulah Wellington

    If I download WAMP on my computer and use the localhost, couldn’t install the UpdraftPlus plugin and let that be my staging site? Isn’t this another alternative?

  2. Jan Stetson

    I’m trying to set up a staging environment on my WordPress site hosted by Bluehost. I’m stopped at step one! when I go to the WordPress admin area, I don’t see bluehost at the top of the page. The topmost option in the nav menu on the left is “Dashboard”. No sign of “Staging” anywhere. Help?

    • WPBeginner Support

      You likely removed the BlueHost plugin, if you reach out to BlueHost’s support they should be able to let you know their current methods available :)

      Admin

  3. Shashank Sachan

    Hello
    I tried but did not succeed. Getting error ” this site can’t be reached”.
    I am on Godaddy and using Cloudflare. And I have not created a separate FTP account.

  4. simona

    thank you for the article. one question: If I update Wordpress ONLY on the staging site, will it affect also my live-site?
    thank you for your answer. regards, s.

    • WPBeginner Support

      No, if you update one site it should not affect the other.

      Admin

  5. oshibiko

    Thank you for this article.

    Do you know of a way to test membership (loginlogoff ) functionality without going live on the actual site. In the staging environment or developing. TIA

    • WPBeginner Support

      You would likely need to create a test user for you to log in with to test that.

      Admin

  6. Mark E

    Great article, with one step missing for the manual instructions.
    After downloading the duplicator files to your computer, you then have to upload the installer file and archive file to your newly created subdomain directory.
    Otherwise when you try to run the installer you get a 404 page.
    Otherwise great guide!
    Thanks….

    • WPBeginner Support

      Thank you for pointing that out :)

      Admin

  7. Charlene Marsh

    No option to try the staging feature on Bluehost yet. Message says “Please contact support to find out how to enable staging.” I was just on the phone with Bluehost about another issue and the rep I was speaking with never heard of this new feature.

    • WPBeginner Support

      It would depend on what rep you were talking to as it is a new feature so not all reps may be knowledgeable yet

      Admin

    • Matt Stephen

      To be able to use the staging feature provided by Bluehost, you must install and activate the Blushost plugin.

  8. Sean

    Thank you for this great info, as always. Now is this something I could use to play around with a new page builder? I want to test out Thrive Architect but want to do so without messing anything up. Or, suppose I wanted to play around with a new theme. These may be 2 different questions.

    • WPBeginner Support

      You could certainly test those changes with a staging environment without having to worry about what people see on the site.

      Admin

  9. Vanessa

    Thanks for the info. I currently use Bluehost but don’t have the staging site option I would love to test it out for a new theme I’d like to try before purchasing it. I contacted BH tech support the rep told me the feature is in development. Thanks again for the info.

    • WPBeginner Support

      Glad we could bring this feature to your attention even if it is currently being developed

      Admin

      • Vanessa

        I was able to access the feature today. I’m excited to use it. Thanks again for the info. I’m excited to try out the staging feature.

  10. Ani Chijioke

    this is a great information, I have two websites, but I don’t feel like having both look the same.

    pls, I need help.

    is there any code I can add on >dashboard >customize >additional css,,, for the font color of my site to be pure black in color..

    I have this theme that I am using, it gives me everything I want. but the font color of my blog posts are light black. I will like to change the color to pure black

    any solution?
    thank you.

  11. alykhan

    Great article but the push back to live is a little brief. I have a WooCommerce site that needs a theme change. I used Duplicator Pro to make a copy on a staging server. I’ve made all the changes to the site including adding a couple of new plugins.

    Now I want to push the site back but I can’t do the same thing as there are new orders on the live site. How do I copy the site back without affecting the orders etc..?

    • WPBeginner Support

      Sadly, the safest method for that would be to prevent orders while updating from staging.

      Admin

  12. Jennifer Verdin

    I haven’t read the comments yet, but I’ve been at this all day. The reason why is because this page does not tell you how to create a database user and assign privileges to the said user.

    Thankfully, I was able to figure it out, but that’s a KEY step that is missing to connect the site and database.

    • WPBeginner Support

      Apologies about the confusion, we will certainly look into clarifying that. If you reach out to your hosting provider they normally have a user already created.

      Admin

  13. Max

    Hi guys,
    Thanks for your awesome post. I like the idea that the provider has the staging, productive and a test environment out of box.
    But I have two questions:
    1. Can write a little bit how it works by your suggested providers?
    2. Have you also providers which are located in the EU or better in Germany? And offer staging environment out of box?

    Kind regard

  14. Chris

    Thank you so much for this information! And if anyone’s wondering, yes, it’s still relevant 4.5 years later.

  15. Jess

    Hi there

    I am in the process of setting up a new Wordpress site but I was planning to start building everything in my staging environment because I would like my live site to have a “under construction” landing page.

    What I am not sure of is how to push my changes from the staging site to my live site when I am ready. Would you mind describing this process please?

    Thank you
    Jess

    • Johnny

      If it’s simply a matter of wanting a “Under Construction” page while keeping the rest of the sight off limits to the public, there are plugins that will do that. Search “under construction.”

  16. Russell

    How does this process compare to using a plugin like wp-staging.

  17. Fernando Lisboa

    Hi, my question is, i created a staging environment, work there make some updates on structure of pages, layouts, new categories, new pluig-in.

    Ok, but in real live, my site is growing with new posts, comments, images, videos, etc…

    When i push stage back to life, i will lost thes new itens that were create in real live ??? I test this in sitegroud, and i loose ever with advanved “push to live”

    tks

    • WPBeginner Support

      Hi Fernando,

      The solution described above only syncs your website files not the database.

      Admin

  18. Ravindra

    Hi,
    Thank you very much. This article was very helpful.

  19. Chris

    Hi, thanks for such a useful article,

    I’m having a small issue when I give it a go,

    I have got as far down as

    “Once WordPress has connected to your staging database, it should detect that WordPress has been installed, and prompt you to login” and I am stuck – it autoredirected to the wp-login and gave me a blank page. Not a 404, just a clean white screen.

    On the main page the login has been renamed so I try to navigate to that instead and again just a clean white screen.

    Can anyone give me any pointers on where I’m going wrong?

  20. Smitha

    Hi,

    Thanks for this article!
    I followed all the steps but I think I have missed one

    I created a staging environment and checked site url in wp-options and updated wp-config file but the staging site is being redirected to the primary site.

    Do I need to change any other setting?

  21. Ruth

    Hi! Thanks for the useful article!
    Question, is it necessary to create a new database for your subdomain? Can’t you just use your root domain’s database?
    Same for the FTP account, is it necessary to create a new one? I can now access my subdomain easily through my main FTP.
    Thanks!
    Best,
    Ruth

    • WPBeginner Support

      Hi Ruth,

      Yes, it is necessary to create a separate database and a separate FTP account.

      Admin

  22. Courtney

    Hello!

    Perhaps this was already covered. Do I need a child theme on my sub-domain serving as my staging site? I am adding custom code and modifications to the new theme on my subdomain with the intention of switching all of this over to the live site when finally ready. Would this complicate things when switching from the staging site to replacing what is currently the live site?

    Thank You!

  23. Lee Perry

    Hi, this article is super helpful. I have encountered one problem though, when I go to visit my staging URL, I have the following message appear ‘server DNS address could not be found’. I have also cleared my cache and browser history as someone wrote this might help, but it hasn’t worked. I’m wondering what I am doing wrong. Any help would be great.

    Lee

    • Georgia

      I’m having the same problem – did you manage to resolve this issue?
      Thanks, Georgia

  24. Adrien

    While I appreciate the detailed instructions (I don’t like installing plugins to accomplish such tasks), I don’t see any advice concerning keeping the staging and live sites in sync. Wordpress sites are generally edited live with respect to content—posts, products, media, etc. Once you follow these directions, the two content sets will diverge as users add content to the live site while the developer’s staging version remains an old copy. I don’t see a good solution for this save a cron rsync job. Any tips?

  25. Jason

    After you create the staging subdomain and ftp account.

    Skip all the other copying and database junk.

    Install duplicator on your live site. Make a duplicate backup, which includes a zipped copy and an install. Php file.

    Upload both to your staging area. (Maybe go in and create a database and user for the staging site in cpanel while you wait for the two fingers to upload)

    Point your browser to staging.domain.com/install.php and follow the prompts.

    Then go back to the rest of this tutorial for locking it down.

  26. Gus Reyes

    Hi, I followed another tutorial before I found this one and I installed Wordpress BEFORE copying files over and running the SQL queries. My staging site does not populate with live site’s data. Any help you can offer about what to do at this point would be appreciated…

  27. Martin

    The staging site does not look exactly like my primary site. The default banner is there instead of my uploaded media (even though that file has transfered) and rather than a nav bar with drop down menus, I have a list of all of my site’s webpages. Is this normal? If not, could you point me where to sort it out?

    Thanks for this article!

  28. BLZ

    I keep getting this error when I try to run SQL queries ” #2013 – Lost connection to MySQL server during query”

  29. Stefan

    Thank you for the great tutorial! I followed it thourgh and created a staging site. However, the staging site seems to be missing some settings from the original site (where I am working with a template), e.g. the font is different, the menu and logo is missing and some other settings are just off. Are there additional files I need to copy?
    Thanks a lot!

  30. Lynn Fontaine

    Very thorough instructions! We currently have WordPress 4.3.6 version. I think there is a newer version 4.7; however, I am not updating due to past problems with my theme and child after an update. If I follow your instructions to install WordPress on computer, it most likely will affect the existing site as well which will cause a problem. Do you agree? and how do I proceed? thanks.

    • WPBeginner Support

      Hi Lynn,

      You can safely install WordPress on your computer and import content from your live site. This way you will be able to test drive new WordPress version with your current theme and child theme.

      Admin

  31. Mike

    Couple years later, is there an easier way to do this?

    • Sandy

      Lol, Mike, you’re my kinda person! And although you’ve probably sped ahead to something easier by now, I thought I would mention something that I saw but haven’t tried: Backup Buddy. I don’t know how thorough it would be for this purpose. Since my site is pretty static, I used a subdomain to reconstruct my site – just copied and pasted my content as ascii text. Bluehost said they could make it my main site (not subdomain with redirect – make it a domain) when I’m done. Of course you have to set up the widgets, plugins, etc. Still working on it because I’m definitely a beginner. This would be really laborious for a more sophisticated site.

  32. Luke Marshall

    I like the well documented article but maybe it’s just me but I can’t find anything anywhere which starts a github repository with a site that’s only on your live server! How do I pull it down to the repository and why does Cloudway s have all the addressing options. What all do I need to pull down do I need to use My SQL Work Bench?

  33. David Borrink

    Well done tutorial. I gave up on a staging plug-in after several attempts failed, and found this one to be easy to follow and implement.

    One issue to mention and that’s the need to have a database user set up. I had to redo the process and choose the database wizard on CPanel in order to be able to set that up. That allowed my wp-config file to be set up with the info and then it worked. (My first attempt resulted in “unable to establish a database connection.” Once I established a database user, it went through.

    And thank you for the the note to check the URL, with the notes to look at site URL and home on the wp-options table. That allowed to me to confirm and get going on a re-design.

  34. Martin Klasson

    I guess I found an easier way – that works for me in a project right now!

    1. I just clone the files in the ftp to a /staging/ site,
    2. clones the database to a dbname_stage
    3. Changes the wp-config.php in /staging/ – by changing database to dbname_stage
    4. Adds in wp-config in /staging/ the new WP_HOME and WP_SITEURL
    define(‘WP_HOME’,’http://example.com’);
    define(‘WP_SITEURL’,’http://example.com’);

    Then it is super-easy to just copy the dbname_stage back to the live database called dbname

    Super easy.

    And if you like, you can also in the wp-config change default uploads directory to the same as the live one.. as long as you just dont have the need to “delete” media files that is.

    And your changes in the theme files are easily moved back to the live site.

    What about that?

  35. Mike

    I love the article – so clear instructions and well written. I’m having problems getting it working though.

    I followed the instructions to get from production (www.) to test (test.) and dev (dev.)

    I’ve tried all this several times in dev … two things happen

    dev.example.com … goes to http://www.example.com
    test.example.com … goes to test.example.com

    On test when I open a post form the menu as a user – it does not show the post but a reference to the post which when I click on it, it takes me back to the same page

    I’m wondering if you have any ideas on what may not have worked?

    Thanks

    • Julio

      The problem is in your DB, maybe you did left some original (www.example.com) URL’s on your dev.example.com database

  36. sat

    Thanks for the great article. It helped me to set up a staging website for testing my new theme. But you have omitted one critical information, after copying the database the MySQL user setup for the wp to access the database needs to be given permission to access the database through the CPanel -> Mysql databases -> add a user to the database option. Otherwise, you will get “cannot connect to the database” when trying to access the admin page through the URL.

  37. Hesli Brito

    I am getting lost here:

    After copying your database, you need to copy your WordPress files, plugins, themes, and uploads. First download a fresh copy of WordPress from WordPress.org. Upload the contents of WordPress to your staging site. Note, do not run the WordPress install yet.
    Once you have uploaded WordPress, the next thing you need to copy is media files, plugins, and themes. The following folders will need to be copied :

    Could you guys be more detailed here? Cause I don’t know the right way to upload Wordpress without installing… I am missing something here, cause I can’t get it right…

    Please, could you guys update this article with more information in this part?

    Thanks

  38. Sion

    Thank you for this amazing guide! I’ve successfully created a staging site with this.
    What steps do you recommend to do from Staging to Live?
    Right now, I’m just writing down every changes I make and repeat it on the live site.
    I’m not sure I know the appropriate method to copy Stage site to Live.

  39. Barbara

    I have set up the staging site as outlined above – but now how do I get it to the live site?

    I’ve been looking here, but can’t seem to find the answers. Help please?

  40. Peter

    What about using Git to track the changes made in DB ? with wordpress, there is a very high likelihood that changes made are in DB instead of in files on hosting server

  41. Rajit

    Hi, got stuck at the first step itself. I followed the steps but for some reason not being able to set up a staging environment through cpanel. When I type the link i get the message ‘This site can’t be reached’.

    • Rajit

      I removed it and created again. Now I am getting 403 Forbidden error.

      • Hesli Brito

        Same here

  42. Mike

    Thank you for this! What process do you suggest for going live with the staging site?

  43. Craig Watson

    Hi, I have followed your steps as above but for some reason the staging URL is redirecting to the normal live URL.

    I have ran the queries in the database and copied the files including updating the wp-config.php

    Do you have any idea what may be going on here as the staging URL was not redirecting yesterday when I put a small test HTML page up there..

    Hope you can advise
    Craig

    • Craig Watson

      OK so I was inpatient and didn’t clear cache…. However now I’m on the staging site the database has clearly not moved well…

      Lots of setting seem to have been lost.

  44. Glauber Oak

    Hi there,
    Thank you so much for the detailed instructions.
    Does this work for MU site?
    Multi-site is at the root, and I would like to copy only the root to an especial folder. Server has other sites as subdirectories. Do not need to be copied at this point (in the futures, a couple of sites will be cloned as well)
    Root should go to a subdomain for testing purposes.
    Thank you in advance!

  45. Gemma

    HI. I am following your tutorial and i got stuck in media files has been copied section. Checking with my FTP and Cpanel files are existing but is not showing in my media library . How can i rectify this? Thanks and your tutorial is very helpful for noobs . 5 thumbs up.

    • WPBeginner Support

      While your media files are stored on server. WordPress can’t show them unless you import data and database. Information about your media files is stored in WordPress posts table as attachment post type.

      Admin

  46. Serhan

    Thank you for this article; very helpful.

    I’d like to add one more point; as it might help other readers too.

    After you make a copy of your database, you may need to add the user from previous database to the newly created one.

    Otherwise, while setting up your wp-config, you might face with authentication problem.

  47. sam

    How do i set-up the staging environment on AWS?

  48. Guvenc Kaplan

    Very nice and helpful article. However;

    Replacing all the references in the DB (example.com with staging.example.com) will most likely break all the serialized values and you will have BIG issues on the staging site. You need to use a replacer that has serialization support.

    • Sina

      Can you please suggest one with this serialization feature?

  49. Mohammad

    Thank you for this great article!

  50. Kris Parker

    Excellent article, helped in great detail. thank you

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.