WordPress Heartbeat API を止めてサイトを軽量化する方法

WordPressの「Heartbeat API」は、管理画面でリアルタイム更新を行う便利な機能ですが、サーバー負荷やページの表示速度に影響することがあります。
この記事では、Heartbeat APIを制御して、サイトを軽量化する方法を紹介します。

1 Heartbeat APIとは?

Heartbeat APIは、WordPressの管理画面や投稿編集画面で、自動保存やログイン状態の保持他ユーザーとのリアルタイム通知などに使われる機能です。

便利な機能ですが、サーバーに対して1~15秒間隔でリクエストを送るため、負荷が高くなることがあります。

2 Heartbeat APIを停止・制御する方法

Heartbeat APIは、functions.phpにコードを追加することで制御できます。

2.1 完全に停止する方法


//-------------------------------------------
// 完全にHeartbeat APIを停止
//-------------------------------------------
add_action('init', 'disable_heartbeat', 1);
function disable_heartbeat() {
    wp_deregister_script('heartbeat');
}

この方法は、管理画面の自動保存や他ユーザーとの通知が不要な場合に有効です。

2.2 リクエスト間隔を延長して軽量化する方法


//-------------------------------------------
// Heartbeatの送信間隔を60秒に変更
//-------------------------------------------
add_filter('heartbeat_settings', 'custom_heartbeat_interval');
function custom_heartbeat_interval($settings) {
    $settings['interval'] = 60; // 秒単位
    return $settings;
}

完全停止ではなく、サーバー負荷を減らしつつ、自動保存などの機能を残せます。

3 プラグインで簡単に制御する方法

「Heartbeat Control」などのプラグインを使うと、管理画面から簡単に停止や間隔変更が可能です。

4 JavaScriptで通知を非表示にする例

ファイル名:heartbeat-hide.js
保存先:wp-content/themes/child-theme/js/heartbeat-hide.js


//-------------------------------------------
// 投稿画面のHeartbeat通知を非表示
//-------------------------------------------
jQuery(document).ready(function($){
    $('#heartbeat-notice').hide();
});

4.1 ディレクトリ構造

  • child-theme/
    • style.css
    • functions.php
    • footer.php
    • header.php
    • js/
      • heartbeat-hide.js
    • images/
      • logo.png

5 注意点

  • 完全停止すると、自動保存や同時編集通知が機能しなくなります。
  • サイトのサーバー負荷やユーザー数に応じて、停止・間隔調整を検討してください。

6 まとめ

Heartbeat APIは便利な機能ですが、サイト速度やサーバー負荷の観点から制御する価値があります。
functions.phpへのコード追加やプラグイン利用で、簡単に軽量化が可能です。