こんにちは、Dr.WordPressです。
WordPressで投稿や固定ページを編集して「更新」を押したときに、
「更新に失敗しました。返答が正しいJSONレスポンスではありません。」
と表示されることがあります。
例えば、
「記事は普通に編集できるのに保存できない」
「固定ページを更新しようとするとエラーになる」
「昨日までは普通に更新できていた」
といったケースです。
「JSON」と書かれているため難しそうに見えますが、実際にはWordPressとサーバー間の通信などが正常に行われていないことで発生する場合があります。
今回は、このエラーが表示されたときに確認したい7つの原因をご紹介します。
① REST APIに問題が発生している
まず確認したいのがWordPressのREST APIです。
WordPressのブロックエディターでは、記事を保存するときなどにREST APIを利用してWordPressと通信します。
この通信が正常に行われないと、WordPressが期待しているデータを受け取れず、JSONレスポンスのエラーが表示されることがあります。
そのため、エディター自体は開けるのに「保存や更新だけできない」という症状になる場合があります。
② パーマリンクに問題がある
WordPressのパーマリンク設定が影響している場合もあります。
URLの処理が正常に行われていないことでREST APIへの通信に問題が発生し、JSONエラーにつながるケースがあります。
特に、
・サイトを移行した
・パーマリンクを変更した
・サーバーを変更した
といったあとから発生した場合は確認したいポイントです。
パーマリンク設定を確認する場合は、現在の設定を把握してから作業しましょう。
③ WordPressのURL設定が合っていない
WordPressには、
・WordPressアドレス
・サイトアドレス
というURLに関する設定があります。
この2つの設定に意図しない違いがあったり、実際にアクセスしているURLと設定が合っていなかったりすると、通信に問題が発生する場合があります。
特にドメイン変更やサイト移行を行ったあとにJSONエラーが出るようになった場合は確認してみましょう。
④ SSL設定に問題がある
httpとhttpsの混在も原因のひとつです。
例えば、サイト自体にはhttpsでアクセスしているのに、WordPress内部の一部のURLがhttpのままになっているケースです。
このような状態では、ブラウザ側で通信が正常に行われず、記事の更新に失敗する場合があります。
SSL化した直後やサイトを移行した直後に発生した場合は、URL設定とあわせて確認してみましょう。
⑤ セキュリティ設定やWAFが通信を止めている
サーバーのWAFやセキュリティプラグインによって、REST APIへの通信がブロックされることもあります。
特に、
・特定の記事だけ保存できない
・特定の内容を入力するとエラーになる
・セキュリティ設定を変更してから発生した
といった場合は確認したいポイントです。
ただし、原因が分からない状態でセキュリティ機能をすべて無効にするのはおすすめできません。
どの通信がブロックされているのかを確認しながら切り分けましょう。
⑥ プラグインが影響している
プラグインがREST APIやエディターの通信に影響している場合もあります。
例えば、
・セキュリティプラグイン
・キャッシュプラグイン
・高速化プラグイン
・SEOプラグイン
などです。
「プラグインを追加してから保存できなくなった」
「アップデートした直後からエラーが出る」
という場合は、直前に変更したプラグインを確認してみましょう。
⑦ サーバー側でエラーが発生している
WordPressからサーバーへ通信した結果、PHPエラーや500エラーなどが発生しているケースもあります。
この場合、本来返ってくるはずのデータとは違う内容が返されることで、
「返答が正しいJSONレスポンスではありません」
と表示されることがあります。
プラグインやWordPressの設定を確認しても原因が見つからない場合は、サーバーのエラーログなども確認したいポイントです。
JSONそのものを修正するとは限らない
このエラーを見ると、
「JSONというファイルがおかしい?」
「JSONを修正しないといけない?」
と思うかもしれません。
しかし、このエラーは必ずしもJSONファイルそのものに問題があるという意味ではありません。
WordPressが期待している形式の返答を正常に受け取れなかった結果、JSONレスポンスのエラーとして表示されている場合があります。
そのため、REST APIやURL、SSL、プラグイン、サーバーなどを順番に確認して原因を探していくことが大切です。
JSONレスポンスエラーが出たときの確認順序
STEP 1
編集中の内容を別の場所へ保存しておく
STEP 2
ページを再読み込みしてもう一度確認する
STEP 3
パーマリンク設定を確認する
STEP 4
WordPressのURL設定とSSLを確認する
STEP 5
REST APIが正常に通信できているか確認する
STEP 6
プラグインやWAFなどのセキュリティ設定を確認する
STEP 7
サーバーのエラーログを確認する
特に記事を編集中の場合は、原因を調べる前に入力した文章をコピーして保存しておくと安心です。
まとめ
WordPressで「返答が正しいJSONレスポンスではありません」と表示される場合は、
① REST API
② パーマリンク
③ WordPressのURL設定
④ SSL設定
⑤ セキュリティやWAF
⑥ プラグイン
⑦ サーバー側のエラー
などを確認してみましょう。
JSONという言葉だけを見ると難しそうですが、実際にはWordPressとサーバー間の通信やURL設定などが原因になっているケースがあります。
一つずつ確認して原因を切り分けていきましょう。
原因が分からないWordPressエラーも診断します
WordPressのエラーは、プラグイン・テーマ・PHP・サーバー設定など、原因が見た目だけでは判断できないケースがあります。
いろいろ試しても直らない場合は、状況を整理しながら「どこに問題があるのか」から切り分けます。
1件1,000円で、原因の切り分け・問題箇所の特定・対処方法をご案内します。
「突然エラーが出た」「何を触ればいいか分からない」といった状態でもOKです。
購入前に「このエラーでも相談できますか?」とメッセージいただいても大丈夫です。