Type something to search...
How to monitor WordPress website uptime?

How to monitor WordPress website uptime?

To monitor WordPress website uptime, you sign up for an external uptime monitoring service such as UptimeRobot, Better Stack, Pingdom, or Jetpack's Downtime Monitor, add your site's URL, and choose how you want to be alerted, for example by email, SMS, Slack, or a mobile app. The service then checks your site every few minutes from servers around the world and notifies you as soon as it stops responding or returns an error.

Uptime monitoring is one of those simple, inexpensive habits that pays off the first time something goes wrong. Instead of hearing about an outage from a frustrated customer hours later, you know within minutes. In this guide, you'll learn what uptime monitoring is, why it has to run outside your server, which tools to use, how to set up checks that catch real WordPress problems, and what to do when you get an alert.

What Is Uptime Monitoring?

Uptime is the percentage of time your website is available and working. Uptime monitoring is the process of checking your site at regular intervals to confirm it's online and responding correctly.

A monitoring service sends a request to your site, typically every one to five minutes, and looks at the response. If the site doesn't respond, responds too slowly, or returns an error code like 500 or 503, the service usually double-checks from another location and then sends you an alert. When the site recovers, it tells you that too, along with how long it was down.

Why Uptime Monitoring Matters

Every minute your site is down can cost you something:

  • Lost visitors and sales: Visitors who can't load your site often go elsewhere, and online stores lose orders directly.
  • Damaged trust: A site that's frequently unavailable looks unreliable, especially for businesses.
  • SEO impact: Brief outages are normal and rarely matter, but frequent or long ones can affect how search engines crawl and rank your site.
  • Hidden problems: Outages are often a symptom of something else, such as an expired domain, a failed update, a hacked site, or a hosting issue.
  • Holding your host accountable: Many hosts promise uptime such as 99.9% in their service level agreements. Monitoring gives you your own record.

To put uptime percentages in perspective, here's roughly how much downtime each level allows:

UptimeApproximate Downtime per MonthApproximate Downtime per Year
99%About 7 hours 18 minutesAbout 3.65 days
99.9%About 44 minutesAbout 8 hours 46 minutes
99.95%About 22 minutesAbout 4 hours 23 minutes
99.99%About 4 minutesAbout 53 minutes

Why Monitoring Must Run Outside Your Server

It might seem logical to install a plugin that checks your site from inside WordPress. But if your server goes down, that plugin goes down with it and can't tell you anything. The same is true if PHP crashes, the database fails, or your host has a network problem.

Reliable uptime monitoring always runs from an external service on separate infrastructure. WordPress plugins that offer uptime monitoring, such as Jetpack, work by connecting your site to an external service that does the actual checking.

Types of Uptime Checks

Most monitoring services offer several types of checks:

  • HTTP(S) check: Requests a URL and checks the status code. A 200 OK response means the site is up. This is the most common check.
  • Keyword check: Requests a page and looks for a specific word or phrase in the HTML, or confirms an error phrase is absent. This catches problems a status code alone might miss.
  • Ping check: Sends an ICMP ping to see if the server is reachable. It confirms the server is online, not that WordPress is working.
  • Port check: Checks whether a specific port, such as 443 for HTTPS, is open.
  • SSL certificate monitoring: Warns you before your SSL certificate expires.
  • Domain expiry monitoring: Warns you before your domain registration expires.
  • Heartbeat or cron monitoring: Instead of the service checking your site, your site checks in with the service on a schedule. If the check-in doesn't arrive, you get an alert. This is great for making sure backups and scheduled tasks actually run.

Why Keyword Checks Matter for WordPress

WordPress can fail in ways that still return a 200 status code. A caching layer might serve an old page while PHP is broken behind it, a plugin conflict can produce a blank page, or a hacked site can display spam content. A keyword check that looks for a phrase that should always appear, such as your site name in the footer, catches these silent failures.

Popular Uptime Monitoring Tools

Here are some well-known options. Features and free plan limits change over time, so check each provider's current plans.

  • UptimeRobot: One of the most popular choices, with a free plan that covers a good number of monitors at a five-minute interval. Paid plans add faster checks, more alert channels, and status pages.
  • Better Stack (formerly Better Uptime): Combines uptime monitoring, incident management, on-call scheduling, and attractive status pages, with a free tier.
  • Pingdom: A long-established commercial service with uptime monitoring, page speed testing, and real user monitoring.
  • Jetpack Downtime Monitor: Included free with Jetpack. It checks your site and emails you when it goes down and comes back up.
  • StatusCake: Offers uptime, page speed, SSL, and domain monitoring with a free tier.
  • Healthchecks.io: Specializes in heartbeat monitoring for cron jobs and scheduled tasks.
  • ManageWP and MainWP: WordPress management tools that include uptime monitoring alongside updates and backups for multiple sites.

Many managed WordPress hosts also include uptime monitoring in their dashboards. That's useful, but it's worth having an independent monitor too, since you want an outside view when the host itself has a problem.

How to Set Up Uptime Monitoring With UptimeRobot

