WordPress uptime monitoring
Point an outside HTTP monitor at a URL that has to run PHP and reach MySQL, not only the cached homepage, and send the alert somewhere you read within minutes; no plugin is required.
WordPress goes down in a few predictable ways. The database stops accepting connections, a plugin update throws a fatal error, or the host runs out of PHP workers under a traffic spike. The first two answer with HTTP 500, as "Error establishing a database connection" and "There has been a critical error on this website", so any monitor that reads the status code catches them.
The trap is caching. A page cache plugin or a CDN can keep serving the homepage as stored HTML, with a 200, while PHP behind it is dead. A monitor watching that homepage reports a perfect week while every login, comment and checkout fails. Jetpack Monitor sends a HEAD request to the homepage every 5 minutes, so it shares that blind spot.
WordPress uptime monitoring plugin, or no plugin
A monitor that runs inside WordPress cannot report WordPress being down, so every real option, Jetpack included, checks from outside servers. Logdash needs nothing installed on the site. The file below is optional: it gives the monitor a route that always runs PHP and queries the database.
<?php
// GET /wp-json/health/v1/check: 200 when PHP runs and MySQL answers.
add_action('rest_api_init', function () {
register_rest_route('health/v1', '/check', [
'methods' => 'GET',
'permission_callback' => '__return_true',
'callback' => function () {
global $wpdb;
$ok = $wpdb->get_var('SELECT 1') === '1';
$response = new WP_REST_Response(['ok' => $ok], $ok ? 200 : 503);
$response->header('Cache-Control', 'no-store');
return $response;
},
]);
});Create the mu-plugins folder if it does not exist. Must-use plugins load on every request with no activation step, and nobody can switch them off from the dashboard by accident. On plain permalinks the URL is /?rest_route=/health/v1/check. If your cache plugin caches REST responses, exclude this path. The route skips the theme, so a fatal error inside a template only shows on real pages. On an uncached site the homepage is the better URL; on a cached one, watch both as two services.
- Add the monitor Create a service in Logdash and paste the health URL, or the homepage if you skipped the file. The free plan covers five sites checked every 5 minutes, Builder checks every minute for $9 a month, Pro every 15 seconds for $15.
- Connect Telegram Add the channel once and every site can use it. A webhook works too if alerts should go through your own handler.
- Break staging on purpose Put a wrong DB_PASSWORD in wp-config.php on a staging copy. WordPress answers 500, the monitor flips to down on the next check, and a Telegram alert arrives with the status code and the first lines of the error page.
WordPress downtime monitoring beyond the 500
Not every outage is a clean error page. When the host runs out of PHP workers, requests queue until the web server gives up with a 502 or 504, or they simply hang. Logdash counts any status outside 200 to 399 as down, and a request with no answer after 10 seconds as well, so both shapes trip the monitor. A site that is merely slow stays up, and the response time chart shows the climb, so check it after every plugin update.
Jetpack downtime monitor, honestly
If Jetpack is already on the site, its monitor is the cheapest answer there is: free, one toggle, alerts by email and the mobile apps. The limits are in the details. It only checks the homepage, the email only goes to the account that connected Jetpack, and it stops working when that connection breaks. Logdash fits when you want the check to hit a route of your choosing and the alert in Telegram.
Logdash vs Jetpack Monitor
| Feature | Logdash | Jetpack Monitor |
|---|---|---|
| Free plan | Five sites | Free on every site running Jetpack |
| Free check interval | Every 5 minutes | Every 5 minutes |
| Faster checks | Every minute on Builder, 15 seconds on Pro | Every minute with the paid upgrade in Jetpack Manage |
| What gets checked | Any URL you choose, so the check can skip the page cache | A HEAD request to the homepage |
| Needs on the site | Nothing | The Jetpack plugin and a working WordPress.com connection |
| Alert channels | Telegram and webhook | Email and app push, SMS and extra recipients on the upgrade |
When Jetpack Monitor is the better pick
- Jetpack is already installed and connected. Turning on the monitor is one toggle and costs nothing.
- You want alerts by email. Logdash does not send email.
- You run client sites from Jetpack Manage and want downtime in the same dashboard as their backups and updates.