WordPressの管理画面に、ある日突然「予約済みアクション」というメニューが追加されたり、「action_scheduler/migration_hook failed」といった英語のエラーメッセージが表示されて、驚いたことはありませんか?
結論から言うと、これはAction Scheduler(アクションスケジューラー)といって、WooCommerceなどのプラグインに最初から組み込まれている「裏側で自動処理を行うための仕組み」です。
注文メールの送信や自動決済などを、サイトが重くならないように裏で安全に処理してくれています。
この記事では、Action Schedulerの基本的な仕組みから、画面にエラーが出たときの簡単な解決方法、タスクが詰まって動かないときの対策まで、実際の検証をもとに分かりやすく解説します。
目次
Action Schedulerとは?基本概要と仕組み

Action Schedulerは、WordPressで大量のタスクをサイトの裏側(バックグラウンド)でスムーズに処理するための仕組みです。タスクが今どんな状態にあるのかを、管理画面からいつでも簡単に確認・追跡できるのが特徴です。
たとえば、ECサイトの注文確認メールの送信や決済処理など、時間のかかる作業が何百件・何千件と重なっても、Action Schedulerがタスクを一つずつリストに並べ、裏側で順番に処理してくれます。
このシステムは、他のプラグインの内部にプログラムとして組み込みやすい(同梱しやすい)ように設計されているため、多くの大型プラグインに最初から内蔵されています。
その他、WordPress公式ディレクトリーでは「単体のプラグイン」としても個別に配布されており、後述する不具合が起きた際の対処にも活用できます。
主な役割と仕組み
バックグラウンド処理の自動化
「〇分後にこの処理を行う」といった予約を登録し、サイトの裏側で自動処理させることができます。
処理ごとに固有の情報(注文IDなど)を持たせることが可能で、1回限りの実行だけでなく、定期的な繰り返し実行にも対応しています。
標準機能のパワーアップ
WordPressにはもともと特定の処理を呼び出す仕組みがありますが、そこに「処理のタイミングを遅らせる機能」や「繰り返し実行する機能」を追加して、より便利に強化したイメージです。
大規模な処理にも耐える実績
WooCommerceの自動決済や、各種プラグインのメール送信など、毎月数百万件におよぶ処理を支えている実績があります。
1時間に1万件を超えるような負荷の高い処理が発生しても、サイトの表示速度や通常の運営に悪影響を与えることなく、裏側で安全に処理できるように設計されています。
なぜ自分のサイトに入っているのか?
「Action Scheduler」というプラグインを自分でインストールした覚えがないにもかかわらず、管理画面にメニューが表示されたり、エラーメッセージが出たりして困惑している方も多いのではないでしょうか。
結論から言うと、これはあなたが導入している「他の大型プラグイン」に最初から内蔵(同梱)されているためです。
バックグラウンドで大量のデータを処理するプラグイン(ECサイト構築用のWooCommerceや、メールの到達率を上げるWP Mail SMTPなど)の内部に、最初から機能として組み込まれています。
そのため、ユーザーが意識していなくても自動的にサイトに導入されるケースがほとんどです。
基本的にレンタルサーバー上から、プログラムによってメールを送ると、迷惑メールになる可能性が高くなります。それはWordpressテーマ、設定しているメールフォームの返答送信先などで設定しているドメイン、URLとサーバーのプログラムから送信する際のURLが異なることが大きな原因であったりするからです。...
WooCommerceにおけるAction Schedulerの役割
Action Schedulerがもっとも頻繁に、そして重要な役割を果たしているのが「WooCommerce」を導入しているサイトです。
WooCommerceのようなECサイトでは、ユーザーの画面表示を邪魔することなく、裏側で同時に処理しなければならないタスクが大量に発生します。これらを安全に処理しているのがAction Schedulerです。
裏側で処理されている主なタスク
WooCommerceの運用において、Action Schedulerは主に以下のようなバックグラウンド処理を担当しています。
- 注文完了後の自動メール送信:お客様が購入を完了した直後に送信される「サンクスメール」や、管理者に届く「注文通知メール」の送信処理を遅延なく行います。
- 外部サービスとのデータ同期(Webhookなど):商品の在庫情報や顧客データを、外部の連携システムや在庫管理ツールへ自動的に同期・送信する処理を担います。
- 定期購入の自動決済:WooCommerce Subscriptionsなどを利用している場合、毎月の決済日にクレジットカードへ自動請求をかける処理や、契約ステータスの更新をスケジュール通りに実行します。
これらがもしユーザーの画面と同じタイミング(同期処理)で動いてしまうと、メールの送信や決済処理が終わるまで画面がフリーズし、購入手続きが非常に重くなってしまいます。
Action Schedulerが裏側で順番に処理を引き受けることで、快適な買い物の環境が維持されています。
管理画面での確認方法
Action Schedulerが現在どのようなタスクを抱えているかは、WordPressの管理画面から確認できます。
ただし、このメニューはWordPressの標準状態では表示されません。WooCommerceなどの対応プラグインが有効になっている場合のみ、以下の手順で確認できます。
WooCommerceを導入している場合
WooCoommerceをインストールしている場合は、「WordPress管理画面 > ツール > 予約済みアクション」から確認することができます。

