Why LMS updates deserve a staging step
An LMS update can change database tables, enrollment logic, quiz handling or the checkout integration. If it breaks, students cannot reach lessons and payments may not create enrollments, which is worse than a broken page because it costs money and trust. Testing on a copy first adds time to every update, but it surfaces these failures before students do.
The catch is that a course site's database changes constantly. Every purchase, enrollment and lesson completion is a database write. That is why the workflow below tests on staging but applies the update to live directly, instead of copying the staging database over live.
What each host documents about staging
| Behaviour | Kinsta | WP Engine | SiteGround |
|---|---|---|---|
| Availability | Standard and Premium staging; up to 5 Premium environments | Up to three environments per site: production, staging, development | GrowBig and GoGeek plans, WordPress sites |
| Clone includes | Most recent production database and files | Full copy of all files and tables, or custom selection | Copy of the site in a separate environment |
| Email from staging | Transactional email enabled by default; use a plugin to disable | Not stated in the copy or environments docs | Not stated in the staging tutorial |
| Cron on staging | Live server cron jobs are not active on staging | Not stated | Not stated |
| Caching on staging | Full-page cache and OPcache off by default | Same default caching as production | Not stated |
| Push options | Files only, database only, selected files, folders or tables, or everything | Full copy or custom: files, database or selected tables | Full Deploy or Custom Deploy with table selection |
| Backup around push | Backup of the target before push | Destination backed up before and after copy | Separate restore-after-deployment tutorial; take your own backup |
| Documented limits | Few seconds of downtime at the end of a push | Recommends against pushing the full database to production | Database under 2 GB, under 500 tables, 15 staging operations a day, no Multisite |
The workflow, step by step
- Pick a quiet time, away from renewal days and launches.
- Refresh staging from live so it has current plugins, settings and data.
- On staging, stop outgoing email: Kinsta notes staging sends transactional email by default, and a test checkout should not email real students.
- Put the payment gateway on staging into test or sandbox mode.
- Read the LMS and add-on changelogs for database upgrades or removed features.
- Update the LMS core plugin first, then its add-ons, then other plugins, one group at a time.
- Run the test script below.
- If everything passes, take a fresh backup of live.
- Apply the same updates on live in the same order, rather than pushing the staging database.
- Run the live smoke test with a real low-value or 100% discount purchase if your processor supports it.
- Watch the error log and new orders for 24 hours.
Test script for enrollment and checkout
| Path | What to do on staging | Pass when |
|---|---|---|
| Student login | Log in as an existing test student | Dashboard shows enrolled courses |
| Lesson | Open a lesson with video and a download | Video plays, file downloads, progress saves |
| Quiz | Submit a quiz | Score records and the next lesson unlocks if it should |
| Drip content | Check a lesson scheduled to unlock later | Still locked with the right date |
| Checkout | Buy a course in test mode as a new user | Order created, user created, enrollment granted |
| Membership renewal | Trigger or simulate a renewal if your plugin allows | Access continues and status is correct |
| Admin reports | Open the LMS reports and the orders list | No errors, new test records visible |
| Error log | Check PHP error log after the tests | No new fatal errors or warnings from updated plugins |
When you can push from staging, and how
Sometimes you want to push work from staging, such as a new course page design or a theme change. Use the selective options. Kinsta can push only files, or selected files, folders or tables; it warns that any changes to the live database since the staging site was created will be lost on a database push and that it does not separate new WooCommerce orders from old ones. WP Engine performs a search and replace on copied tables and says it does not recommend pushing the entire database to production. SiteGround's Custom Deploy compares staging with live and lets you choose which files and tables to apply, and it asks that staging core be at least the live version before deploying.
A safe rule for course sites: push files, never the tables that hold users, orders, enrollments or progress. If a change lives in the database, such as plugin settings, re-enter it on live by hand.
Common traps
- Staging cron is off on Kinsta, so scheduled LMS tasks such as drip emails will not run there; test them with a manual trigger if your plugin has one.
- WP Engine staging uses production's default caching, so clear cache after updates or you may test the old version.
- Social auto-posting plugins can publish staging URLs; Kinsta recommends deactivating them on staging.
- A license that counts activations may treat staging as another site; check before you activate there.
- Keep WordPress core on staging at least as new as live before any SiteGround deploy.
Questions before you decide
Can I just push staging to live after testing an update?
Not the database. Kinsta, WP Engine and SiteGround all document that a database push replaces live tables, so orders, enrollments and accounts created since the copy would be lost. Repeat the update on live or push files only.
Will my staging site email students?
It can. Kinsta says staging environments have transactional email enabled by default and suggests a plugin to disable it. Disable outgoing email and put payments in test mode before running checkout tests.
Which SiteGround plans include staging?
SiteGround documents staging on GrowBig and GoGeek plans for WordPress sites. Its deploy tutorial lists limits including databases under 2 GB, fewer than 500 tables and 15 staging operations a day, and it is not compatible with Multisite.
Sources & verification
Product details and prices can change. Check the linked provider before buying.
- Kinsta: staging environment Accessed 30 Oct 2026
- Kinsta: push environments Accessed 30 Oct 2026
- WP Engine: environments Accessed 30 Oct 2026
- WP Engine: copy an environment Accessed 30 Oct 2026
- SiteGround: staging tool tutorial Accessed 30 Oct 2026
- SiteGround: deploy staging to live Accessed 30 Oct 2026
Sources link directly to providers. Product buttons may use separately labeled affiliate links. Read our disclosure.