At Kinsta, each site can have 1 Standard Staging Environment and up to 5 Premium Staging Environments. Staging environments allow you to test plugins, themes, or code modifications without affecting the live site.

Kinsta offers the option to push your WordPress staging environment to your live environment if you’re happy with the changes you’ve made and want them to be applied to your live site. Thanks to the Selective Push feature, you have granular control on what to push live.

In the past, pushing from staging to live was an all-or-nothing process, with the staging environment completely overwriting the live site during the push. With Selective Push, you can choose what to push from your staging environment to your live site. Specifically, you can now push:

  • only your files,
  • only your database,
  • or both.

Pushing from staging to live can be done in just a few clicks, but please read the notes below before proceeding. They contain essential information about the process.

Important Notes

  • We recommend using the Push to Live functionality with care, initiating it during low-traffic times, and having a developer handy just in case. If you need the assistance of a developer, there are several places where you can hire one.
  • We create a backup automatically so you can roll back as needed. Note: If your live site is an ecommerce or other dynamic and quickly-changing site, data could be lost between the time you push and when the backup is restored.
  • Environment settings (redirects, geolocation, PHP and Nginx configuration, etc.) are included in the push (even if only Files or Database is selected) and will completely overwrite the live site’s environment settings.
  • Once the push is complete, purge any built-in cache in your theme or plugins, clear your browser’s cache, and test your site to make sure it’s working as expected.
  • When pushing your database, if you check the Run Search & Replace option, your staging domain will automatically be replaced with your live site’s domain.
  • Any hard-coded URLs in your theme or plugin code will need to be updated to the live site’s URL.
  • If password protection (.htpasswd) is active on your staging environment, this will not carry over to the live environment. If you need this set up on your live site, you’ll need to enable that on the live site.
  • Double-check the staging site and resolve any errors before pushing to live.
  • Staging environments are intended for development and testing only. They are not designed to be used as live production sites, and there may be things that don’t function as expected. Kinsta is not responsible if you try to use a staging environment for a live site.
  • Pushing to live doesn’t affect the staging environment, and it will remain separate from the live site. After pushing to live, you can continue developing and testing changes in staging without affecting your live site until you push the changes to live again.
  • Pushing to live will not interfere with Kinsta CDN if it is running on your live site, but we do recommend clearing the CDN cache after the push (Sites > sitename > Kinsta CDN > Clear CDN cache).
  • Push to live with caution if your site is a multisite network. Pushing the database may or may not work, depending on how the multisite is set up. If you do use selective push and push the database or database and files, the entire database content will be pushed to live and will affect all sites (the main site and subsites) in your multisite network.

How To Push Staging To Live With Selective Push

Follow the steps below to push your WordPress staging environment to live. The workflow for selective push allows you to choose what you will push from your staging site to your live site.

Step 1

Log in to MyKinsta, click on Sites, and click on the site you want to push to. Use the Environment selector next to the site name to select the staging environment you want to push from. If you’ve added a Premium Staging Environment, you will have more than one staging environment to choose from.

Change to your WordPress staging environment in MyKinsta.
Change to a WordPress staging environment in MyKinsta.

Step 2

Once you’re in the staging environment, click on the Environment actions menu and select Push to live from the dropdown menu.

Push Staging to Live in MyKinsta with Selective Push.
Push Staging to Live in MyKinsta with Selective Push.

Step 3

In the Push to Live pop-up/modal that appears, choose either Files, Database, or check both — depending on what you’d like to push to live. Type the site name to confirm and click the Push to Live button.

Use Selective Push to push files from staging to live.
Use Selective Push to push files from staging to live.

A few things to keep in mind are:

  • The time required for the process to complete depends on the size of your website.
  • MyKinsta will notify you when the process is completed.
  • Your website will experience a couple of seconds of downtime at the final stages of the process.
  • Environment settings (redirects, geolocation, PHP and Nginx configuration, etc.) are included in the push (even if only Files or Database is selected) and will completely overwrite the live site’s environment settings.

Use Cases and Example Workflows

