[WP]Jetpackの読み込み無限ループと sync_cron 遅延エラーを解消する方法

WordPress
スポンサーリンク

WordPressの管理画面に入った途端、ダッシュボードのJetpack統計が「ぐるぐる」と回り続けて表示されない…

さらにサイトヘルスを覗いてみれば、こんな不穏なエラーメッセージが鎮座していることはありませんか?

「サイトは動作します」と言われても、赤いビックリマークを放置するのは精神衛生上よくないですよね。実はこれ、WordPressの「心臓部」とも言えるCron(クーロン)機能が少し息切れしているサインなのです。

原因は「WordPress標準Cron」の仕組みとアクセスのすれ違いにある

まず、なぜこのエラーが出るのか、ざっくりとイメージを掴んでおきましょう。

WordPressには「WP-Cron」という、予約投稿やプラグインの定期通信を管理する機能が備わっています。しかし、このWP-Cronには「誰かがサイトにアクセスした瞬間にしか動かない」という弱点があるのです。

Jetpackは頻繁にデータを同期(Sync)しようとしますが、Cronが動いていないと「あれ?まだ順番来ないの?」と渋滞を起こしてしまうわけですね。

【応急処置】プラグインの「自動更新」設定を切り替えてイベントをリセットする

こちらはあくまで「詰まったゴミを流す」ためのリセット操作として試してみてください。

  1. WordPress管理画面の「プラグイン」一覧ページを開く。
  2. Jetpackプラグインの欄にある「自動更新」のステータスを確認。
  3. 一度「無効化」にし、ページをリロードしてから再度「有効化」に戻す。
これだけで、詰まっていた jetpack_sync_cron が強制的にキャンセル、または再スケジュールされ、エラーが消えるケースが多いです。

【根本解決】「WP Crontrol」で滞留したスケジュールを整理・削除する

トグル切り替えでも直らない、あるいは数日後にまた再発する…

そんな「しつこい汚れ」には、Cron管理の定番プラグイン「WP Crontrol」を使って直接メスを入れます。

これが、Web制作の現場では最も確実な対処法と言えるでしょう。

手順1:WP Crontrolの導入

「プラグイン」>「新規追加」から「WP Crontrol」を検索し、インストール・有効化してください。

手順2:Cronイベントの確認

管理画面の「ツール」>「Cron イベント」を開きます。
ここに、現在予約されているタスクがずらりと並んでいるはずです。

手順3:エラーが出ているフックを削除

リストの中から jetpack_sync_cron という名前を探してください。
おそらく、「次の実行」時間が過去の日付になっていたり、エラー表示が出ているはずです。

  1. jetpack_sync_cron の行にカーソルを合わせる。
  2. 「今すぐ実行」をクリックしてみる。
  3. それでも消えない場合は「削除」をクリックして、一旦タスクを消し去る。

削除しても、Jetpackが必要なタイミングで勝手に新しいタスクを作成してくれるので、恐れずに消してしまって問題ありません。これでスッキリするはずです!

【上級者向け】サーバー側のCron設定で動作を安定させる

もしあなたがクライアントのサイトを預かっているなら、そもそも「アクセスがないと動かない」というWP-Cronの仕様自体を見直すべきかもしれません。

wp-config.php に以下のコードを記述してWP-Cronを停止し、サーバー(XserverやConoHaなど)の管理画面から直接Cronジョブを設定する方法が、最もパフォーマンスに優れています。

wp-config.phpへの記述

これによって、ユーザーのアクセスに依存せず、決まった時間にきっちりとJetpackの同期が行われるようになります。

【まとめ】エラーは放置せず「流れ」を良くしてあげよう!

サイトヘルスが緑色に戻り、Jetpackの統計が表示されたときの安心感といったらありません。

エラーログはサイトからの「ちょっと苦しいよ」というSOS。見逃さずに対処してあげてくださいね。

コメント

タイトルとURLをコピーしました