ハウツーガイド

WordPressのHeartbeat APIを制限してCPU使用率を下げる方法【管理画面の高速化】

  • 15 読むのにかかる時間(分)
  • Hostragons チーム
WordPressのHeartbeat APIを制限してCPU使用率を下げる方法【管理画面の高速化】

WordPress Heartbeat APIの制限とは、管理画面でバックグラウンド動作するadmin-ajax.phpリクエストの頻度を減らし、CPU消費を最適化する設定です。特に共有レンタルサーバーやアクセスが多いWooCommerceショップ、多人数運用のブログでは、Heartbeat APIが15〜60秒ごとにサーバーへリクエストを送信し、無駄なCPU負荷や管理画面の遅延、リソース不足警告(508 Resource Limit, 503 Service Unavailableなど)の原因となります。APIを完全に無効化するのではなく、ページごとに60〜120秒へ調整し、本当に必要な場面だけ有効化し、効果をホスティングパネルで計測するのがポイントです。

この記事ではHeartbeat APIの役割、どんな時に問題になるか、安全な設定例、そしてWordPressサイトでCPU負荷を実用的に下げる手順を解説します。自動保存やセッション管理の便利機能を損なわず、無駄なバックグラウンド通信を賢く制限することが目的です。サイト運営で頻繁に508や503エラー、管理画面の重さに悩んでいる場合、この設定が最初に見直すべき最適化ポイントです。

WordPress Heartbeat APIとは?

Heartbeat APIは、ブラウザとサーバー間で定期的に通信するWordPressの内部仕組みです。通常、/wp-admin/admin-ajax.php経由で動作し、記事編集画面の自動保存、同時編集の通知、セッション管理、リアルタイム通知系プラグインなどに利用されます。

例えば、記事編集画面で作業中、WordPressは一定間隔でサーバーへ小さいリクエストを送信し、下書きの消失を防ぎます。1人なら軽いですが、同時に8人の編集者、2人の管理者、WooCommerce管理画面を開いたスタッフがいると、リクエスト数は爆発的に増加します。10人が30秒ごとに管理画面を開いていれば、1時間で約1,200件のHeartbeat通信が発生。プラグインが処理を追加すると、CPU使用量は想定以上に高くなりがちです。

つまりHeartbeat API自体は悪者ではありません。短すぎる間隔設定、不要な画面での通信、重いプラグインとの組み合わせでパフォーマンス問題に発展します。適切なサイト設計ではAPIを有効化しつつ、通信頻度をコントロールするのが理想です。

Heartbeat APIがCPU負荷を高める理由

CPU負荷とは、サーバーがPHP処理に費やす計算リソースのこと。WordPressは動的CMSなので、各PHPリクエスト時にテーマ・プラグイン・データベース・本体が稼働します。Heartbeat通信は軽く見えても、毎回PHPプロセスを呼び出します。

CPU負荷増加の主な要因:

  • 頻繁なリクエスト間隔: 一部画面では15秒ごとHeartbeat通信が発生。1人でも1時間240回です。
  • 複数タブの同時開放: 管理画面を複数タブ開くと、それぞれHeartbeat通信が独立して動作。
  • 重いプラグイン: セキュリティ、統計、バックアップ、ページビルダー、WooCommerce系はHeartbeat通信に追加処理を付与しやすい。
  • 低スペックなサーバー: リソースが限られている場合、微量なバックグラウンド通信でもピーク時に上限到達。
  • ボットや一般ユーザーの同時アクセス: フロント側の訪問者トラフィックと管理画面のバックグラウンド通信が同時にリソースを消費。

特にadmin-ajax.phpへのアクセスがログに頻出している場合、Heartbeatトラフィックの見直しが必要です。Hostragonsではリソース消費グラフでCPUの変動をチェックでき、サイトに合った[ iç-link: WordPress hosting ]プラン選択も可能です。

Heartbeat APIを完全に無効化してもいい?

基本的に「完全無効化」はおすすめできません。短期的にはCPU負荷が下がりますが、自動保存や同時編集防止、セッション更新、プラグイン通知機能などが動かなくなります。特に複数人で記事編集する場合は、同時編集の競合や内容消失のリスクも。

