2026年5月31日
2026年5月31日
WordPressの保守レポートをクライアントに定期自動送信する方法|載せる項目と作り方
クライアント向けの定期レポートは、「適用した更新」「バックアップ」「稼働状況」「セキュリティチェック」「アクセスと検索の概況」の5項目を毎月同じ形式で載せ、管理ツールのレポート機能やLooker Studioの定期配信で自動化すると、作成の手間を抑えつつ保守の価値を伝えられます。この記事では、レポートに載せる内容、作り方の選択肢、WordPress単体で簡易レポートをメール送信する方法、運用時の注意点を解説します。
定期レポートを送る目的
保守契約の作業は、うまくいっているほどクライアントからは何も起きていないように見えます。定期レポートは「何もしていない」のではなく「問題が起きないように作業している」ことを記録で示すためのものです。あわせて、次のような効果もあります。
- 不具合が起きたときに、直前にどの更新を適用したかをさかのぼれる
- PHPのバージョン更新やサーバー移転など、追加の提案をするきっかけになる
- 契約更新の際に、保守の実績を説明する材料になる
レポートに載せる項目
毎月同じ項目を同じ順番で載せると、クライアントが前月と比べやすくなります。
- 適用した更新: WordPress本体、プラグイン、テーマの更新内容と日付。セキュリティ修正を含む更新は分かるように示します。
- バックアップ: 取得した回数、最新の取得日時、保存先の種類。復元テストを行った月はその結果も書きます。
- 稼働状況: 期間中の稼働率と、停止があった場合は発生日時・時間・原因・対応。
- セキュリティチェック: マルウェアスキャンの結果、脆弱性が報告されたプラグインの有無と対応状況、不審なログイン試行の傾向。
- アクセスと検索の概況: GA4のユーザー数や主要なコンバージョン、Search Consoleの表示回数・クリック数・インデックスの問題。数値の羅列ではなく、前月比と気になる点を一言添えます。
- 所見と提案: 来月の予定、更新を見送った項目とその理由、PHPやプラグインのサポート終了の予告など。
逆に、技術的なログをそのまま貼り付けるのは避けます。クライアントが知りたいのは「問題がないか」「対応が必要なことはあるか」なので、冒頭に一言の総括を置くと読まれやすくなります。
作り方の選択肢
管理ツールのレポート機能
MainWPやManageWPには、クライアント向けレポートを作る仕組みがあります。MainWPは拡張機能、ManageWPはアドオンとして提供されており、更新履歴やバックアップ、稼働状況などをテンプレートに差し込んで定期送信できる構成です。複数サイトを一元管理しているなら、まずこの機能で足りるかを確かめるのが近道です。提供形態や無料で使える範囲は変わることがあるため、導入時点の公式情報を確認してください(2026年10月現在)。
Looker Studioでアクセス解析をまとめる
GA4とSearch Consoleの数値は、GoogleのLooker Studioで1枚のレポートにまとめられます。どちらも公式のデータコネクタがあり、サイトごとにテンプレートを複製してデータソースを切り替えれば、同じ形式のレポートを量産できます。Looker Studioにはレポートをメールで定期配信する機能もあるため、アクセス部分はこれで自動化し、保守作業の部分は管理ツールのレポートと組み合わせる、という分担もできます。
クライアントのGA4やSearch Consoleに制作会社のアカウントを追加する際は、必要最小限の権限にとどめます。Search Consoleの基本的な見方は Search Consoleの基本的な使い方 を参考にしてください。
WordPress単体で簡易レポートを送る
管理ツールを使わない小規模な案件では、サイト自身に週1回の簡易レポートを送らせる方法もあります。次のコードは、本体・PHPのバージョン、更新が必要なプラグインの数、直近1週間の公開記事数をメールで送るプラグインです。wp-content/plugins/agency-weekly-report/agency-weekly-report.php として保存し、管理画面から有効化します。
<?php
/**
* Plugin Name: Agency Weekly Report
* Description: サイトの状態を週1回メールで送信します。
*/
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
// 有効化時に週1回の予定を登録し、無効化時に解除する
register_activation_hook( __FILE__, function () {
if ( ! wp_next_scheduled( 'agency_weekly_report' ) ) {
wp_schedule_event( time() + HOUR_IN_SECONDS, 'weekly', 'agency_weekly_report' );
}
} );
register_deactivation_hook( __FILE__, function () {
wp_clear_scheduled_hook( 'agency_weekly_report' );
} );
add_action( 'agency_weekly_report', 'agency_send_weekly_report' );
function agency_send_weekly_report() {
// 更新が必要なプラグインの数(cron実行時はログインユーザーがいないため、transientを直接読む)
$updates = get_site_transient( 'update_plugins' );
$pending = ( $updates && ! empty( $updates->response ) ) ? count( $updates->response ) : 0;
// 直近1週間に公開された投稿の数
$posts = get_posts( array(
'post_type' => 'post',
'post_status' => 'publish',
'numberposts' => -1,
'fields' => 'ids',
'date_query' => array( array( 'after' => '1 week ago' ) ),
) );
$lines = array(
'サイト: ' . home_url( '/' ),
'WordPress: ' . get_bloginfo( 'version' ),
'PHP: ' . PHP_VERSION,
'更新待ちのプラグイン: ' . $pending . '件',
'直近1週間の公開記事: ' . count( $posts ) . '件',
);
$to = defined( 'AGENCY_REPORT_TO' ) ? AGENCY_REPORT_TO : get_option( 'admin_email' );
wp_mail( $to, '[週次レポート] ' . get_bloginfo( 'name' ), implode( "\n", $lines ) );
}
送信先は wp-config.php に define( 'AGENCY_REPORT_TO', 'report@example.com' ); のように書いて指定し、無ければサイトの管理者メールアドレスに送ります。最初は制作会社の担当者宛てにして内容を確認し、クライアントには担当者が所見を添えて転送する運用が安全です。
つまずきやすい点は次の3つです。
- WP-Cronはアクセスがあったときに動く: アクセスの少ないサイトでは送信が遅れます。サーバーのcronから定期実行する設定にすると安定します。
- メールが届かない: サーバーの標準の送信方法では迷惑メール扱いされやすいため、SMTPプラグインなどで認証付きの送信に切り替えます。
- **
wp_get_update_data()は使わない**: この関数は現在のユーザーの権限を見て件数を返すため、ログインユーザーのいないcron実行時には0件になります。上のコードでtransientを直接読んでいるのはこのためです。
なお、weekly の間隔はWordPress 5.4以降のコアに用意されています。それより古い環境では cron_schedules フィルターで間隔を追加する必要があります。
運用時の注意点
- 数字だけで終わらせない: 稼働率が下がった月や、更新を見送った月こそ、理由と対応を文章で書きます。
- 悪い情報も隠さない: 改ざんの痕跡や長時間の停止があった場合は、レポートを待たずにすぐ連絡し、レポートには経緯をまとめて残します。
- 個人情報を載せない: 問い合わせ内容や会員情報など、レポートに不要な個人データは含めません。
- 送信先の管理: クライアント側の担当者が変わったときに、送信先の更新漏れが起きやすい点に注意します。サイト台帳に送信先と最終確認日を記録しておきます。
稼働状況の数値は、外部の監視サービスで取っておくと、サーバー側の障害時にも記録が残ります。監視の設定は クライアントサイトの死活監視の設定方法 で解説しています。
まとめ
- 定期レポートには、適用した更新、バックアップ、稼働状況、セキュリティチェック、GA4・Search Consoleの概況、所見と提案を、毎月同じ形式で載せます。
- 自動化の手段は、MainWPやManageWPのレポート機能、Looker Studioの定期配信、WordPress単体のWP-Cronとwp_mailの組み合わせが中心です。
- WP-Cronのタイミングやメールの到達性など、自動送信が止まる原因を事前につぶしておきます。
- 数字に一言の所見を添え、悪い情報も隠さず伝えることで、保守契約の価値が伝わるレポートになります。