2026年10月15日

2026年10月15日

UptimeRobotでWordPressサイトの死活監視を設定する方法

UptimeRobot は、外部からサイトに定期的にアクセスし、応答が無ければメールやチャットで知らせてくれる死活監視サービスです。サーバーの中で動く監視とは違い、サーバーごと落ちた場合やネットワークが切れた場合にも気づけるのが利点です。この記事では、WordPress サイト向けに「何を監視すると取りこぼしが少ないか」を中心に、監視の作り方、キーワード監視、ヘルスチェック用エンドポイント、誤報を減らす設定までを説明します。

監視の前に決めておくこと

UptimeRobot の画面や無料・有料プランの範囲(監視間隔、監視できる数、商用利用の可否、使える通知先など)は改定されることがあります(2026年10月現在)。この記事では機能を目的で説明し、画面の表記は一般的な呼び方にとどめます。利用前に公式サイトのプラン説明と利用規約を確認してください。

監視を作る前に、次の3点を決めておくと設定に迷いません。

  • 何を「落ちている」とみなすか: 応答が無い、5xx エラーが返る、ページの中身がおかしい、のどこまでを検知するか。
  • 誰に知らせるか: 個人のメールだけでは、休暇中や夜間に見落とします。チームのチャットや複数の連絡先を登録します。
  • どの URL を見るか: トップページだけでは、キャッシュに隠れて障害に気づけないことがあります(後述)。

監視の種類と使い分け

UptimeRobot には複数の監視方式があります。WordPress サイトで使う主なものは次のとおりです。

  • HTTP(s) 監視: 指定 URL にアクセスし、ステータスコードでエラーかどうかを判定します。まず作るのはこれです。
  • キーワード監視: 応答本文に特定の文字列が含まれる(または含まれない)かで判定します。ステータスコードは正常でも中身が壊れているケースを拾えます。
  • Ping 監視: サーバーが ICMP に応答するかを見ます。Web サーバーが止まっていてもサーバー自体が動いていれば正常と判定されるため、補助的な使い方になります。ファイアウォールで ICMP を遮断していると使えません。
  • ポート監視: SMTP(587)や SSH など、特定ポートが開いているかを見ます。

このほか、SSL 証明書の期限やドメインの期限を知らせる機能、cron ジョブの実行を見張るハートビート監視なども提供されていますが、プランによって使える範囲が異なります。

HTTP(s) 監視を作る

