Introduction
A plugin can leave WordPress stuck in maintenance mode long after the original update should have finished. Visitors keep seeing a maintenance page, wp-admin becomes inaccessible, and the site looks offline even though the server itself is still running. This can happen after a failed update, a maintenance plugin misfire, or a permission problem that prevents WordPress from cleaning up properly. The fix is to determine whether the site is stuck in WordPress’s built-in update state or in a plugin-controlled maintenance workflow.
Symptoms
- The site keeps showing a maintenance message and never returns to normal
- wp-admin is inaccessible after a plugin update or configuration change
- The issue started during an update, deploy, or maintenance plugin action
- Some pages show normal content while others remain blocked
- Removing browser cache does not change the maintenance page behavior
Common Causes
- A plugin update failed and left WordPress in an unfinished maintenance state
- A maintenance mode plugin is still forcing the maintenance page after the work ended
- File permissions or ownership prevented WordPress from cleaning up update artifacts
- A cache layer continues to serve an old maintenance response even after the site recovered
- A plugin conflict retriggers maintenance logic on every request
Step-by-Step Fix
- Confirm whether the maintenance page comes from WordPress core, a maintenance plugin, or a cached response at the edge.
- Review recent plugin updates, installs, or maintenance actions to identify what changed immediately before the site became stuck.
- Check the WordPress filesystem and logs for evidence of an interrupted update or failed cleanup.
- Inspect active maintenance plugins or must-use plugins that may still be forcing a maintenance state intentionally.
- Verify file ownership and write access so WordPress can remove temporary update state and restore normal execution.
- Clear any CDN, server, or plugin caches that may still serve a stale maintenance page after the underlying problem is fixed.
- Disable the responsible maintenance plugin or complete the interrupted plugin update if the site remains blocked.
- Re-test both the public site and wp-admin after the change so you can confirm the maintenance state is truly gone.
- Keep update procedures, plugin maintenance controls, and cache-clearing steps documented so future maintenance windows do not turn into avoidable outages.