tutorial

How to Monitor Your WordPress Site with Vigilmon

Keep your WordPress site online and your visitors informed — set up uptime monitoring, threshold alerts, and Slack webhooks with Vigilmon in under 10 minutes.

WordPress powers over 40% of the web, which makes it a high-value target for outages. A slow host, a rogue plugin update, or a database connection failure can take your site down silently while visitors — and search engines — notice before you do. Vigilmon monitors your WordPress URL from multiple regions and alerts you the moment it goes down, so you can react before it costs you traffic, leads, or sales.

What You'll Set Up

  • Vigilmon HTTP monitor for your WordPress homepage
  • A custom health-check endpoint plugin (optional but recommended)
  • Alert thresholds for response time and downtime
  • A Slack webhook channel so your team gets notified instantly

Prerequisites

  • A live WordPress site (self-hosted or managed)
  • A free Vigilmon account
  • Admin access to your WordPress dashboard (for the optional health plugin)

Why WordPress Uptime Monitoring Matters

WordPress sites have more failure points than a static site: PHP runtime, MySQL/MariaDB, wp-cron, plugin conflicts, and object caches all interact at runtime. When any of these breaks, the site may return a 500 error, a blank white screen, or a timeout — none of which will trigger an alert in your hosting control panel.

External uptime monitoring from Vigilmon checks your site the same way a user does: by making an HTTP request from multiple geographic probes and verifying a successful response. It does not rely on your server's internal health — if the front door is broken, Vigilmon knows.


Step 1: Add Your WordPress URL to Vigilmon

  1. Log in to vigilmon.online and click Add Monitor.
  2. Set the Type to HTTP / HTTPS.
  3. Enter your WordPress URL — for most sites this is https://yourdomain.com. If you run a subdirectory install, use the full path: https://yourdomain.com/blog/.
  4. Set Check interval to 1 minute (the default).
  5. Set Expected status code to 200. WordPress returns 200 on a healthy home page.
  6. Click Save.

Vigilmon will begin probing your URL from multiple regions. Within a minute you'll see the first response time appear on the monitor dashboard.


Step 2: Add a Custom Health-Check Endpoint (Recommended)

The WordPress homepage is a good smoke-test, but it involves PHP template rendering, database queries, and plugin initialisation. A lightweight health endpoint gives you a faster, more reliable signal.

Create a file at wp-content/mu-plugins/vigilmon-health.php — must-use plugins load on every request without activation:

<?php
/**
 * Vigilmon health-check endpoint.
 * Accessible at: /wp-json/vigilmon/v1/health
 */
add_action('rest_api_init', function () {
    register_rest_route('vigilmon/v1', '/health', [
        'methods'             => 'GET',
        'callback'            => 'vigilmon_health_check',
        'permission_callback' => '__return_true',
    ]);
});

function vigilmon_health_check() {
    $checks = [];
    $status  = 'ok';

    // Database check
    global $wpdb;
    $result = $wpdb->get_var('SELECT 1');
    if ($result === '1') {
        $checks['database'] = 'ok';
    } else {
        $checks['database'] = 'error';
        $status = 'degraded';
    }

    // Object cache check (optional — remove if no object cache)
    if (function_exists('wp_cache_get')) {
        $key = 'vigilmon_probe_' . time();
        wp_cache_set($key, 1, '', 5);
        $checks['cache'] = wp_cache_get($key) === 1 ? 'ok' : 'miss';
    }

    $http_status = $status === 'ok' ? 200 : 503;

    return new WP_REST_Response([
        'status' => $status,
        'checks' => $checks,
        'php'    => PHP_VERSION,
        'wp'     => get_bloginfo('version'),
    ], $http_status);
}

Once the file is saved, visit https://yourdomain.com/wp-json/vigilmon/v1/health in your browser. You should see JSON like:

{
  "status": "ok",
  "checks": {
    "database": "ok",
    "cache": "ok"
  },
  "php": "8.2.10",
  "wp": "6.5.3"
}

Now add a second monitor in Vigilmon pointing to this endpoint. Set the Expected body contains field to "status":"ok" — Vigilmon will alert you even if the server returns 200 but the database is failing.


Step 3: Configure Alert Thresholds

Vigilmon lets you set thresholds beyond simple up/down:

Response Time Alert

Slow WordPress is bad for SEO and conversions. Set a response time warning:

  1. Open your monitor settings and find Response time threshold.
  2. Set Warn to 800ms and Critical to 2000ms.
  3. Save.

If your site starts responding slowly due to a plugin conflict, high database load, or PHP-FPM exhaustion, you'll get a warning alert before users start bouncing.

Consecutive Failures Before Alert

Vigilmon uses multi-region consensus — it only alerts when a quorum of probes agree the site is down. This eliminates single-probe network blips. You can additionally tune consecutive failures before alert (default: 2) to further reduce noise on sites with occasional slow responses.


Step 4: Set Up a Slack Webhook Alert

Get your team notified in Slack the moment your WordPress site goes down.

Create a Slack Incoming Webhook

  1. Go to api.slack.com/apps and click Create New AppFrom scratch.
  2. Give it a name (e.g. "Vigilmon Alerts") and select your workspace.
  3. Under Features, click Incoming Webhooks and toggle it on.
  4. Click Add New Webhook to Workspace, choose the channel (e.g. #site-alerts), and click Allow.
  5. Copy the webhook URL — it looks like https://hooks.slack.com/services/T.../B.../xxx.

Add the Webhook to Vigilmon

  1. In Vigilmon, go to Alert ChannelsAdd ChannelWebhook.
  2. Name it Slack – site-alerts.
  3. Paste the Slack webhook URL.
  4. Set the Payload format to the Slack-compatible JSON body:
{
  "text": "🚨 *{{monitor_name}}* is {{status}}!\nURL: {{url}}\nRegion: {{region}}\nTime: {{timestamp}}"
}
  1. Click Save and then Test — you should see a test message in your Slack channel.

Now attach this channel to your WordPress monitors under Monitor Settings → Alert Channels.


Step 5: Verify the Full Setup

  1. Simulate downtime: Temporarily point your monitor at a non-existent path (e.g. /vigilmon-test-404) and confirm an alert fires to Slack and email.
  2. Restore: Switch the URL back and confirm recovery notification arrives.
  3. Check the dashboard: Vigilmon's monitor dashboard shows uptime percentage, response time history (with period selector), and recent incidents — bookmark it for on-call reference.

Going Further

  • wp-cron monitoring: WordPress's built-in cron runs on page visits. If traffic drops, scheduled tasks stop. Add a Vigilmon cron heartbeat and ping it from a real cron job: */5 * * * * curl -s https://vigilmon.online/heartbeat/YOUR_TOKEN.
  • Staging environment: Add a second set of monitors for your staging URL so you catch issues before deploying.
  • Status page embed: Vigilmon provides embeddable status badges — add one to your site footer or support page so users can self-serve status checks during incidents.

Your WordPress site is now covered end-to-end: external uptime checks, deep database health, response time thresholds, and instant Slack alerts when anything breaks.

Monitor your app with Vigilmon

Free plan — 5 monitors, no credit card required. Up and running in 60 seconds.

Start free →