DEV Community

Vigilmon
Vigilmon

Posted on

How to Monitor Your WooCommerce Store Uptime and Performance

How to Monitor Your WooCommerce Store Uptime and Performance

WooCommerce powers nearly 40% of all online stores globally. If your WooCommerce store goes down — even for 15 minutes — you lose sales, damage SEO rankings, and erode customer trust. Most store owners only find out their site is down when a customer complains or they check their sales dashboard and see a gap.

This guide shows how to proactively monitor your WooCommerce store with Vigilmon so you're alerted the moment something goes wrong.


What Can Go Wrong with WooCommerce?

WooCommerce stores have more failure points than a simple website:

  • PHP memory exhaustion — WooCommerce is memory-hungry; exceeding memory_limit kills the store
  • Database connection failures — MySQL/MariaDB issues return blank pages or 500 errors
  • Plugin conflicts — a bad plugin update can bring down the entire store
  • Payment gateway timeouts — Stripe/PayPal connectivity failures break checkout silently
  • File permission issues — WordPress can't write to uploads, breaking product images
  • SSL expiry — HTTPS failure kills any trust-sensitive shopping experience immediately
  • Hosting resource limits — shared hosting CPU throttling during traffic spikes

Step 1: Monitor Your Store Homepage

Start with the simplest check:

  1. Sign up at vigilmon.online
  2. Click Add Monitor → HTTP(S)
  3. URL: https://yourstore.com
  4. Interval: 60 seconds
  5. Alert: HTTP status != 200 or response time > 5000ms (WooCommerce can be slower than pure static sites)
  6. Alert channels: email + SMS

This catches your web server being down, WordPress fatal errors, and major database issues.


Step 2: Monitor the Product Page

Sometimes the homepage works (it's cached) but product pages are broken (dynamic). Monitor a real product:

  • https://yourstore.com/shop — shop listing
  • https://yourstore.com/product/your-top-product/ — individual product
  • https://yourstore.com/cart/ — cart page

Add each as a separate HTTP(S) monitor. A 500 error on /cart/ means customers can't purchase even if the homepage looks fine.


Step 3: Monitor the Checkout Flow

The most critical page is checkout. Monitor it:

  • https://yourstore.com/checkout/ — if this returns 500/302 unexpectedly, sales stop

Set a more sensitive alert threshold here: response time > 3000ms is worth a warning; > 8000ms needs immediate attention.


Step 4: Monitor SSL Certificate

For an online store, SSL is mandatory — customers won't enter payment info on an HTTP page.

  1. Add Monitor → SSL Certificate
  2. Domain: yourstore.com
  3. Alert: expires < 21 days (extra buffer for a store — you want time to fix this without panic)

Step 5: Add a WooCommerce Health Check Endpoint

For more precise monitoring, add a health check that tests database connectivity:

<?php
// wp-content/mu-plugins/health-check.php

add_action('init', function() {
    if (isset($_SERVER['REQUEST_URI']) && $_SERVER['REQUEST_URI'] === '/wp-health') {
        header('Content-Type: application/json');

        $db_ok = false;
        try {
            global $wpdb;
            $wpdb->get_var('SELECT 1');
            $db_ok = ($wpdb->last_error === '');
        } catch (Exception $e) {
            $db_ok = false;
        }

        $status = $db_ok ? 'ok' : 'error';
        $code = $db_ok ? 200 : 503;

        status_header($code);
        echo json_encode([
            'status' => $status,
            'db' => $db_ok ? 'connected' : 'error',
            'woocommerce' => class_exists('WooCommerce') ? 'active' : 'inactive',
        ]);
        exit;
    }
});
Enter fullscreen mode Exit fullscreen mode

Now monitor https://yourstore.com/wp-health — it tests WordPress and database simultaneously.


Step 6: Monitor Payment Connectivity (Advanced)

For a SaaS-backed health check, add a lightweight payment gateway test to your health endpoint:

// Check if Stripe API is reachable (don't make real requests — just check connectivity)
$stripe_ok = false;
try {
    $ctx = stream_context_create(['http' => ['timeout' => 3]]);
    $result = @file_get_contents('https://api.stripe.com', false, $ctx);
    // Stripe returns 200 on root URL (redirects to docs)
    $stripe_ok = ($result !== false);
} catch (Exception $e) {
    $stripe_ok = false;
}
Enter fullscreen mode Exit fullscreen mode

Step 7: Set Up a Status Page for Customers

Vigilmon lets you create a public status page at status.vigilmon.online/your-store.

Share this URL in your store footer and support emails — when customers ask "is your site down?", they can self-check without emailing you.


Recommended WooCommerce Monitor Setup

Monitor URL Alert
Homepage https://yourstore.com status != 200, latency > 5s
Shop listing https://yourstore.com/shop status != 200
Checkout https://yourstore.com/checkout status != 200, latency > 3s
Health check https://yourstore.com/wp-health status 503
SSL Certificate yourstore.com expires < 21 days

Conclusion

Every minute of WooCommerce downtime costs you sales. Vigilmon catches outages in under 2 minutes and alerts you across email and Slack — so you fix the problem before most customers notice.

Start monitoring your WooCommerce store with Vigilmon — free to start

Top comments (0)