2026年8月5日
2026年8月5日
WordPressの自動更新が途中で止まったときの強制復旧手順
WordPressの自動更新が途中で止まると、「メンテナンス中」の表示が消えない、「別の更新が進行中です」と出て更新できない、プラグインが一覧から消えた、といった状態になります。多くの場合、原因は更新処理が残した .maintenance ファイルと更新ロック、そして中途半端に置き換わったファイルの3点です。この記事では、バックアップを取ったうえでこれらを順に取り除き、更新を正常にやり直すまでの手順を説明します。
自動更新が途中で止まるとどうなるか
WordPressのコア・プラグイン・テーマの更新は、おおまかに「メンテナンスモードに入る → 新しいファイルをダウンロード・展開する → 古いファイルと置き換える → メンテナンスモードを解除する」という流れで進みます。この途中でPHPの実行時間切れ、メモリ不足、ディスク容量不足、ネットワークの切断などが起きると、後片付けが行われないまま処理が終わります。
その結果、よく見られる症状は次のとおりです。
- サイトに「Briefly unavailable for scheduled maintenance. Check back in a minute.」(日本語環境では「メンテナンス中のため、しばらくの間ご利用いただけません」という趣旨の文言)が表示され続ける
- 管理画面の「更新」画面で、別の更新が進行中である旨のメッセージが出て、更新を実行できない
- 更新中だったプラグインがプラグイン一覧から消えている、または有効化できない
- コアの更新途中で止まり、管理画面が真っ白になる、致命的なエラーが表示される
どの症状が出ているかで、取り除くべきものが変わります。
作業前にバックアップを取る
復旧作業ではファイルの削除やデータベースのオプション削除を行うため、まず現状のバックアップを取ります。壊れた状態でも、作業前の状態に戻せることが大切です。
# WordPressのルートディレクトリで実行(WP-CLIが使える場合)
wp db export before-recovery.sql
tar czf before-recovery-files.tar.gz wp-content wp-config.php .htaccess
WP-CLIやSSHが使えない場合は、サーバーのファイルマネージャーやFTPで wp-content と wp-config.php をダウンロードし、phpMyAdminなどでデータベースをエクスポートしてください。
手順1:.maintenance ファイルを削除する
更新処理は開始時に、WordPressのルートディレクトリ(wp-config.php と同じ階層)に .maintenance というファイルを作り、終了時に削除します。処理が途中で止まると、このファイルが残ります。
WordPressは .maintenance に記録された時刻が古い場合、一定時間(10分程度)経つとメンテナンス表示をやめる仕組みを持っています。それでも表示が続く、またはファイルが残っていること自体が気になる場合は、FTPやファイルマネージャーで削除します。先頭がドットのファイルは「隠しファイル」として扱われるため、FTPソフトやファイルマネージャーで隠しファイルを表示する設定にしてから探してください。
ls -la .maintenance
rm .maintenance
削除後にサイトが表示されれば、メンテナンス表示の問題は解消です。表示が戻らず致命的なエラーが出る場合は、ファイルの置き換えが途中で止まっているため、手順3以降に進みます。
手順2:更新ロックを解除する
WordPressは同じ更新が二重に走らないよう、データベースの wp_options テーブル(接頭辞はサイトにより異なります)にロック用のオプションを書き込みます。主なものは次の2つです。
core_updater.lock:コアの更新中に作られるロックauto_updater.lock:バックグラウンドの自動更新処理全体のロック
これらは一定時間が経てば自動で無視されるようになっていますが、すぐに更新をやり直したい場合は削除します。WP-CLIなら次のコマンドです。
wp option get core_updater.lock
wp option get auto_updater.lock
wp option delete core_updater.lock
wp option delete auto_updater.lock
wp option get で「存在しない」と返る場合、そのロックは残っていません。phpMyAdminで作業する場合は、option_name が上記と一致する行だけを削除します。似た名前の行を誤って消さないよう、検索は部分一致(LIKE)ではなく名前そのもの(=)で指定してください。
手順3:途中で止まったプラグイン・テーマを入れ直す
プラグインの更新中に止まると、プラグインのフォルダが空になったり、古いファイルと新しいファイルが混在したりします。プラグイン一覧から消えている場合は、フォルダ自体が無くなっている可能性があります。
まず wp-content 配下に次のフォルダが残っていないか確認します。
wp-content/upgrade/:ダウンロードした更新ファイルを展開する作業用フォルダwp-content/upgrade-temp-backup/:比較的新しいWordPressで、更新前のプラグイン・テーマを一時保管するフォルダ
upgrade-temp-backup/plugins/ に該当プラグインのフォルダが残っていれば、それが更新前のファイルです。いったん別の場所にコピーして保管しておくと、新しいバージョンで不具合が出たときに戻せます。wp-content/upgrade/ の中身は作業用の一時ファイルなので、更新処理が動いていないことを確認したうえで削除して構いません。
そのうえで、該当プラグインを入れ直します。WP-CLIでは公式ディレクトリのプラグインを上書きインストールできます(contact-form-7 の部分は対象のプラグインのスラッグに置き換えます)。
wp plugin install contact-form-7 --force
wp plugin list --status=inactive
有料プラグインなど公式ディレクトリに無いものは、配布元から最新のzipをダウンロードし、管理画面の「プラグイン」→「新規追加」→「プラグインのアップロード」から入れ直します。同じプラグインがすでにある場合は、上書きするかどうかを確認する画面が表示されます。テーマも同様に wp theme install <スラッグ> --force で入れ直せます。
入れ直しても有効化できない場合は、次の手順4のデバッグログでエラー内容を確認してください。新しいバージョンがPHPのバージョンや他のプラグインと合っていない可能性があります。
手順4:コア更新が途中で止まった場合の再インストール
コアファイルの置き換えが途中で止まると、管理画面に入れないことがあります。この場合でも wp-content(テーマ・プラグイン・アップロード画像)と wp-config.php を残したまま、コアファイルだけを入れ直せば復旧できます。
管理画面に入れる場合は、「ダッシュボード」→「更新」画面にある再インストール用のボタンから、現在のバージョンを入れ直すのが簡単です。管理画面に入れない場合は、WP-CLIで次のように実行します。
# 現在の状態を確認(改変・欠落したコアファイルが表示される)
wp core verify-checksums
# wp-content を上書きせずにコアファイルを入れ直す
wp core download --skip-content --force
# データベースの更新が必要な場合に実行
wp core update-db
WP-CLIが使えない場合は、WordPress公式サイトから同じ言語・同じバージョンのzipを入手し、wp-content フォルダと wp-config.php を除いたファイルをFTPで上書きアップロードします。wp-content を上書きすると、テーマやアップロード画像が消えるおそれがあるため注意してください。
原因を確認して再発を防ぐ
復旧できたら、なぜ途中で止まったのかを確認しておかないと、次の自動更新で同じことが起きます。wp-config.php で一時的にデバッグログを有効にし、更新をやり直してエラーを記録します。
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
ログは wp-content/debug.log に出力されます。「Maximum execution time」「Allowed memory size」と出ていればPHPの実行時間やメモリの不足、「Could not create directory」「Could not copy file」と出ていればファイルの書き込み権限やディスク容量の問題です。サーバーのPHPエラーログや、更新の失敗時に管理者宛てに送られるメールにも手がかりがあります。
あわせて、「ツール」→「サイトヘルス」も確認します。バックグラウンド更新が動作するかどうかの検査項目があり、ファイルの所有者や書き込み権限、バージョン管理システム(.git など)の存在によって自動更新が止められていないかを知らせてくれます。
再発を防ぐための主な対策は次のとおりです。
- ディスク容量に余裕を持たせる(更新ファイルの展開とバックアップで一時的に容量を使います)
- PHPの
max_execution_timeやmemory_limitが極端に小さくないかを確認する - 不具合が出やすいプラグインは、プラグイン一覧の「自動更新を無効化」で自動更新の対象から外し、手動で更新する
- 本番環境で自動更新を止めて計画的に更新したい場合は、
wp-config.phpにdefine( 'AUTOMATIC_UPDATER_DISABLED', true );を書く方法がある。ただしセキュリティ更新も止まるため、手動で更新する運用を決めてから設定する
なお、比較的新しいWordPressには、プラグインの自動更新後にサイトが致命的なエラーになった場合に更新前の状態へ戻そうとする仕組みも入っています。それでもすべての失敗を防げるわけではないため、自動更新を使う場合も定期バックアップは欠かせません。WordPressの更新まわりの挙動はバージョンによって変わることがあります(2026年10月現在の情報です)。
まとめ
自動更新が途中で止まったときは、次の順に対処します。
- 最初にファイルとデータベースのバックアップを取る
- ルートディレクトリに残った
.maintenanceを削除してメンテナンス表示を解除する core_updater.lockとauto_updater.lockが残っていれば削除して、更新をやり直せる状態にする- 途中で止まったプラグイン・テーマは
wp-content/upgrade-temp-backup/の有無を確認したうえで入れ直す - コアは
wp-contentとwp-config.phpを残したまま入れ直し、必要に応じてwp core update-dbを実行する debug.logとサイトヘルスで止まった原因を確認し、容量・権限・PHP設定を見直す