もう一つの方法としては、「WordPress管理画面 > WooCommerce > ステータス > 予約済みアクション」から確認することもできます。

この画面を開くと、現在「保留中(Pending)」「完了(Complete)」「失敗(Failed)」となっているタスクが一覧で表示されます。サイトの裏側でどのような処理が動いているのかを、ひと目で追跡することが可能です。
migration_hook / 移行エラーなどの対処法
WordPressの管理画面に「action_scheduler/migration_hook failed(migration_hookが失敗しました)」といったアラートが表示されたり、サイトのヘルスチェックで警告が出たりすることがあります。
これは、Action Schedulerのエラーのなかでももっとも頻繁に見られる「データベースの移行(マイグレーション)エラー」です。
エラーが起きる原因
Action Schedulerは、プラグインがアップデートされた際などに、データを保存するための専用テーブル(wp_actionscheduler_actions など)を自動的に作成・更新しようとします。
しかし、以下のような原因でその自動移行が失敗することがあります。
- プラグインの更新時にサーバーの一時的な負荷で処理がタイムアウトした
- データベースの権限不足により、新しいテーブルが自動作成できなかった
- データベースの構造自体が破損している
テーブルの作成や移行が中途半端な状態になると、バックグラウンド処理が一切動かなくなり、エラーが残り続けてしまいます。
解決策:公式プラグインを一時的にインストールする
このエラーをもっとも簡単、かつ安全に解決する方法は、公式の「Action Scheduler単体プラグイン」を一時的にインストールすることです。
WordPress公式ディレクトリーで配布されている単体版は、他のプラグインの状態に左右されません。
最新のライブラリが独立して初期化処理を実行するため、エラーをスムーズに解消してくれます。
インストール方法
以下の公式ディレクトリやWordPress管理画面の「プラグイン > プラグインの追加」から「Action Scheduler」を検索し、インストールして有効化します。
WordPressで制作したサイトは、プラグインを使って簡単に機能を拡張することができますよね。当記事では、プラグインのインストール方法について解説してきます。 おすすめプラグインを見る プラグインのインストール方法は2つ プラグインのインストール方法は、下記の2つになります。基本的には、...
自動修復の実行(待つだけ)
有効化した瞬間、プラグインがデータベースをスキャンし、破損しているテーブルや作られなかった移行フックを検知して、バックグラウンドで再作成・修復を行います。
Action Scheduler自体の設定画面はなく、インストールするだけで問題ありません。

管理画面のアラートが消え、WP Mail SMTPやWooCoommerceなど各プラグインの「予定されたアクション(予約済みアクション)」が正常に表示されるようになったら修復は完了です。

