Better Maintenance Mode
Lightweight, feature-rich Maintenance Mode plugin for WordPress with UX as a primary focus.
by Oliver Westbrook · github.com/oliverwestbrook/better-maintenance-mode
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/oliverwestbrook/better-maintenance-mode/archive/refs/heads/main.zipReadme
Better Maintenance Mode
A lightweight WordPress maintenance-mode plugin. Flip one toggle and logged-out visitors get a clean, correct 503 "be right back" page while you work, while administrators always see the live site. It also handles cron-free scheduled starts, a "prepare for downtime" standby mode that eases live visitors through the switch, and live auto-reload the moment you're back online.
Status: preparing for submission to the WordPress.org plugin directory. Developed in the open here.
Features
- One-click maintenance toggle — saves instantly over AJAX, no page reload.
- Custom header / footer HTML and messages — fully brand the maintenance page (editable by administrators only).
- Correct 503 +
Retry-After— search engines treat the downtime as temporary rather than as a broken site. - Live auto-reload — visitors are returned to the live site automatically when you switch back, after a brief "back online" animation. No manual refresh.
- Scheduled start, cron-free — maintenance state is computed on each request, so it doesn't depend on WP-Cron firing on a quiet site.
- Prepare for downtime (standby mode) — logged-out visitors already browsing get a reassuring overlay the instant maintenance kicks in, then a smooth handoff to the maintenance page instead of an abrupt cut-off.
- WooCommerce-aware — cart and checkout shoppers get a tailored standby note.
- Test Mode — preview the whole flow (switch, schedule, standby) as a logged-in admin without affecting public visitors.
- Light / dark admin UI, no build step, no external requests, no tracking.
Installation
Manual
- Clone or download this repository into
wp-content/plugins/better-maintenance-mode/. - Activate Better Maintenance Mode from the Plugins screen.
- Open Tools → Maintenance Mode and configure.
Once published it will also be installable from the WordPress.org plugin directory.
How it's built
A deliberately small, dependency-free plugin:
- Schema-driven settings — every setting is declared in a single array
(
inc/settings-schema.php); a registry handles get / save / sanitize and renders per-type field partials, so adding a setting is a one-block edit. - Thin feature classes, all markup in templates — classes under
inc/register WordPress hooks; HTML lives intemplates/. - Cron-free scheduling —
bmm_is_enabled()computes maintenance state on each front-end request and status poll, so timing doesn't rely on WP-Cron. - REST + AJAX — a public, read-only
/statusendpoint powers the visitor auto-reload and the standby polling; admin toggles save overadmin-ajax. - Vanilla JS/CSS — no build tooling; assets enqueue only on the pages that need them.
- Internationalization-ready — text domain wired and translations auto-loaded.
Frequently asked
See the full FAQ in readme.txt (the WordPress.org listing copy).
License
GPL-2.0-or-later — the same license as WordPress.