Deploying updates often means brief maintenance windows. The challenge for monitoring is simple: planned work should not wake the on-call engineer at 2am — but real outages still must.
How maintenance pages look
- HTTP 503 with
Retry-Afterheader (good practice) - Custom "back soon" HTML with HTTP 200 (bad for naive monitors)
- Basic auth or IP allowlist blocking external checks
- Load balancer health drain removing all backends
Strategies that work
Maintenance windows in your monitor — Pause alerts during a scheduled slot and auto-resume after.
Content signatures — Detect your known maintenance page text and classify as maintenance, not outage.
Separate staging checks — Validate production only; run destructive tests against staging URLs.
Communicate outward — Update your public status page to "Maintenance" so support volume drops.
When maintenance becomes an outage
If the window passes and the maintenance page remains, that is a failed deployment — treat it as an incident. Escalation policies should fire if the site does not recover within a defined grace period after the window ends.
UpMonix lets you distinguish failure types where possible, so your team spends less time triaging false positives from deploy nights.