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: