WordPressを運用する中で、管理画面の動作が重くなったり、サーバーのCPU使用率が急上昇したりといったトラブルに直面したことはないでしょうか。
多くの場合、その原因の一つとして挙げられるのがWordPress標準の「Heartbeat API」という機能です。
この機能は非常に便利ですが、設定を最適化しないまま放置すると、サーバーに対して過剰なリクエストを送り続けてしまう性質を持っています。
本記事では、Heartbeat APIの仕組みを紐解きながら、プラグインを使用してサーバー負荷を効果的に軽減する方法について詳しく紹介します。
2026年のウェブサイト運営において、高速なレスポンスと安定したサーバー環境を維持するためのテクニックを確認していきましょう。
WordPressのHeartbeat APIとは何か
Heartbeat APIは、WordPress 3.6から導入された、ブラウザとサーバーの間でリアルタイムの通信を行うための仕組みです。
心臓の鼓動(Heartbeat)のように、一定の間隔でパルスを送信することからこの名前がつきました。
このAPIが動いているおかげで、私たちは意識することなく便利な機能の恩恵を受けています。
例えば、記事の編集画面で自動的に下書きが保存される機能は、このHeartbeat APIによって実現されています。
また、複数のユーザーが同じ記事を編集しようとした際に「他のユーザーが編集中です」という警告が出る排他制御も、この機能によるものです。
管理画面にログインしている間、ブラウザは常にサーバーの admin-ajax.php というファイルに対してリクエストを送り続けています。
通常、管理画面では15秒から60秒に一度の間隔で通信が行われています。
一見すると些細な通信に見えますが、管理画面を長時間開きっぱなしにしていると、そのリクエスト数は膨大なものになります。
特に、共有サーバーを利用している場合や、複数の管理者が同時にログインしている環境では、サーバーのリソースを大きく消費する要因となります。
サーバーのCPU負荷が高すぎるという警告がホスティング会社から届いた場合、まず疑うべきはこのHeartbeat APIの挙動です。
サーバー負荷を軽減するためにAPIを制御すべき理由
Heartbeat APIを適切に制御することは、サイトのパフォーマンス向上だけでなく、コスト削減や安定性の確保に直結します。
デフォルトの設定では、APIは「ダッシュボード全体」「記事編集画面」「フロントエンド(公開画面)」の3箇所で動作しています。
公開画面でログインしていない一般の閲覧者に対しては動作しませんが、管理者にログインした状態でサイトを確認している際には常に通信が発生します。
この通信が admin-ajax.php へのリクエストとして蓄積され、PHPのプロセスを占有してしまうのです。
PHPのプロセスが上限に達すると、一般のユーザーがサイトを訪問した際の処理が後回しになり、表示速度の低下を招きます。
最悪の場合、503 Service Unavailableエラーが発生し、サイトが閲覧不能になるリスクもあります。
リソースが限られたレンタルサーバーでは、このパルスの間隔を広げるだけで劇的に動作が軽くなることがあります。 また、2026年現在のモダンなWeb環境においても、不要な通信を削減することはエコシステムの最適化という観点から重要視されています。
モバイル回線で管理画面を操作している場合、無駄な通信を減らすことはデバイスのバッテリー消費を抑えることにも繋がります。
そのため、必要のない箇所では機能を停止し、必要な場所では通信間隔を長く設定することが推奨されます。
Heartbeat Controlプラグインによる最適化の手順
最も手軽かつ確実にHeartbeat APIを制御する方法は、専用のプラグインを導入することです。
数あるプラグインの中でも、WP Rocketの開発チームが提供している「Heartbeat Control」は、シンプルで非常に使い勝手が良いツールです。
まずは、WordPressの管理画面から「プラグイン」→「新規追加」に進み、「Heartbeat Control」を検索してインストール、有効化してください。
有効化が完了したら、「設定」メニューの中に「Heartbeat Control」という項目が追加されます。
設定画面では、先ほど挙げた3つの場所ごとに挙動を選択することが可能です。
| 場所(Location) | 推奨設定 | 効果 |
|---|---|---|
| WordPress Dashboard | Modify Heartbeat (60s) | ダッシュボードでの無駄な通信を削減します。 |
| Frontend | Disable Heartbeat | 公開画面でのログイン時の不要な通信を完全に停止します。 |
| Post Editor | Modify Heartbeat (120s) | 自動保存の間隔を広げ、編集中の負荷を抑えます。 |
「WordPress Dashboard」の設定では、ダッシュボードのウィジェット更新などの頻度を調整できます。
基本的には、ここを完全に無効化しても大きな支障はありませんが、通知などをリアルタイムで受け取りたい場合は間隔を最大(60秒)に設定するのが良いでしょう。
「Frontend」については、多くの場合で「Disable Heartbeat」を選択して問題ありません。
「Post Editor(記事編集画面)」は、最も慎重に設定すべき項目です。
自動保存を完全に止めてしまうと、ブラウザがクラッシュした際に書いた内容が消えてしまうリスクがあるためです。
「Modify Heartbeat」を選択し、スライダーを右側に動かして間隔を60秒から120秒程度に設定することをおすすめします。 これにより、利便性を損なうことなく、サーバーへのリクエスト数を数分の一にまで削減することができます。
設定を変更した後は、必ず画面下部の「変更を保存」ボタンをクリックしてください。
Perfmattersプラグインを活用した高度な管理
もし、あなたがサイト全体の最適化を一括で行いたいと考えているなら、有料プラグインの「Perfmatters」も非常に強力な選択肢になります。
Perfmattersは、WordPressの軽量化に特化したプラグインであり、Heartbeatの制御機能も内蔵されています。
「General」設定の中に「Heartbeat」のセクションがあり、ここでON/OFFや間隔の調整が可能です。
このプラグインの優れた点は、Heartbeat以外にも、スクリプトの読み込み制御やデータベースの最適化を一つの画面で完結できる点です。
複数のプラグインを導入して管理が煩雑になるのを避けたいエンジニアやプロのブロガーに好まれています。
Perfmattersを使用する場合も、基本的には「Allow Heartbeat」を「Only in Post Editor」に設定するのが定石です。
これにより、記事を書いている時だけAPIを有効にし、それ以外の場所では完全に通信をシャットアウトできます。
サーバーの応答速度(TTFB)を極限まで高めたい場合、こうした細かな通信制御が大きな差を生みます。
プラグインを使わずにコードで制御する方法
プラグインの数を増やしたくない場合は、テーマの functions.php にコードを記述することで同様の効果を得ることも可能です。
以下のコードは、Heartbeat APIの通信間隔を調整するためのサンプルプログラムです。
/**
* Heartbeat APIの通信間隔を60秒に変更する
*/
function custom_heartbeat_settings( $settings ) {
// 間隔(秒)を指定。デフォルトは15〜60秒
$settings['interval'] = 60;
return $settings;
}
add_filter( 'heartbeat_settings', 'custom_heartbeat_settings' );
/**
* 特定の場所以外でHeartbeatを停止させる
*/
function stop_heartbeat_except_editor() {
global $pagenow;
// 記事編集画面 (post.php, post-new.php) 以外では停止
if ( $pagenow !== 'post.php' && $pagenow !== 'post-new.php' ) {
wp_deregister_script( 'heartbeat' );
}
}
add_action( 'init', 'stop_heartbeat_except_editor', 1 );
最初のブロックでは、フィルターフックを使用して通信間隔を60秒に固定しています。
これにより、サーバーに送られるリクエストの総量を減らすことができます。
二つ目のブロックでは、現在表示されているページを判定し、記事編集画面以外ではHeartbeatのスクリプト自体を解除しています。
コードによるカスタマイズは非常に軽量ですが、記述を誤るとサイトが表示されなくなるリスクがあります。
必ず事前にバックアップを取り、テスト環境で動作を確認してから本番環境に適用するようにしてください。
また、テーマをアップデートすると functions.php の内容は上書きされてしまうため、子テーマを使用するか、コード管理用プラグインを利用することを推奨します。
最適化の効果を検証する方法
設定を変更した後は、実際にどの程度負荷が軽減されたかを確認することが大切です。
最も簡単な方法は、ブラウザのデベロッパーツールを使用することです。
Google Chromeであれば、F12キーを押してデベロッパーツールを開き、「Network」タブを選択します。
「XHR」フィルタを選択した状態でしばらく待つと、admin-ajax.php という名前のリクエストが表示されるはずです。
このリクエストが表示される間隔が、設定した秒数通りになっているかを確認してください。
もし設定前は15秒おきに出ていたものが、設定後に60秒おきになっていれば、成功です。
より詳細な分析を行いたい場合は、サーバーのアクセスログを確認しましょう。
admin-ajax.php へのPOSTリクエストが、設定変更のタイミングを境に減少しているのがグラフなどで視覚化できるはずです。
サーバーの管理画面にあるリソースモニターで、CPU使用率のピークが以前よりも低くなっているかどうかも重要なチェックポイントです。
数値として効果を実感することで、最適化の重要性がより深く理解できるでしょう。
よくある質問と注意点
Heartbeat APIを制限することで、何かデメリットはあるのでしょうか。
最も注意すべきは、リアルタイムでの同期が必要な他のプラグインへの影響です。
例えば、記事編集画面で複数のユーザーが同時に作業を行う「共同編集プラグイン」などは、Heartbeat APIに依存しています。
APIを完全に停止してしまうと、誰が編集中であるかの情報が更新されず、上書き保存によるトラブルが発生する可能性があります。
また、ECサイト(WooCommerceなど)を運用している場合、注文状況のリアルタイム通知などが機能しなくなるケースもあります。
そのため、「まずは間隔を広げることから始め、問題がなければ停止する」という段階的なアプローチが推奨されます。
また、キャッシュプラグインを併用している場合、管理画面以外の通信がキャッシュされてしまい、正しい計測ができないこともあります。
設定変更後は必ずブラウザのキャッシュをクリアし、シークレットモードなどで動作を確認するようにしてください。
まとめ
WordPressのHeartbeat APIは非常に強力な機能ですが、その反面、サーバーへの負荷を増大させるリスクも孕んでいます。
今回紹介した「Heartbeat Control」などのプラグインを活用することで、専門的な知識がなくても簡単にリクエストの頻度を最適化できます。
記事編集画面では利便性を守るために間隔を調整し、それ以外の場所では通信を停止するというメリハリのある設定がベストです。
サーバー負荷を軽減することは、サイト訪問者のユーザー体験向上だけでなく、安定したサイト運営を継続するための基盤となります。
2026年のウェブ戦略において、バックエンドの最適化は欠かせない要素です。
まずは自身のサイトのHeartbeat設定を見直し、無駄なリソース消費をカットすることから始めてみてください。
適切な設定を施すことで、より快適で高速なWordPress環境が手に入るはずです。