UptimeRobot is a good starting point for most people. Here's how to set it up:

  1. Create an account: Sign up at UptimeRobot and verify your email address.

  2. Add a new monitor: From the dashboard, click Add New Monitor (or New monitor).

  3. Choose the monitor type: Select HTTP(s) for a standard website check, or Keyword if you want to check for specific text on the page.

  4. Enter your details: Give the monitor a friendly name, such as "My Blog Homepage," and enter the full URL, including https://.

  5. Set the check interval: Choose how often to check. Five minutes is common on free plans, and paid plans can go as low as a minute or less.

  6. Choose alert contacts: Select how you want to be notified, such as email, the mobile app, SMS, Slack, Microsoft Teams, Discord, Telegram, or a webhook.

  7. Create the monitor: Save it. The first check usually runs right away.

  8. Add more monitors: Repeat for other important URLs, and consider adding SSL and domain expiry monitoring if your plan includes them.

How to Set Up Jetpack Downtime Monitor

If you already use Jetpack, its monitor is quick to enable:

  1. Install and connect Jetpack: Go to Plugins > Add New Plugin, install Jetpack, activate it, and connect it to a WordPress.com account.

  2. Enable Downtime Monitoring: Go to Jetpack > Settings > Security and turn on Monitor your site's uptime (the exact wording may vary between Jetpack versions).

  3. Confirm alerts: Jetpack sends alerts to the email address of your connected WordPress.com account. You can also enable notifications in the Jetpack mobile app.

Jetpack's monitor is simple and free, but it offers fewer options than dedicated services, so it's a good starting point rather than a complete solution for business-critical sites.

What to Monitor on a WordPress Site

Monitoring only your homepage is a good start, but it can miss problems. If your homepage is heavily cached, it might load fine while the rest of your site is broken. Consider monitoring:

  • Homepage: Your main public-facing page.
  • An uncached page: A page that bypasses the cache shows whether PHP and the database are working. Your login page at /wp-login.php is a common choice, though some security setups restrict it.
  • Critical business pages: Such as your shop, checkout, contact page, or booking page.
  • The REST API: Checking /wp-json/ confirms that WordPress itself is responding, which matters for headless setups and many plugins.
  • SSL certificate and domain expiry: Expired certificates and domains are among the most avoidable causes of downtime.
  • Scheduled tasks: Use heartbeat monitoring for backups and other important cron jobs.

Creating a Custom Health Check Endpoint

For a more accurate check, you can create a lightweight endpoint that confirms WordPress and the database are both working. The monitoring service then checks this URL instead of, or as well as, your homepage.

Here's an example using the REST API. Add it to a small custom plugin so it doesn't depend on your theme:

<?php
/**
 * Plugin Name: Sajjad Health Check
 * Description: Adds a simple health check endpoint for uptime monitoring.
 * Version: 1.0.0
 */

if ( ! defined( 'ABSPATH' ) ) {
    exit;
}

function sajjad_register_health_route() {
    register_rest_route(
        'sajjad/v1',
        '/health',
        array(
            'methods'             => WP_REST_Server::READABLE,
            'callback'            => 'sajjad_health_check',
            'permission_callback' => '__return_true',
        )
    );
}
add_action( 'rest_api_init', 'sajjad_register_health_route' );

function sajjad_health_check() {
    global $wpdb;

    $db_ok = ( '1' === (string) $wpdb->get_var( 'SELECT 1' ) );

    $response = new WP_REST_Response(
        array(
            'status'   => $db_ok ? 'ok' : 'error',
            'database' => $db_ok ? 'ok' : 'error',
        ),
        $db_ok ? 200 : 503
    );

    $response->header( 'Cache-Control', 'no-store, no-cache, must-revalidate' );

    return $response;
}

Your monitoring URL would then be https://example.com/wp-json/sajjad/v1/health. Set up a keyword monitor that looks for "status":"ok" for the most reliable result. The endpoint deliberately returns very little information, so it doesn't reveal anything sensitive about your site. Make sure your caching plugin or CDN doesn't cache this URL.

Using Heartbeat Monitoring for Backups and Cron Jobs

Uptime checks tell you if your site is reachable, but they don't tell you if your nightly backup failed silently. Heartbeat monitoring solves that. Services like Healthchecks.io, Better Stack, and UptimeRobot give you a unique URL. You request that URL at the end of your task, and if the request doesn't arrive on time, you get an alert.

For example, if you run a nightly database backup with a server cron job, you can ping the heartbeat URL only when the backup succeeds:

0 3 * * * cd /var/www/example.com/public_html && /usr/local/bin/wp db export /home/backups/db-$(date +\%F).sql --quiet && curl -fsS -m 10 --retry 3 https://hc-ping.com/your-unique-id > /dev/null

Replace the paths and the ping URL with your own. The && means the ping only happens if the export succeeds. Note the escaped \% inside the crontab, which cron requires.

You can also ping a heartbeat from inside WordPress using a WP-Cron event, which confirms that WordPress's scheduler itself is running:

function sajjad_schedule_heartbeat() {
    if ( ! wp_next_scheduled( 'sajjad_heartbeat_ping' ) ) {
        wp_schedule_event( time(), 'hourly', 'sajjad_heartbeat_ping' );
    }
}
add_action( 'init', 'sajjad_schedule_heartbeat' );

function sajjad_send_heartbeat() {
    wp_remote_get(
        'https://hc-ping.com/your-unique-id',
        array(
            'timeout'  => 10,
            'blocking' => false,
        )
    );
}
add_action( 'sajjad_heartbeat_ping', 'sajjad_send_heartbeat' );

Set the heartbeat monitor's expected interval to one hour with a grace period, and you'll know if WP-Cron ever stops running.

Setting Up Useful Alerts

The goal is to know about real problems quickly without being overwhelmed by noise.

  • Use more than one channel: Email is easy to miss. Add a mobile app push notification or Slack message for important sites.
  • Require confirmation from multiple locations: Most services recheck from another region before alerting, which reduces false alarms caused by network blips.
  • Set a sensible threshold: Some services let you alert only after the site has been down for two or three consecutive checks.
  • Route alerts to the right people: For client sites or teams, send alerts to whoever can actually fix the problem.
  • Monitor response time: Many services also track how long your site takes to respond, which can warn you of performance issues before they become outages.

Public Status Pages

Many monitoring services let you create a public status page showing your site's current status and uptime history. This is useful for businesses and SaaS products, since customers can check the status page instead of contacting support during an outage.

What to Do When Your Site Goes Down

When an alert arrives, work through these steps:

  1. Confirm the outage: Open your site in a private browser window and on your phone's mobile data connection. Check the monitoring service's error details, such as a timeout, a DNS error, or a specific HTTP code.

  2. Check your host's status page: Many outages are caused by hosting or network problems. Your host's status page or support channel will tell you if there's a known issue.

  3. Check your domain and SSL: Make sure your domain hasn't expired and your SSL certificate is valid.

  4. Look at the error type:

    • A 500 error or blank page often points to a plugin or theme problem. My guide on troubleshooting WordPress errors covers this in detail.
    • A 503 error can mean the server is overloaded or the site is stuck in maintenance mode.
    • A timeout or connection error often means a server, network, or firewall problem.
    • A DNS error means your domain's DNS isn't resolving correctly.
  5. Check recent changes: Did someone update a plugin, change settings, or edit code just before the outage? Undoing the last change is often the fastest fix.

  6. Check server logs: Your host's error logs, or WordPress's debug.log if WP_DEBUG_LOG is enabled, often point directly to the cause.

  7. Contact your host if needed: If the problem is on the server side, your host's support team is your best route to a quick fix.

  8. Review afterward: Once the site is back, note what happened and what could prevent it from happening again.


FAQ: Monitoring WordPress Uptime

Most quality hosts aim for 99.9% or higher, which allows about 44 minutes of downtime per month. Business-critical sites often aim for 99.95% or better.

Plugins like Jetpack can enable uptime monitoring, but the actual checks run from an external service. A plugin running only on your own server can't alert you when that server is down.

Every five minutes is fine for most blogs and small business sites. Online stores and critical sites benefit from one-minute checks, which usually require a paid plan.

Yes. UptimeRobot, Better Stack, and StatusCake all offer free tiers, and Jetpack includes a free Downtime Monitor.

The outage may affect only certain regions or networks, or a firewall or security plugin may be blocking the monitoring service. Check the error details and allow the service's IP addresses if needed.

Yes. Cached homepages can load even when WordPress is broken. Also monitor an uncached page or health check endpoint, and key pages like your checkout or contact form.

Heartbeat monitoring waits for your site or server to check in on a schedule. If a backup, cron job, or scheduled task doesn't send its check-in on time, you receive an alert.


Conclusion

Monitoring your WordPress website uptime is quick to set up and gives you peace of mind. Choose an external service like UptimeRobot, Better Stack, or Jetpack's Downtime Monitor, add your homepage and a few critical pages, and set up alerts on a channel you'll actually see. Add keyword checks or a custom health endpoint to catch silent WordPress failures, and use heartbeat monitoring to confirm your backups and scheduled tasks are running.

When an alert does arrive, a calm, step-by-step response will get your site back online faster. Over time, your monitoring history also becomes a useful record of how reliable your hosting really is, which helps you make better decisions about where and how your WordPress site runs.

Tags :
Share :

Related Posts

What are the best WordPress security plugins?

What are the best WordPress security plugins?

The best WordPress security plugins for most sites are Wordfence, Sucuri Security, Solid Security, MalCare, All-In-One Security (AIOS), Patchstack, a

Dive Deeper
What is the difference between posts and pages in WordPress?

What is the difference between posts and pages in WordPress?

The main difference between posts and pages in WordPress is that posts are timely, dated entries that appear in your blog feed, archives, and RSS fee

Dive Deeper
How much does it cost to build a WordPress website?

How much does it cost to build a WordPress website?

Building a WordPress website can cost anywhere from roughly the price of a domain and a year of budget hosting, if you do it yourself with free tools

Dive Deeper