安全なアプローチは、必要な画面だけAPIを有効化し、通信間隔を延長すること。例えば記事編集画面は60秒、管理画面全体は120秒、フロント側は無効化といった設定が一般的な企業サイトでバランス良い結果を生みます。WooCommerceショップでは注文管理や在庫管理画面の動作確認が必須です。

推奨Heartbeat API設定一覧

推奨Heartbeat API設定一覧
運用シナリオ 推奨設定 期待される効果 注意ポイント
個人ブログ 管理画面120秒、記事編集60秒、フロント無効 admin-ajax通信量が目に見えて減少 自動保存間隔の動作確認を忘れずに
多人数メディア 記事編集60秒、管理画面90〜120秒 CPU負荷低減、同時編集競合防止 編集者のタブ数・同時ログイン数に注意
WooCommerceショップ 管理画面60〜90秒、フロント側は慎重に無効化 バックエンド負荷低減 カート、決済、在庫管理プラグインの動作確認
企業サイト 管理画面120秒、フロント無効 最も安全で軽量な運用 フォーム・セキュリティ系プラグインの挙動確認
リソース警告が多いサイト 最初60秒、必要なら120秒へ調整 CPUピークの抑制が期待できる ログやリソースグラフで効果測定必須

この表はあくまで初期ガイドです。最適設定はユーザー数、プラグイン構成、テーマの重さ、サーバースペックにより変化します。測定せず変更するとCPU問題の根本原因を隠すだけになる場合もあります。

WordPress Heartbeat APIの制限方法

Heartbeat APIの制限方法は大きく3つあります:専用プラグインの利用、テーマのfunctions.phpへのコード追加、パフォーマンス系プラグインの設定活用。技術知識が少なければプラグイン利用が安全。開発者ならコードで細かく制御できます。

1. Heartbeat Controlプラグインによる制限

最も手軽なのは、Heartbeat通信管理用プラグインの導入です。WP Rocket提供のHeartbeat Controlや同様の信頼できるプラグインなら、画面ごとに個別ルールを設定できます。

手順:

  • 管理画面のプラグイン > 新規追加から検索
  • 「Heartbeat Control」で検索し、信頼性・更新頻度の高いプラグインをインストール
  • 有効化後、設定画面に進む
  • ダッシュボードや管理画面の通信間隔を60秒または120秒へ設定
  • 記事編集画面は完全無効化せず60秒へ
  • フロント側はHeartbeatを無効化か最大間隔へ
  • 変更後、24時間CPUグラフで効果を確認

この方法のメリットはすぐ元に戻せること。問題が起きてもプラグインを停止すればWordPress標準の挙動へ戻せます。デメリットはプラグイン数が増える点。極力プラグインを減らしたい場合はコードによる制限がおすすめです。

2. functions.phpでHeartbeat間隔を変更

コードで制限する場合は、テーマ本体ではなく可能なら子テーマのfunctions.phpやサイト専用の小規模プラグインへ追加するのが安全。テーマ更新で設定が消失しません。

Heartbeat間隔を60秒へ調整する例:

add_filter('heartbeat_settings', 'hostragons_heartbeat_interval'); function hostragons_heartbeat_interval($settings) { $settings['interval'] = 60; return $settings; }

これで標準の短い間隔を60秒に延長し、リクエスト数を大幅に減少できます。15秒→60秒なら、理論上Heartbeat通信量は75%減。例:管理者5人が1時間1,200回通信→約300回まで減少。実際の効果はプラグインがどれだけ追加処理をするかによります。

さらにフロント側でHeartbeatを完全無効化したい場合:

add_action('init', 'hostragons_disable_heartbeat_frontend', 1); function hostragons_disable_heartbeat_frontend() { if (!is_admin()) { wp_deregister_script('heartbeat'); } }

このコードはフロント側でHeartbeatスクリプトを停止します。ただし会員機能、リアルタイム通知、カート更新、フロントエディタ利用サイトでは必ず動作テストを。WooCommerceの決済やカート、マイアカウント画面で問題が出る場合はプラグイン側のページごと制御がより安全です。

3. WP Rocketなどパフォーマンス系プラグインで管理

キャッシュやパフォーマンス系プラグインの一部はHeartbeat管理機能を内蔵。WP RocketなどではHeartbeat専用タブで、管理画面・記事編集・フロント側ごとに通信頻度を選べます。この方法は既にパフォーマンスプラグインを導入していれば追加プラグイン不要で簡単です。

