How to handle WordPress maintenance mode during WP Engine environment pushes (without breaking login access)

When using WP Engine’s environment push workflow, brief downtime is unavoidable—but without the right setup, it can disrupt critical user access and create a poor user experience.

In this case, a WordPress site experienced temporary outages during pushes from staging to production, which made key pages—like login access—unavailable. The solution involved implementing a dedicated external maintenance page and improving the deployment strategy to minimize disruption.

Issue Background

The site followed a standard WP Engine workflow:

  • Updates made in development
  • Pushed to staging for review
  • Then pushed to production

However, this process introduced several challenges:

  • Push duration: ~1 hour 30 minutes
  • Site downtime: 5–10 minutes at the end of the push
  • Critical page affected:
    • /login/ (used to route users to application login systems)

During this downtime:

  • The marketing site became unavailable
  • Users could not access login routing
  • No maintenance messaging was shown

Additionally:

  • WP Engine’s built-in maintenance mode was limited
  • No persistent maintenance page existed
  • Staging and production environments were significantly larger than development

Diagnosis

1. Expected behavior during WP Engine pushes

  • The production WordPress site is briefly taken offline
  • All pages—including login routes—become unavailable
  • This is expected behavior in WP Engine’s architecture

2. Separation of application vs marketing site

  • The /login/ page was a routing page, not the actual application login
  • Because it lived inside WordPress, it became unavailable during maintenance

3. Missing external fallback

  • No external maintenance page existed
  • No backup login routing mechanism was available
  • No user-facing messaging during downtime

4. Environment size affecting deployment time

  • Development: ~1.9GB
  • Staging/Production: ~9.4GB

This indicated potential inefficiencies in content and media handling.

Resolution Steps

1. Create a dedicated external maintenance page

  • Host a static page outside WP Engine (e.g., DigitalOcean)
  • Use a subdomain like maintenance.example.com

This ensures the page remains accessible during downtime.

2. Include critical functionality

  • Display clear maintenance messaging
  • Provide direct links to application login systems
  • Replicate essential functionality of the original login routing page

3. Update routing or communication strategy

  • Direct users to the maintenance page during deployments
  • Provide fallback access through status or support channels

4. Choose the right hosting approach

  • Static hosting (recommended) for simplicity and reliability
  • Separate WordPress instance if frequent updates are needed

5. Optimize environment size

  • Audit disk usage across environments
  • Remove unused media and files
  • Align dev, staging, and production environments more closely

This can significantly reduce push time.

Final Outcome

  • Users retain access to login routes during maintenance
  • A clear maintenance experience is presented
  • Deployment impact is minimized
  • A path to faster deployments is established

Key takeaway

WP Engine deployments will always involve brief downtime—but with the right architecture, users don’t have to feel it.

Key strategies include:

  • Hosting fallback pages outside WordPress
  • Maintaining access to critical functionality
  • Optimizing environment size for faster deployments

If you need help optimizing your WordPress deployment workflow or improving uptime during updates, Freshy can help:

Contact Freshy