How to Monitor a WordPress Site: The Complete Guide
WordPress powers 43% of the web — but it fails in very specific ways. A plugin update breaks the homepage. The database hits its connection limit. PHP throws a fatal error and serves a blank white page. Here's how to catch all of it.
A basic uptime monitor that checks whether your homepage returns 200 will miss most WordPress failures. WordPress has a particular failure signature: the server is up, PHP is running, but the page returns 200 with a blank body or a PHP error message embedded in the HTML. A content check catches this. A status-only check doesn't.
What to monitor on a WordPress site
| Monitor | Check | Catches |
|---|---|---|
| Homepage | HTTP GET, status 200, content check for site name | Outages, white screen of death, fatal errors |
| SSL certificate | SSL expiry monitor | Cert expiry before it causes browser warnings |
| Admin login page | HTTP GET /wp-admin, status 200 or 302 | Admin access issues, plugin-broken admin |
| WP REST API | HTTP GET /wp-json/wp/v2/posts, status 200 | Headless WP issues, API availability |
| Response time | Slow threshold alert (e.g. 3000ms) | Hosting slowdowns, query performance issues |
| Contact/conversion page | HTTP GET key page, status 200 | Plugin-broken forms, broken landing pages |
The content check: your most important WordPress monitor setting
WordPress's most common failure mode is the "white screen of death" — a PHP fatal error that produces a blank page or a page that says "There has been a critical error on this website." The HTTP status code is still 200. A basic monitor doesn't fire.
A content check monitors the response body, not just the status code. Configure your homepage monitor to check for text that only appears on a healthy page — your site name, a navigation item, or a specific string from your header.
If WordPress has a fatal error, the content check fails even though the status code is 200. You get the alert. Without it, you'd find out when a visitor emails you.
In PingBase, set this under Content must contain when creating or editing a monitor. Use something stable — your company name is a safe bet. Avoid dynamic content like post titles or dates that change.
Common WordPress failure modes
Plugin or theme update breaks the site
This is the most common cause of WordPress downtime. A plugin update introduces a PHP conflict or modifies the database schema in a way that crashes the site. The fix is usually deactivating the plugin — but you can only do that if you know it happened.
Caught by: Homepage content check. If the site serves a PHP error or blank page, the content check fails.
Database connection failure
WordPress requires a MySQL/MariaDB connection. If the database server goes down, hits its connection limit, or the credentials change, WordPress serves "Error establishing a database connection." This is a 200 response with an error message in the body.
Caught by: Content check. "Error establishing a database connection" won't contain your site name.
Memory limit exceeded
WordPress has a PHP memory limit. A plugin that leaks memory or processes a large import can hit the limit, causing fatal errors on affected pages. The homepage might be fine while a category page crashes.
Caught by: Monitor the specific pages that are most likely to be affected by heavy plugins (category archives, WooCommerce pages).
SSL certificate expiry
Managed hosting often handles SSL renewal automatically via Let's Encrypt — until it doesn't. Auto-renewal can fail silently if your domain's DNS has changed, if your hosting control panel has a bug, or if the renewal script hasn't run in time.
Caught by: SSL certificate expiry monitor with 30-day advance warning.
Slow response times from caching issues
WordPress without caching can be very slow — 2–8 second page loads are common on underpowered shared hosting. A caching plugin (WP Super Cache, W3 Total Cache, WP Rocket) normally keeps this fast. If the cache gets invalidated or the caching plugin is deactivated, response times spike.
Caught by: Response time threshold alert. Set a threshold at 3–5x your normal cached response time.
Hosting-specific considerations
Shared hosting: Response times vary significantly with shared hosting — your site shares server resources with other sites. Set a generous slow threshold (5+ seconds) and focus on outage detection rather than performance.
Managed WordPress hosting (WP Engine, Kinsta, Flywheel): These providers handle SSL, caching, and updates. Outages are rarer but still happen. A content check on the homepage is the most valuable monitor.
VPS/self-managed: You're responsible for everything. Monitor the homepage, SSL, and response time. Consider also monitoring your server's web server process (nginx/Apache) health endpoint if you've set one up.
WooCommerce sites: Add monitors for your shop page (/shop), cart (/cart), and checkout (/checkout). These are the pages where downtime directly costs revenue.
Complete WordPress monitoring setup in PingBase
-
Homepage monitor
URL:https://yoursite.com
Expected status: 200 | Content check: your site name | Slow threshold: 3000ms -
SSL certificate monitor
Domain:yoursite.com
Alert: 30 days before expiry, again at 7 days -
Admin login monitor
URL:https://yoursite.com/wp-admin
Expected status: 200 or 302 | No content check needed -
Key conversion page (contact/shop/checkout)
URL: the page where your business happens
Expected status: 200 | Content check: a stable string from the page
Four monitors. No code. Takes under 10 minutes to set up. PingBase's free tier covers all four.
Monitor your WordPress site in minutes
Content checks, SSL expiry monitoring, response time alerts. Free for up to 5 monitors — enough for a complete WordPress setup.
Start free →Related
SSL Certificate Monitoring: The Complete Guide
Tracking expiry dates and avoiding certificate outages.
Uptime Monitoring for E-Commerce
Revenue-per-minute tables and WooCommerce stack monitoring.
Alert Fatigue: How to Set Up Smart Notifications
Configure thresholds so WordPress alerts are always actionable.