同機能を複数プラグインで同時に有効化しないよう注意。例えばWP RocketとHeartbeat Control両方のHeartbeat設定をONにすると、競合や予期しない動作の原因に。WordPress最適化の基本は「同じ役割の機能は1つだけ、効果を測定してから追加変更」です。

CPU使用率を測定し最適設定を探す

Heartbeat設定前後で測定を行うのはプロフェッショナルな最適化の要。管理画面が速くなっただけでは十分な証拠になりません。CPU使用率グラフ、PHP処理数、アクセスログ、エラーログを総合的にチェックします。

推奨テストフロー:

  • 事前測定: 設定変更前に24時間分のCPU・RAMグラフを保存
  • アクセスログ調査: admin-ajax.php通信量を時間ごとにチェック
  • 初期設定: Heartbeat間隔を60秒へ、フロント側無効化
  • 24〜48時間観察: 同じアクセス条件下でCPU変動を比較
  • 必要なら120秒へ試行: 特に企業サイトは長めでも問題ないケースあり
  • 重要機能の動作確認: 自動保存、WooCommerceカート・注文管理・会員機能などテスト

例:企業サイトで管理画面を開きっぱなしにするとCPU使用率が80〜90%へ急上昇、Heartbeat間隔を15秒→60秒へ調整すればCPUピークを20〜40%抑制できる可能性あり。ただしバックアッププラグインが毎時全スキャンしている場合、Heartbeat最適化だけでは十分でないことも。この場合は[ iç-link: WordPress hız optimizasyonu ]や[ iç-link: hosting kaynak kullanımı ]も併せて検討してください。

admin-ajax.phpの高頻度アクセスは必ずHeartbeatが原因?

admin-ajax.phpの高頻度アクセスは必ずHeartbeatが原因?

いいえ。admin-ajax.phpはWordPress内の多様な機能で利用されます。Heartbeat APIはその一部に過ぎません。フォームプラグイン、フィルター機能、ライブ検索、セキュリティスキャン、ECカート更新、テーマ独自機能も同じファイルにリクエストを送信します。

だからadmin-ajax.php通信だけでHeartbeatを無効化するのは正確な判断ではありません。ブラウザの開発者ツール「Network」タブでリクエストのpayloadにaction=heartbeatが含まれているか確認しましょう。action値が異なれば別プラグインが原因の可能性あり。

サーバー側ではアクセスログ分析も重要。大量通信がどのIPから、どの時間帯、どのリファラーから来ているかを調査。ボット由来ならファイアウォールやレート制限、ボット対策がより効果的。安全な接続・SSL証明書の管理は、パフォーマンスと信頼性向上のため[ iç-link: SSL sertifikası ]ページも参考にしてください。

Heartbeat制限時によくある失敗例

WordPress最適化で急ぎ足の対応をすると、サイト運用に支障をきたすことも。特に本番サイトでは以下に注意:

  • APIを全画面で完全無効化: 自動保存や同時編集防止が働かなくなる
  • 本番環境でテストせずコード追加: シンタックスエラーで真っ白な画面になることも
  • WooCommerce決済の動作確認不足: カートや注文処理に予期せぬ不具合が発生
  • 複数パフォーマンス系プラグインの同時利用: 計測困難、動作競合の原因
  • CPU問題をHeartbeatだけに限定: 重いクエリ、ボットトラフィック、cronジョブが真の原因の場合も
  • バックアップせず設定変更: コードミスで復旧まで時間がかかる

設定前にファイル・データベースのバックアップ取得が最も安全。ドメイン・ホスティング・サイト管理を一元化したい場合は[ iç-link: domain sorgulama ]や[ iç-link: web hosting ]サービスでインフラ管理も効率化できます。

Heartbeat API以外でCPU負荷を下げる追加対策

Heartbeat制限は有効ですが、WordPressのCPU最適化はより広範な取り組みです。長期的な安定運用には以下の対策も併用しましょう。

キャッシュ活用

ページキャッシュを有効化すれば、訪問者リクエスト時のPHP・DB負荷が大幅に低下。静的ページではWordPress本体の起動が不要となり、CPU消費を最も効果的に抑制できます。

不要プラグインの削除

