↗付きの用語リンクは、別タブで説明を開きます。
WordPressで記事を保存したときに「返答が正しいJSONレスポンスではありません」と出ても、必ずしも本文が消えたとは限りません。まず同じ投稿を読み直し、保存結果を確かめてから原因を調べましょう。
この記事では、サイトURLとREST API、WAF、プラグイン、PHPログを順に確認する方法を紹介します。たとえば認証画面やエラーページがJSONの代わりに返れば、編集画面では同じ警告になることがあります。再送を重ねる前に、発生時刻と応答内容を記録してください。
このエラーが示していること
WordPress REST APIはJSONを要求・応答形式として使用します。管理画面の保存処理がREST APIへアクセスし、JSONとして解釈できない応答やエラーステータスを受け取ると、編集画面では一般的なJSONレスポンスエラーとして表示されることがあります。
REST APIの仕組みはWordPress REST API公式リファレンスで確認できます。
最初に記録する項目
| 記録項目 | 確認内容 |
|---|---|
| 発生操作 | 記事保存、画像追加、設定変更、プラグイン操作など |
| 発生日時 | サーバーログと照合できる時刻 |
| 対象URL | 管理画面と公開URL、HTTP/HTTPSの違い |
| HTTP状態 | 403、404、500、501など |
| 応答内容 | JSON、HTML、認証画面、WAF画面、PHP警告 |
| 直前の変更 | 更新、DNS、SSL、WAF、キャッシュ、プラグイン |
ブラウザの開発者ツールでNetworkを開き、エラーが出る操作を再現すると、失敗したリクエストのURL、HTTP状態、Responseを確認できます。認証情報やフォーム入力内容を含む画面は公開しないでください。
確認手順1:サイトURLとREST API
WordPressアドレスとサイトアドレスで、HTTPとHTTPS、wwwの有無、末尾のドメインが一致しているか確認します。次に、ログアウト状態でも公開可能なREST APIの入口へアクセスできるかを確認します。ただし、入口が表示されても保存用の認証済みリクエストが正常とは限りません。
確認手順2:WAF・セキュリティ・キャッシュ
失敗したHTTP状態が403や501などの場合、WAF、サーバー側のセキュリティルール、CDN、キャッシュがリクエストを遮断していないか確認します。WAFを確認する場合は、対象時刻とURLを記録し、無効化が必要なら短時間・対象を限定して検証します。確認後は必ず元の保護状態へ戻してください。
確認手順3:プラグインとテーマの競合
バックアップまたはステージング環境を用意し、直前に更新したプラグインや、セキュリティ・キャッシュ・エディター関連から切り分けます。本番サイトで一括停止すると決済やフォームへ影響するため、停止範囲と確認項目を決めてから実施します。
確認手順4:サーバー・PHPログ
発生時刻と同じ時間帯のエラーログを確認します。PHPの致命的エラー、メモリ不足、実行時間超過、権限、mod_security相当の遮断など、応答をJSON以外に変える要因がないかを見ます。ログにはパスや個人情報が含まれる場合があるため、共有時は匿名化します。
復旧後に確認すること
- 同じ保存操作が正常に完了する
- 更新内容が実際に保存されている
- 公開ページと管理画面に新しいエラーがない
- 一時的に変更したWAF・キャッシュ設定を戻した
- 原因、変更、確認結果を運用記録へ残した
501エラーが表示される場合は、WooCommerceとXServerで501を切り分ける手順も参照してください。
まとめ
正しいJSONレスポンスではないという表示は、原因名ではなく結果を示すメッセージです。発生操作、HTTP状態、応答内容、直前の変更を記録し、URLとREST API、WAF、プラグイン、サーバーログの順に範囲を狭めると、安全に原因へ近づけます。
