DEV Community

Vigilmon
Vigilmon

Posted on

How to Monitor Your WordPress Site with Vigilmon

How to Monitor Your WordPress Site with Vigilmon

WordPress powers over 43% of all websites on the internet — from personal blogs to enterprise e-commerce stores. But despite its ubiquity, WordPress is surprisingly fragile under load: plugin conflicts, PHP timeouts, database connection failures, and shared hosting throttling can take your site down with zero warning.

This guide shows you how to monitor your WordPress site with Vigilmon — from basic uptime checks to database health and plugin-induced outages.


Why WordPress Needs Dedicated Monitoring

WordPress sites fail in ways that most uptime monitors miss:

  • PHP fatal errors — a bad plugin update returns a blank white page (500 status) while the domain still resolves
  • Database connection failures — WordPress shows "Error establishing a database connection" instead of your site
  • Memory exhaustionWP_MEMORY_LIMIT exceeded causes silent failures for specific pages
  • Caching layer failures — WP-Rocket or W3 Total Cache serving stale or broken responses
  • SSL certificate expiry — Let's Encrypt auto-renewal fails; browser warnings drive visitors away

Step 1: Add an HTTP(S) Monitor for Your Homepage

The most fundamental check:

  1. Log in to vigilmon.online and click Add Monitor
  2. Set type to HTTP(S)
  3. Enter your URL: https://yourdomain.com
  4. Set interval: 60 seconds
  5. Alert if: HTTP status is not 200, or response time > 5000ms (WordPress is slower than most apps)
  6. Configure email or Slack alerts

Vigilmon checks from multiple global regions — if your site is down in Australia but not the US, you'll know.


Step 2: Monitor a Critical Inner Page

Your homepage may be cached and fast while a critical page — like your checkout, contact form, or membership area — is returning errors.

Add a second monitor for:

  • /checkout or /cart (WooCommerce)
  • /wp-login.php (check your login page hasn't broken)
  • /contact or /pricing

This catches plugin conflicts that only affect specific post types or templates.


Step 3: Monitor SSL Certificate Expiry

WordPress runs on HTTPS. An expired certificate causes browser warnings that drive 100% of visitors away.

  1. Add a monitor with type SSL Certificate
  2. Enter: yourdomain.com
  3. Alert if: certificate expires in < 14 days

This is especially important if you use Let's Encrypt via cPanel or Certbot — silent renewal failures are common.


Step 4: Add a WordPress Health Check Endpoint

WordPress 6.x includes a Site Health API. You can expose a lightweight endpoint by adding this to a custom plugin or your theme's functions.php:

// In functions.php or a custom plugin
add_action('rest_api_init', function () {
    register_rest_route('health/v1', '/check', [
        'methods' => 'GET',
        'callback' => function () {
            global $wpdb;
            // Check database connection
            $db_ok = ($wpdb->get_var('SELECT 1') === '1');
            return new WP_REST_Response([
                'status' => $db_ok ? 'ok' : 'degraded',
                'db' => $db_ok,
                'php_version' => PHP_VERSION,
                'wp_version' => get_bloginfo('version'),
            ], $db_ok ? 200 : 503);
        },
        'permission_callback' => '__return_true',
    ]);
});
Enter fullscreen mode Exit fullscreen mode

Now monitor https://yourdomain.com/wp-json/health/v1/check — this endpoint validates your database connection and returns 503 if the DB is down.


Step 5: Monitor Your WP-CLI Heartbeat (Advanced)

For critical WordPress sites on a VPS or dedicated server, add a cron-based heartbeat monitor:

# /etc/cron.d/wordpress-health
*/5 * * * * www-data wp --path=/var/www/html eval 'echo "ok";' 2>/dev/null && curl -sf https://hb.vigilmon.online/YOUR-HEARTBEAT-ID > /dev/null
Enter fullscreen mode Exit fullscreen mode

This pings Vigilmon every 5 minutes only if WP-CLI can bootstrap WordPress successfully. If Vigilmon doesn't receive the ping, it fires an alert — catching scenarios where PHP is broken but Nginx is returning a cached page.


WordPress Monitoring Coverage Table

Monitor Type URL Alert Condition
HTTP(S) https://yourdomain.com Status != 200
HTTP(S) https://yourdomain.com/checkout Status != 200 or > 5s
SSL Certificate yourdomain.com Expires in < 14 days
HTTP(S) /wp-json/health/v1/check Status != 200
Heartbeat WP-CLI cron No ping in > 6 minutes

Common WordPress Failure Patterns Vigilmon Catches

Plugin update breaks checkout: A WooCommerce plugin update caused the cart page to return 500. The homepage (cached by WP-Rocket) showed green in browser — but the cart monitor fired within 60 seconds.

Database connection lost: MySQL went OOM on a shared host at 2 AM. The health endpoint returned 503. Vigilmon paged the team before morning traffic hit.

SSL cert expired: Certbot auto-renewal failed silently 14 days before expiry. Vigilmon's SSL monitor fired with 14 days to spare — renewed before any user saw a warning.


Conclusion

WordPress monitoring doesn't need to be complex. With Vigilmon, you get HTTP uptime, SSL certificate tracking, and custom health endpoint monitoring — all in one dashboard, no infrastructure required.

Start monitoring your WordPress site free at vigilmon.online

Top comments (0)