# Create a WordPress staging site with Softaculous
Source: https://docs.webgee.com/en/hosting/wordpress/how-to-create-a-wordpress-staging-site-with-softaculous



A staging site is a copy of your live site where you can test updates, plugins
and theme changes before they reach visitors. Softaculous creates and pushes one
back in a few clicks. Applies to shared and reseller hosting on cPanel.

## Create the staging copy [#create-the-staging-copy]

Create the subdomain first if you are using one — Softaculous will not create it
for you. In cPanel, go to **Domains** → **Create a new domain** and add
something like `staging.example.com`.

Then:

1. Log in to cPanel and open **Softaculous**.
2. Go to **Installations**.
3. Find the live installation and select **Create Staging**.
4. Choose where the staging site lives — a subdomain such as
   `staging.example.com`, or a subdirectory.
5. Select **Create Staging**.

Use a **subdomain** rather than a subdirectory. A subdirectory staging site
shares the live site's `.htaccess` and SSL certificate, and the two can
interfere; a subdomain is cleanly separated.

<Callout type="warn">
  Stop search engines indexing the staging copy, or it will compete with your
  live site in search results. In the staging site's dashboard, go to
  **Settings** → **Reading** and tick **Discourage search engines from indexing
  this site**.
</Callout>

## Work on the staging site [#work-on-the-staging-site]

Log in with the same credentials as the live site. Update plugins, install
themes, update WordPress core, edit pages — none of it touches the live site.

## Push changes to live [#push-changes-to-live]

1. In Softaculous, select the staging installation.

2. Select **Push To Live**.

3. Choose what to merge:

   | Option                  | Moves                                        |
   | ----------------------- | -------------------------------------------- |
   | Files only              | Themes, plugins and uploads — no content     |
   | Full database           | Everything, including all posts and settings |
   | Database structure only | Table definitions, not their contents        |
   | Database data only      | Table contents, not their structure          |

4. Select **Push to Live**.

### Choosing what to merge [#choosing-what-to-merge]

This is the decision that matters, and it depends on what changed on your live
site while you were working on staging.

**Files only** is right for most work — plugin and theme updates, template
edits — on a site that receives orders, comments or form submissions. It moves
the code and leaves live content alone.

<Callout type="warn">
  **Full database** overwrites the live database with the staging copy. Every
  order, comment, user registration and form submission received since you
  created the staging site is lost. Never use it on a WooCommerce store or any
  site taking submissions unless you have deliberately frozen the live site.
</Callout>

Use **Full database** only when the changes are themselves content or settings —
a rebuilt page structure, reconfigured plugins — and the live site has been
quiet.

## Back up first [#back-up-first]

Take a JetBackup snapshot, or download a full cPanel backup, before pushing. A
push is not reversible from Softaculous.

See [Restore from a backup](/en/backups/jetbackup-how-to-restore-your-account-files-or-databases)
and [Download a backup of your account](/en/backups/how-to-generate-download-a-website-backup).

## Verify [#verify]

* The live site loads and looks right, logged out and in a private window.
* Recent orders or comments are still present, if you pushed files only.
* Clear your caching plugin and CDN — the old version will otherwise be served
  from cache and look like a failed push.

## Related [#related]

* [Clone a WordPress site with WP Toolkit](/en/hosting/wordpress/how-to-clone-a-wordpress-website-between-cpanel-accounts-using-wp-toolkit)
* [Restore from a backup](/en/backups/jetbackup-how-to-restore-your-account-files-or-databases)
