WordPress Uptime Monitoring: What to Check

A WordPress plugin can't alert you when WordPress itself is down.

WordPress uptime monitoring: what to monitor (homepage, wp-admin, REST API, wp-cron) and why hosted monitoring beats plugin-based checks.

What to monitor on a WordPress site

A WordPress site has several distinct surfaces, and each can fail independently. The homepage (front-end PHP rendering) is the obvious one, but it's the least informative — a cached homepage can return 200 while wp-admin is broken and the database is down. Monitor the homepage with an HTTP check, but don't stop there.

Add a check on `wp-login.php` or `wp-admin/`: these hit the database and render PHP uncached, so they're a much better signal of real health. If you use the REST API (`/wp-json/`), monitor it separately — a plugin can break the API while the front-end still works. And monitor `wp-cron.php` indirectly via a heartbeat, because wp-cron only runs when someone visits the site and scheduled tasks (backups, post publishing, plugin updates) silently stop when it's broken.

Plugin-based monitoring vs hosted monitoring

WordPress uptime monitoring plugins (WP Crontrol, Health Check, various uptime plugins) run inside WordPress itself. That's the problem: when WordPress goes down — a fatal PHP error, a bad plugin update, a database outage — the monitoring plugin goes down with it. The plugin can't alert you to the very outage that killed it. It's like asking a smoke detector to call the fire department when the smoke detector itself is on fire.

Hosted monitoring (an external service checking your site from outside) doesn't have this failure mode. SurePing runs from its own infrastructure and checks your WordPress site over HTTP, so a PHP fatal, a database failure, or a white-screen-of-death still triggers an alert. Use WordPress plugins for in-site diagnostics (the Health Check tool, query monitoring); use an external service for uptime alerting.

Setting up the right checks

For a typical WordPress site, set up three monitors: an HTTP check on the homepage (catches front-end outages), an HTTP or keyword check on `wp-login.php` (catches database and PHP failures that caching hides), and a heartbeat monitor for wp-cron (replace wp-cron's internal scheduling with a real cron job that pings a heartbeat URL, so you know when scheduled tasks stop running). Add an SSL monitor if you're on HTTPS — which you should be.

SurePing supports all of these on every plan, including Free. The keyword check on `wp-login.php` can look for the login form's presence (absence check) so you catch the white screen of death, which returns a 200 with an empty body that plain HTTP monitoring would miss.

Monitor this with SurePing

SurePing includes this monitor type on every plan — including the free tier.

Related