wp-content/plugins/semaphore/semaphore.php
Semaphore
A maintenance page that returns the right status code and lets your own IP straight through.
== Description ==
A maintenance page that returns 200 tells search engines your site now consists of the words “back soon”. Semaphore returns 503 with a Retry-After header, which is the response that exists for exactly this situation and which crawlers handle correctly.
The allowlist reads forwarded headers when you tell it your proxy is trustworthy, and refuses to by default. Trusting X-Forwarded-For unconditionally is how an allowlist becomes an anyone-list.
The page itself inherits your theme’s colours and typefaces, is a single request with no external assets, and passes contrast checks in both schemes.
== Screenshots ==
Numbered the way they ship in /assets/. Click any one to see it full width.
== Installation ==
- Install and activate the plugin.
- Add your own address to the allowlist before enabling maintenance mode.
- Enable it under Settings → Semaphore.
Logged-in administrators always pass, so locking yourself out takes real effort.
== Frequently asked questions ==
Coming-soon or maintenance?
Both. Coming-soon returns 200 because the site is new; maintenance returns 503 because the site exists and is temporarily away.
Does it work with page caching?
Only if your cache respects 503. Most do; the readme lists the two that need a rule.
== Changelog ==
= 2.3.0 =
- Retry-After is now calculated from the scheduled end time rather than being a fixed hour.
- Maintenance page passes AA contrast in both light and dark schemes.
= 2.1.0 =
- Forwarded-header trust is now explicit and off by default.