有効化した単体プラグインは、無効化して削除してしまって構いません。
削除しても、内蔵されている本体プログラムが正常になったデータベースを引き継いで動き続けます。
実例:他のプラグインでエラーが出た時にも有効
以前、筆者がセキュリティスキャン・プラグインの「WP Scan」をインストールした際、「重大なエラーが発生しました」と表示され、WordPressサイト自体が表示されなくなったことがありました。

そこで、Action Schedulerの単体プラグインを一度インストールしたところ、無事にサイトが表示されるようになり、WP Scanも何事もなかったかのように正常に動きました。
Action Schedulerが含まれたプラグインによってサイトに不具合が起きている疑いがある場合も、この「一時的な単体プラグイン導入」を試してみる価値は十分にあると思います。
WordPressサイトを自分で運営する上で、気を遣っておきたいこと。それは「セキュリティ対策」です。 クラッキングの被害に合わないためにも、Webサイトの脆弱性を少しでも減らしておきたいところ。サイトを安全に保つためには、まず自サイトに潜む脆弱性を正確に把握することが重要です。 そこで...
【注意点】アクセスが少ないサイトではタスクが溜まる原因に
Action Schedulerは、WordPressに標準で備わっている定期実行システム(WP-Cron)を利用して動いています。
このWP-Cronは「サイトに誰かがアクセスしたタイミング」で発火する仕組みになっています。そのため、アクセス数が極端に少ないサイトやアクセスのない時間帯などは、予定時刻を過ぎてもタスクが「保留中(Pending)」のまま残り続けてしまうという注意点があります。
もし管理画面の「Scheduled Actions」を確認して処理が滞留している場合は、サイト運営者自身で以下の方法を使って解消・対策を行うことができます。
対策1:WP-Cron管理プラグインで実行する
非エンジニアのサイト運営者でも今すぐできるもっとも実用的な方法が、プラグインを使った手動実行です。
WP-Cronを管理できる「WP Crontrol」などのプラグインを導入すると、専門知識がなくても管理画面から「action_scheduler_run_queue」イベントを「今すぐ実行」することができます。これにより、溜まっているタスクを安全にその場で消化させることが可能です。

対策2:サーバーのCron設定を利用する
アクセス数に関係なく、自動かつ正確な時間で実行したい場合は、レンタルサーバー側にある「Cron(クローン)設定」機能を利用して、定期的に処理させるのがもっとも確実です。
ただし、Cron機能が付いていないレンタルサーバーや料金プランもありますのでご注意ください。
Cron機能対応のレンタルサーバーであれば、管理画面(コントロールパネル)から比較的シンプルな操作で設定できます。

各レンタルサーバーの公式マニュアルに操作方法が掲載されていますので、その手順に沿って設定を行ってください。
以下のような運営サイトに合わせて、定期的に処理する時間を設定してください。
- ECサイト(WooCommerceなど):「商品を買ったのに1時間メールが届かない」といった遅延を防ぐため、5分〜10分おきの短い間隔で実行させるのが目安となります。
- 一般的なホームページやブログなどの情報サイト:リアルタイムな処理は必要ないため、1時間に1回程度の設定が目安となります。
もしサーバーの管理画面を触るのが不安な場合や、マニュアルを読んでも設定方法がよく分からないという場合は、無理をせずサイトの保守を行っているエンジニアや制作会社に相談することをおすすめします。
まとめ
WordPressの「Action Scheduler」は、自分でインストールした覚えがなくても、WooCommerceなどのプラグインで役割を果たしている「バックグラウンド処理の仕組み」です。
Action Schedulerの仕組みと適切な対処法を理解しておくことで、サイトのトラブルにも焦らずスムーズに対応できるようになります。
管理画面の「Scheduled Actions」のステータスも定期的にチェックし、健全なサイト運営に役立ててください。
WordPressで作成できる。











コメント