WordPressで記事を公開・更新しようとした際に、「公開に失敗しました。返答が正しい JSON レスポンスではありません。」というエラーが表示され、何をしても保存できなくなることがあります。REST API やサーバー設定を疑っても直らず、時間だけが溶けていく。この記事では、実際に発生したケースをもとに、原因と判断プロセス、そして現実的な対処方針を整理します。
結論から言うと、このケースでは All in One SEO(AIOSEO)プラグインが原因 でした。AIOSEO を無効化したところ、エラーは即座に解消しました。

一見すると「じゃあ消せばいいだけ」と思われがちですが、SEO プラグインを完全に外すのは現実的でない場合も多く、問題の本質はそこではありません。重要なのは、なぜこのエラーが起きたのか、そして同じ状況に遭遇したときにどう判断すべきか、です。
今回の環境では、WordPress 標準の REST API(/wp-json/wp/v2/)は正常に動作していました。一方で、AIOSEO が独自に提供している REST エンドポイント、具体的には以下のようなリクエストが失敗していました。
- /wp-json/aioseo/v1/analyze-headline → 403 Forbidden
- /wp-json/aioseo/v1/redirects/post/{post_id} → 404 Not Found
Gutenberg(ブロックエディター)は、投稿保存時に複数の REST API を同時に呼び出します。その中に AIOSEO の解析系 API が含まれており、1つでも不正なレスポンス(403 や 404)が混ざると、全体を「JSON が壊れている」と判断して保存処理を中断します。


つまり、REST API 自体は通っているのに、SEO プラグインの内部 API が壊れているせいで、WordPress 全体の投稿処理が失敗していた、という構造です。
この挙動は設定ミスというより、AIOSEO の設計上の特性に近いものです。権限チェック、DB 状態、アップデート不整合、あるいは WAF との相性など、複数の条件が重なると、AIOSEO の REST だけがエラーを返すことがあります。
今回のケースで有効だった対処は次の通りです。
まず最短での切り分けとして、AIOSEO を一時的に無効化します。これで投稿が通るなら、原因はほぼ確定です。その上で、以下のいずれかを選択します。
- AIOSEO の「コンテンツ解析」「ヘッドライン分析」「リダイレクト監視」など、REST を叩く機能をオフにして使い続ける
- AIOSEO をリセット(完全削除→再インストール)して REST ルートを再登録させる
- 別の SEO プラグイン、もしくは軽量構成に移行する
大規模サイトや更新頻度の高いサイトでは、「全部入り SEO プラグイン」が編集体験の足を引っ張るケースは珍しくありません。SEO 機能は重要ですが、投稿できなくなる時点で本末転倒です。
この記事では、WordPress 本体や REST API を疑う前に、SEO プラグインの独自 REST が壊れていないかを確認するという視点が重要であることを強調しておきます。