Skip to content

Pull and Push Your Staging Site ​

Once a hosted site has a staging site, you can copy it in either direction from one screen: Developer Tools > Staging Site on the production site. Both actions take a few minutes.

The staging card, with the production site on the left, the staging site on the right, and Pull to staging and Push to production between them

This is not the InstaWP Connect 2-way sync. This page covers the staging site built into a site hosted on InstaWP, which copies the whole site in one direction at a time. If your live site is hosted elsewhere and you sync selected changes with the InstaWP Connect plugin, you want How to Sync Changes from Staging to Live instead.

In this documentation, we will cover:

Let's get started 🚀

The two directions ​

ActionCopiesOverwritesLeaves alone
Pull to stagingProduction files and databaseEverything on stagingProduction
Push to productionStaging files and databaseEverything on your live siteStaging

Neither action merges anything. Each one replaces the destination site's files and database with a copy of the source site, so any work sitting on the destination is gone once it finishes.

Pull to staging ​

Use this when staging has drifted and you want to start again from what is currently live, or when you want to reproduce a problem against real production data.

Step 1: Open the production site and select Developer Tools > Staging Site.

Step 2: In the Sync column, click Pull to staging.

Step 3: Read the confirmation and click Pull to staging again. It takes a few minutes, and you can leave the page while it runs.

The Pull to staging confirmation dialog

A pull replaces everything on staging

The dialog puts it plainly: "This replaces everything on your staging site with a fresh copy of production. Any changes you have made on staging will be lost. Your production site is not affected."

Push your work to production first if you want to keep it.

The staging site keeps its own URL and its own SSH and SFTP credentials, so anything you have pointed at that URL keeps working afterwards.

Push to production ​

Use this when the work on staging is ready to go live. The push copies the staging site's files and database over your live site, rewriting the staging URL to your production URL as it goes, so links and settings point at the live address.

There is no automatic undo, and no backup is taken first

That is the wording of the confirmation dialog, and it is exact. In full, the dialog says:

Everything on your production site, files, database, plugins, themes and content, will be replaced by the staging copy. Your domain, SSL and plan stay as they are. There is no automatic undo, and no backup is taken first: if you want to be able to go back, take a backup of your production site before you continue.

So take your own backup of the production site first if you want a way back. See View and Manage Backups.

Step 1: Take a backup of the production site if you want to be able to restore it.

Step 2: Open the production site and select Developer Tools > Staging Site.

Step 3: In the Sync column, click Push to production. Read the Replace production with staging? dialog, then click Push to production to confirm, or Cancel to back out.

The Replace production with staging confirmation dialog, stating that there is no automatic undo and no backup is taken first

Step 4: Wait for it to finish. It takes a few minutes. The CDN cache for the production site is purged once the push completes, so visitors see the new site rather than a cached copy of the old one.

Your staging site is unchanged by a push. It stays exactly as it was, so you can carry on working there.

Password protection is switched off after a push ​

If the production site had password protection enabled, it is turned off when a push completes and is not re-applied. Check the setting on the production site after a push and turn it back on yourself if you still need it.

What a push does not change ​

A push copies the site's files and database. Everything that belongs to the production site itself stays put:

  • Mapped domains: a site with a mapped primary domain keeps serving that domain after the push.
  • SSL certificates and the CDN pull zone
  • Tags
  • SSH keys
  • The site's plan and site settings

If you need to change any of those, change them on the production site itself, before or after the push.

While a sync is running ​

A pull and a push cannot run at the same time. While either one is in progress:

  • The other direction is unavailable until it finishes.
  • Deleting the staging site is refused.

Wait for the running sync to complete, then start the next action.

Docs are open. Edit them on GitHub. Built with VitePress.