基本の流れは次のとおりです。

  1. アカウントを作成し、ダッシュボードから新しい監視を追加する。
  2. 監視の種類で HTTP(s) を選び、表示名と URL(https:// から)を入力する。
  3. 監視間隔を選ぶ。短いほど早く気づけますが、選べる値はプランによって異なります。
  4. 通知先(アラートコンタクト)を選ぶ。メールのほか、Slack などのチャット連携や Webhook を登録できます。
  5. 保存し、ダッシュボードで状態が正常(Up)になることを確認する。

最初の確認として、存在しないパス(例: https://example.com/uptime-test-404/)を一時的に監視させ、エラー通知が実際に届くかを試しておくと安心です。通知が迷惑メールフォルダに入っていないかもこの段階で確認します。確認後はその監視を削除します。

WordPress で取りこぼしやすい障害

キャッシュが障害を隠す

ページキャッシュのプラグインや CDN を使っていると、PHP や MySQL が止まっていても、キャッシュ済みのトップページは正常に返り続けることがあります。トップページの監視だけでは、ログインや投稿、問い合わせフォームが使えない状態に気づけません。

対策として、キャッシュされない URL を別に監視します。次の項で紹介するヘルスチェック用のエンドポイントを用意するのが、取りこぼしの少ない方法です。

200 が返るのに中身が壊れている

テーマやプラグインの不具合で、ステータスコードは 200 のまま白い画面や崩れたページを返すことがあります。これはキーワード監視で拾えます。

  • 含まれるべき文字列を指定する: フッターのサイト名やコピーライト表記など、正常なページに常にある文字列。ここが消えたらエラーとみなします。
  • 含まれてはいけない文字列を指定する: たとえば WordPress のデータベース接続エラー画面に出る「データベース接続確立エラー」など。

キーワードはテーマの変更や文言の修正で消えることがあるので、サイトの改修時には監視の設定も見直します。

ヘルスチェック用エンドポイントを作る

PHP とデータベースが動いているかを返す小さな REST API を mu-plugin として置き、これを監視します。mu-plugin はテーマの変更やプラグインの一括無効化の影響を受けないため、監視用の処理に向いています。

<?php
/**
 * Plugin Name: Uptime Health Check
 * Description: 外部監視用のヘルスチェック。/wp-json/uptime/v1/health
 */

add_action( 'rest_api_init', function () {
	register_rest_route(
		'uptime/v1',
		'/health',
		array(
			'methods'             => 'GET',
			'permission_callback' => '__return_true', // 公開してよい最小限の情報だけ返す
			'callback'            => function () {
				global $wpdb;
				$db_ok = ( '1' === (string) $wpdb->get_var( 'SELECT 1' ) );

				$response = new WP_REST_Response(
					array( 'status' => $db_ok ? 'ok' : 'db_error' ),
					$db_ok ? 200 : 503
				);
				$response->header( 'Cache-Control', 'no-store, max-age=0' );
				return $response;
			},
		)
	);
} );

wp-content/mu-plugins/uptime-health.php として保存すると、https://example.com/wp-json/uptime/v1/health で {"status":"ok"} が返ります。UptimeRobot ではこの URL をキーワード監視にし、"status":"ok" が含まれることを条件にします。

設計上の注意点は次のとおりです。

  • 返す情報は最小限にする: WordPress や PHP のバージョン、プラグイン一覧、エラーの詳細などは返しません。誰でもアクセスできる URL だからです。
  • キャッシュ対象から外す: Cache-Control: no-store を付けていますが、キャッシュプラグインや CDN の設定で /wp-json/ が除外されているかも確認します。
  • REST API を制限している場合: セキュリティ系のプラグインで REST API を未ログインユーザーに閉じていると、この URL も 401 や 403 になります。その場合は該当ルートを例外にするか、/?rest_route=/uptime/v1/health の形式でも同じかを確かめます。
  • データベースが落ちたとき: WordPress は REST API の処理に入る前にエラー画面を返すため、このエンドポイントもエラー(5xx)になります。監視としてはそれで目的を果たせます。

導入前にステージング環境で応答を確認し、本番にはファイルを置くだけなので、不具合があれば FTP や SSH でファイルを削除すれば元に戻せます。

誤報と見落としを減らす設定

  • 監視元からのアクセスを遮断していないか: WAF やセキュリティプラグイン、国別アクセス制限が UptimeRobot のアクセスをボットとして遮断すると、誤報が続きます。UptimeRobot は監視元の IP アドレス一覧を公開しているので、必要に応じて許可リストに入れます。一覧は更新されることがあるため、固定で書き込むなら定期的な見直しが必要です。
  • 一時的な遅延で通知しない: 一度の失敗ですぐ通知するのではなく、一定時間ダウンが続いたら通知する設定にすると、瞬間的なネットワークの揺れによる通知が減ります。設定できる範囲はプランによって異なります。
  • メンテナンス中の通知を止める: 計画的な作業中は、監視を一時停止するか、メンテナンス時間の設定を使います。止めたまま再開を忘れないよう、作業手順書に再開の一行を入れておきます。
  • 復旧通知も受け取る: ダウン通知だけでなく復旧(Up)の通知も有効にしておくと、対応の要否を判断しやすくなります。

通知を受けたときの確認順

  1. 別の回線(スマートフォンのモバイル回線など)からサイトを開き、本当に落ちているかを確かめる。
  2. UptimeRobot の監視詳細で、返ってきたステータスコードやエラー内容(タイムアウト、接続拒否、SSL エラーなど)を見る。
  3. 5xx ならサーバーにログインし、Web サーバーと PHP のエラーログ、データベースの状態を確認する。
  4. タイムアウトや接続拒否なら、サーバーの負荷やネットワーク、ファイアウォールの変更を疑う。
  5. SSL エラーなら証明書の期限切れや更新失敗を疑う。

UptimeRobot の公開ステータスページ機能を使うと、利用者向けに稼働状況を知らせることもできます。

まとめ

  • UptimeRobot は外部からの死活監視で、サーバーごとの停止にも気づける。プランの範囲や規約は変わるので公式で確認する。
  • トップページの HTTP(s) 監視だけでは、キャッシュが障害を隠すことがある。
  • キーワード監視で「200 なのに中身が壊れている」状態を拾う。
  • mu-plugin のヘルスチェックで PHP とデータベースの稼働を監視し、返す情報は最小限にする。
  • 監視元 IP の遮断、通知の遅延設定、メンテナンス中の一時停止で誤報を減らす。

お気軽にご相談ください

お見積りへ お問い合わせへ
▲