使っていないプラグインも、場合によってはDBに負荷を与えることがあります。単なる数ではなく「実際の処理量」を評価。特に統計・セキュリティ・ページビルダー・バックアップ系は定期的に見直しを。

WP-Cron管理

WordPressのcronは訪問ごとに発動する場合があり、高トラフィックサイトではCPU消費増に直結。システムcronで定期実行に切り替えるのがより管理しやすい方法。Heartbeatとは別ですが、同じくバックグラウンド負荷を抑えるポイントです。

データベース最適化

リビジョン、トランジェント、スパムコメント、古い一時データなどがDBを肥大化させ、クエリ速度低下につながります。定期的なクリーニングで処理効率UP。特にWooCommerceサイトでは注文・セッション・ログテーブルのサイズ増加に注意。

PHPバージョンとホスティングリソース

最新PHPは多くの場合高速化を実現。PHP8.x対応テーマ・プラグイン構成なら同じアクセス量でもCPU消費を減らせます。ただしソフト最適化はホスティング土台とセットで考えるべき。トラフィック増加時は[ iç-link: VPS sunucu ]やスケーラブルなWordPressホスティングへの検討も有効です。

安全な実装のための推奨ロードマップ

ライブサイトでHeartbeat API制限を行う場合、以下の順序で進めると安全かつ効果検証が可能です。

  • まずフルバックアップを取得
  • 現状のCPU・RAM・admin-ajax.php通信量を記録
  • Heartbeatが本当に大量通信の原因か確認
  • フロント側は無効化、または最大間隔へ
  • 記事編集画面は60秒未満にしない
  • 管理画面は90〜120秒でテスト
  • WooCommerce、会員、フォーム機能を手動確認
  • 24〜48時間後にリソース消費を比較
  • 結果が不十分ならプラグイン・テーマ・cron由来の負荷も分析

この流れなら単一設定だけに頼らず、データに基づいた最適化が可能。プロのWordPress管理ではCPU値を下げるだけでなく、サイト安定性・ユーザー体験の両立が重要です。

まとめ:Heartbeatは無効化せず賢く制限を

WordPress Heartbeat APIの制限は正しく行えばCPU負荷の削減、管理画面の高速化、ホスティングリソースの有効活用につながる実践的な最適化手法です。最も健康的なのはAPIを完全無効化せず、フロント側は制限、記事編集画面は安全な間隔、管理画面は60〜120秒でテストしながら調整すること。

CPU問題が続く場合、Heartbeatはあくまで出発点。キャッシュ、プラグイン負荷、WP-Cron、DB、ホスティングプランも総合的に最適化しましょう。Hostragonsなら[ iç-link: WordPress hosting ]で安定したインフラを選べ、既存サイトのリソース要求に応じてスムーズなアップグレード計画も可能です。

よくある質問

WordPress Heartbeat APIは完全無効化すべき?

ほとんどのサイトでは完全無効化は推奨できません。自動保存・同時編集防止・セッション管理などの重要機能が停止します。安全なのはフロント側無効化+管理画面・記事編集の間隔を60〜120秒へ延長する方法です。

Heartbeat APIでCPU負荷はどの程度下がる?

サイト構成によります。15秒から60秒へ間隔を延長すると、Heartbeat通信量は理論上75%減少。実際のCPU削減量はプラグイン負荷、ユーザー数、ホスティング環境次第です。

admin-ajax.phpの高負荷は必ずHeartbeatが原因?

違います。フォーム、WooCommerce、ライブ検索、セキュリティプラグイン、テーマ機能もadmin-ajax.phpを利用。Networkタブでaction=heartbeatか確認しましょう。

WooCommerceサイトでHeartbeat制限は安全?

基本的に安全ですが、必ず動作テストを。カート・決済・注文管理・在庫更新・会員ページの挙動を確認。完全無効化よりも通信間隔を延長する方が安心です。

Heartbeat設定後のテスト期間は?

最低24〜48時間のテストを推奨。その間CPUグラフ、PHP処理数、admin-ajax.php通信量、重要機能の動作を逐次確認。平日・週末でアクセス量が異なる場合は長めの観察も。

この記事を共有する:

Hostragons チーム

ホスティング、サーバー、ドメイン名に関する、当社の専門チームによる最新ガイド。お客様のプロジェクトに最適なソリューションを一緒に見つけましょう。

お問い合わせ