Below we’ve outlined some examples of when you might want to push just files, just the database, or both. Keep in mind the following when pushing staging to live:

  • Environment settings (redirects, geolocation, PHP and Nginx configuration, etc.) are included in the push (even if only Files or Database is selected) and will completely overwrite the live site’s environment settings.

Push Files Only

  • Changes made directly to theme files (including HTML, CSS, or PHP) that don’t save any data to the database.
  • Uploading a file that doesn’t need to be included in the WordPress Media Library.
  • If you have a custom plugin on your site and make changes to the files that do not affect the database (doesn’t save or alter data in the database).

Push Database Only

Note: Any changes to the live site’s database since the staging site was created will be lost, including but not limited to: comments, new content, purchases on ecommerce sites, sign-ups on membership sites, and forum posts.

  • Creating or editing a new post or page that doesn’t include any uploaded media (image, video, or other uploaded files).
  • Layout changes to a page or post made through a builder plugin.
  • Changing the Site Title or Tagline.

Push All

Note: Any changes to the live site’s database since the staging site was created will be lost, including but not limited to: comments, new content, purchases on ecommerce sites, sign-ups on membership sites, and forum posts.

  • Creating new content that includes uploaded media (image, video, or other uploaded files).
  • Changes to your theme made in both the Customizer and the theme files.
  • Installing and testing a new plugin or updated version of a plugin.

Frequently Asked Questions (FAQ)

Q: If I test a plugin on the staging environment and push only the files to live, will it create the corresponding database tables for the plugin?

If you install a plugin on your staging site that’s never been installed on the live site, pushing only the files from staging to live will not create the database tables for that plugin.

This also means that any settings you’ve configured in the plugin will not be pushed to live (unless the settings are saved in a file outside of the database, like in a JSON file, for instance).

Depending on how the plugin is coded, enabling (first disabling if necessary) the plugin on the live site may create the database structure.

Q: If I push only the files to live, does this mean the old database (in staging) will not overwrite the live one, and only the files will be overwritten?

Yes, when pushing only the files, this means that the database on the live site remains unchanged, and only files on the live site will be overwritten.

Q: Does this mean that I can work on design changes on my staging site and push those to live without losing any new subscribers or customers on my live site?

Yes, as long as your changes are made only to files (no changes made in the WordPress dashboard — including plugin, theme, or customizer settings), you can safely push those to live without pushing the database. When you push the changes to live, select Files and make sure Database is not selected.

Q: Can I use selective push to change my site’s PHP version?

Yes, you can use staging to test and push a new PHP version to your live environment, but it isn’t strictly necessary to push from staging to live to update your PHP version. Here’s a brief overview of how you would change the PHP version without pushing from staging to live:

  1. Create a staging site.
  2. Go to the staging site and change the PHP version on the staging site.
  3. If everything is okay and working as expected on the staging site (be sure to test your site thoroughly), switch the PHP version on the live site.

Q: I made CSS changes in the WordPress dashboard and pushed files. Why am I not seeing my changes, even after clearing all of the cache?

Depending on the type of change made and where that information is stored, you may need to push the database or make those changes manually on the live site. For instance, if you added or edited CSS in a block or widget in the WordPress dashboard, that would probably be saved to the database.

If you make changes to something in the WordPress dashboard, with the exception of changes made with the Theme Editor (Appearance > Theme Editor), that information is usually stored in the database.

Note: Any changes to the live site’s database since the staging site was created will be lost, including but not limited to: comments, new content, purchases on ecommerce sites, sign-ups on membership sites, and forum posts. In this case, we recommend making the same changes manually on the live site rather than pushing the database.

Q: How does selective push work with a multisite network?

If you use selective push to only push the files, it will work fine, regardless of the type of multisite network. If you push just the database or the database and files, it may or may not work, depending on how your multisite is set up:

  • If it’s a subdirectory multisite (example.com, example.com/subsite1, example.com/subsite2), push to live will work as expected.
  • If it’s a subdomain multisite (example.com, subsite1.example.com, subsite2.example.com), it will work fine, provided the subsites don’t require HTTPS.
  • If it’s a domain-mapped multisite (loads different subsites at completely different domains, e.g. example.com, example1.com, example2.com), it won’t work without significant manual setup.