Why no WordPress plugin can tell you your site is down
- basics
- wordpress
Search the plugin directory for "uptime" and you will find a good number of plugins that promise to watch your site and tell you the moment it stops working. Install one, and it does look like it is doing that. There is a settings page, a check interval, somewhere to put your email address.
It cannot work, and the reason is worth understanding before you rely on it.
A plugin is code your site runs
WordPress plugins are PHP. PHP runs when a request arrives at your server, your web server hands that request to PHP, and PHP boots WordPress. That is the only time your plugin's code exists at all. It is not a program sitting in memory watching things. It runs, it produces a page, it stops.
So consider what "your site is down" actually means. Your host has an outage. The server is unreachable, or the web server is refusing connections, or PHP is failing to start, or the database it depends on is gone. A request arrives and nothing answers it.
In every one of those cases, the code that was supposed to notice the problem is part of the thing that is broken. The plugin does not run, so it does not check, so it does not send anything. The moment you most need it is precisely the moment it is guaranteed to be silent.
This is not a limitation of any particular plugin. It is not something better engineering fixes. A watchman who is locked inside the building cannot tell you the building is on fire.
What those plugins are actually doing
Mostly one of two things, and both are reasonable as long as you know which one you have got.
Some of them use WP-Cron to check other things - a third-party API you depend on, an external service, another site of yours. That is genuinely useful, and it works, because the thing being checked is not the thing doing the checking. It just cannot be pointed at itself.
The others are clients for an external service, the way an email app is a client for your mail server. The checking happens elsewhere, on machines that have nothing to do with your host, and the plugin shows you what those machines found. That is a real answer to the problem. It is also, in fairness, less exciting to describe on a listing page, which is probably why so few of them say so plainly.
The distinction matters when you are choosing. Ask one question: if my server were switched off right now, would this still work? If the answer is no, it is not monitoring your uptime, whatever the settings page implies.
What actually watching a site looks like
Something outside your infrastructure has to make the request. It asks for your page on a schedule, from a machine you do not own, on a network you do not control. When your site stops answering, that machine is still running, so it can still tell you.
A few properties follow from that, and they are the things worth comparing between services rather than the numbers on the pricing page:
More than one location. A single probe cannot tell "your site is down" apart from "the route between this one machine and your site is down". Two probes on different networks disagreeing is information; one probe is a guess.
More than one kind of check. A server can answer with a perfectly healthy 200 and still be serving a database error, or an empty page, or a checkout form that no longer submits. A keyword check reads the response and looks for something that should be there. Certificate expiry is its own category of outage and one of the few that arrives on a known date.
A record you can look at afterwards. Most outages are short and happen while you are asleep. The useful question is rarely "is it down right now" - you would know. It is "did anything happen last night, and how often is this happening".
Where the plugin comes back in
Once the checking lives outside your site, a plugin has an honest job: showing you the results where you already are.
That is what ours does, and we say so on the listing in about as many words. It is a viewer, not a monitor. YoPingMe's probes do the checking from outside; the plugin puts a widget on your dashboard with each monitor's current state and its uptime over the last day, week and month, and it tells you when the numbers were read rather than pretending they are live. If an outage happened while you were away, it says so at the top of wp-admin the next time you log in - how long, when, and what the check saw.
None of that makes the plugin a monitor, and if your site is down while you are reading this, the plugin is not running either. The difference is that something else was.
If you want to try it, the plugin is in the directory and the free plan covers ten monitors at five-minute intervals, which is usually enough for somebody's own sites or a small client roster.
And if you would rather use something else entirely, that is fine - use the question above on whatever you pick. The thing you are looking for is a service that keeps running when your server does not.