「記事を書いたのに保存できない」「更新ボタンを押すたびにエラーが出る」
WordPressで「更新に失敗しました」エラーが出ると、書いた内容が消えてしまうこともあり、かなり焦ります。私も何ヶ月も悩み続けました。
この記事では、実際に試して解決した方法を4つ紹介します。まず一番簡単な方法から試してみてください。
「更新に失敗しました」エラーとは
WordPressのブロックエディタ(Gutenberg)で記事を保存・更新しようとしたとき、以下のようなエラーメッセージが表示されることがあります。
- 「更新に失敗しました。レスポンスが正しい JSON レスポンスではありません。」
- 「更新に失敗しました。」
- 「公開に失敗しました。」
このエラーが出ると記事が保存されないため、せっかく書いた内容が失われる可能性があります。また、ブラウザをリロードすると以前の保存データに戻ってしまいます。
エラーの主な原因
このエラーが発生する主な原因は以下のとおりです。
- プラグインの競合:他のプラグインがREST APIへの通信を妨害している
- サーバーの設定:.htaccessやセキュリティ設定がREST APIをブロックしている
- ブロックエディタのバグ:Gutenberg自体の不具合
- パーマリンク設定の崩れ:WordPressのURLルールがリセットされている
- テーマとの相性問題:使用中のテーマがエディタと競合している
解決方法4選
解決策①:クラシックエディタープラグインを導入する【最も簡単・確実】
私が実際に試して解決したのはこの方法です。技術的な知識がなくても5分で対応できます。
手順:
- WordPress管理画面の左メニューから「プラグイン」→「新規追加」をクリック
- 検索ボックスに「Classic Editor」と入力
- 「Classic Editor」(WordPress Contributors作)を「今すぐインストール」→「有効化」
- 記事編集画面を開くと、旧来のクラシックエディタに切り替わります
ブロックエディタ(Gutenberg)からクラシックエディタに切り替わることで、REST APIを使った通信エラーが回避されます。根本的な原因の解決ではありませんが、すぐに記事が書ける状態に戻せるのが最大のメリットです。
クラシックエディタはWordPressの公式プラグインで、現在も継続的にサポートされています。安心して使えます。
解決策②:パーマリンク設定を保存し直す
WordPressのパーマリンク設定が崩れると、REST APIへのアクセスができなくなることがあります。この方法は変更不要で、「保存し直す」だけで解決する場合があります。
手順:
- 管理画面の「設定」→「パーマリンク」を開く
- 何も変更せずに、「変更を保存」ボタンをクリック
- 記事を更新して、エラーが解消されているか確認する
この操作で.htaccessのURLルールが再生成され、REST APIへのアクセスが正常化します。まず試してみる価値のある方法です。
解決策③:プラグインの競合を確認する
セキュリティ系プラグインや最適化プラグインが、WordPressのREST APIをブロックしていることがあります。
確認手順:
- 管理画面の「プラグイン」→「インストール済みプラグイン」を開く
- クラシックエディタ以外のプラグインをすべて「一括停止」する
- 記事を更新して、エラーが解消されているか確認する
- 解消された場合、プラグインを一つずつ有効化して原因を特定する
よく競合の原因になるプラグイン:
- Wordfence(セキュリティプラグイン)
- iThemes Security
- WP Super Cache・W3 Total Cache(キャッシュプラグイン)
- Jetpack
原因プラグインが特定できたら、そのプラグインの設定でREST APIへのアクセスを許可するか、別のプラグインに乗り換えることを検討しましょう。
解決策④:.htaccessファイルを確認・修正する
サーバーの設定ファイル(.htaccess)が原因でREST APIへのアクセスがブロックされている場合があります。この方法はFTPやサーバーのファイルマネージャーが必要です。
手順:
- FTPソフト(FileZillaなど)またはサーバーのファイルマネージャーにアクセス
- WordPressのルートディレクトリ(wp-config.phpがある場所)を開く
- .htaccessファイルを開く(バックアップを先に取っておく)
- 以下の内容に書き換える
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
これはWordPressの標準的な.htaccessの内容です。カスタマイズされた設定が問題を引き起こしている場合、デフォルトに戻すことで解決することがあります。
それでも解決しない場合
上記4つの方法を試しても解決しない場合、以下を確認してください。
- WordPressのバージョンを最新に更新する:古いバージョンにはGutenbergのバグが含まれている場合があります
- PHPのバージョンを確認する:サーバー管理画面でPHPのバージョンを7.4以上にする
- サーバーの設定を確認する:共有サーバーによってはWAF(Webアプリケーションファイアウォール)がREST APIをブロックしているケースがあります。サーバー会社のサポートに問い合わせてみてください
まとめ:まずクラシックエディターを試して
「更新に失敗しました」エラーへの対処法をまとめます。
| 方法 | 難易度 | 効果 |
|---|---|---|
| ①Classic Editorプラグインを導入 | ★☆☆ 簡単 | ほぼ確実に解決 |
| ②パーマリンク設定を保存し直す | ★☆☆ 簡単 | 原因によっては解決 |
| ③プラグインの競合を確認 | ★★☆ 普通 | 原因特定に有効 |
| ④.htaccessを修正する | ★★★ やや難しい | サーバー設定が原因の場合に有効 |
私はClassic Editorプラグインの導入で解決しました。技術的な知識がなくても5分で対応できるので、まずこれを試してみてください。