REST APIでエラーが発生しました
  • エラー
  • 保守管理
最終更新日:
サイト引越し屋さん編集部サイト引越し屋さん編集部

「REST APIでエラーが発生しました」の原因と解決方法

WordPressのサイトヘルスに「REST APIでエラーが発生しました」と表示され、「cURL error」などの見慣れない文字列に戸惑っていませんか?

この警告は、WordPressが自分自身のサイトと通信できなかったことを示す「致命的な問題」です。放置すると、ブロックエディターで記事を保存できないなど、日々の更新作業に支障が出ることがあります。

サイト引越し屋さんにも、サーバー移転を終えたお客様から「こんなメッセージが出た」とご相談がありました。本記事では、エラー文の読み方、主な原因、自分でできる切り分け手順を実例とあわせて解説します。

\サイトヘルスの問題を私たちが代わりに解決します!/

「REST APIのエラーで記事の保存に支障が出ないか心配」
「エラー文を見ても原因が分からない」

そんなときは私たちサイト引越し屋さんにお任せください。
専門のエンジニアが作業を代行させていただきます。

ご相談はこちらからどうぞ

「REST APIでエラーが発生しました」はどんな警告?

WordPressが自分のREST APIにアクセスしようとして、接続そのものが失敗したときに表示されます。サイトヘルス上は「致命的な問題」に分類されます。

REST APIとは

REST APIは、WordPressと他のプログラムがデータをやり取りするための窓口です。ブロックエディターは、記事の読み込みや保存にこの窓口を使っています。一部のプラグインや外部サービスの連携もREST APIを利用します。

サイトヘルスが何をチェックしているか

サイトヘルスは、サーバーから自サイトの「/wp-json/wp/v2/types/post」に、ログイン中の管理者としてアクセスします。10秒以内に応答がない、もしくは接続できないと、この警告になります。

表示 分類 意味
REST API でエラーが発生しました 致命的な問題 接続自体が失敗(タイムアウト・接続拒否など)
REST API が予期しない結果を返しました おすすめの改善 接続はできたが401・403・404などが返った

エラー文の読み方

警告を開くと、「REST API レスポンス:」の後ろに原因のヒントが書かれています。よく見るものは次のとおりです。

エラー文の例 考えられる原因
cURL error 28: Operation timed out サーバーが重い、または防御設定に通信が止められている
cURL error 7: Failed to connect … Connection refused サーバーが自分自身への接続を受け付けていない(ポートの遮断など)
cURL error 60 / 35 SSL証明書の不備・期限切れ
401 / 403 Basic認証、WAF、セキュリティプラグインによるブロック
404 パーマリンクや.htaccessの不備
===

サイト引越し屋さんでは、サイトヘルスに関わる様々なお悩みにご対応可能です。
→無料ご相談窓口はこちら

「REST APIでエラーが発生しました」の原因

原因は、サーバー側とWordPress側のどちらにもあります。複数が重なっていることも珍しくありません。

原因1.サーバーのWAF・セキュリティ設定が通信を止めている

レンタルサーバーのWAF(不正アクセスを防ぐ機能)が、WordPress自身の通信を攻撃と勘違いして遮断することがあります。海外からのアクセス制限を有効にしている場合も同様です。

原因2.セキュリティプラグインがREST APIを制限している

セキュリティプラグインの中には、REST APIを無効化・制限する機能を持つものがあります。制限が強すぎると、管理者自身の通信まで止まります。

原因3.サーバーが自分自身に接続できない

サーバーが自サイトのドメインを「127.0.0.1」(自分自身)として解決し、そのポートが閉じているケースです。HTTPS専用の構成でHTTP(80番ポート)を閉じていると、「cURL error 7 … Connection refused」が出ます。サーバー移転やドメイン変更の後に表面化しやすい原因です。

原因4.Basic認証・SSL証明書・パーマリンクの不備

サイト全体にBasic認証をかけている、SSL証明書が切れている、.htaccessが壊れている、などの場合もREST APIに届きません。テスト環境でよく見られる原因です。

原因5.プラグイン・テーマの不具合やサーバーの高負荷

処理の重いプラグインや、PHPエラーを出すテーマがあると、10秒以内に応答できずタイムアウトします。共用サーバーの混雑で一時的に出ることもあります。

===

サイト引越し屋さんでは、サーバー移転やデータバックアップをはじめて、本番公開作業やサイトの不具合修正・メンテナンスなど様々なお悩みにご対応可能です。
→無料ご相談窓口はこちら

「REST APIでエラーが発生しました」の解決法

上から順に試すと、原因を効率よく絞り込めます。各手順の後にサイトヘルスを開き直し、警告が消えたか確認しましょう。

解決策1.ブラウザでREST APIに直接アクセスする

「https://自サイトのドメイン/wp-json/」をブラウザで開きます。文字列がずらっと表示されれば、REST API自体は生きています。この場合は「サーバーから自分への通信」だけが失敗しているため、解決策3、4に進みます。

解決策2.プラグインを一時停止して切り分ける

セキュリティ系・キャッシュ系のプラグインから順に停止し、警告が消えるか確認します。消えたら、そのプラグインのREST API制限の設定を見直します。

本番サイトでプラグインを停止すると、表示や機能が変わることがあります。アクセスの少ない時間帯に行うか、テスト環境で試しましょう。

解決策3.サーバーのWAFを一時的にオフにして確認する

サーバー管理画面でWAFや海外アクセス制限を一時的にオフにし、警告が消えるか確認します。原因が分かったらオンに戻し、該当するルールだけを除外します。

WAFはオフのままにしないでください。確認が終わったら必ず元に戻しましょう。

解決策4.サーバー会社に内部通信の可否を問い合わせる

「cURL error 7」など、サーバーが自分自身に接続できない場合は、サーバー側の設定でしか直せないことがあります。サイトヘルスに表示されたエラー文をそのまま添えて、サポートに問い合わせましょう。

解決策5.パーマリンク・SSL・Basic認証を見直す

404が返る場合は、「設定」→「パーマリンク」で変更せずに「変更を保存」を押すと、.htaccessが書き直されて直ることがあります。SSL証明書の期限や、Basic認証の対象範囲もあわせて確認します。

サイト引越し屋さんに寄せられた実際の相談事例:サーバー移転の半年後に「cURL error 7」(地域団体様)

PHPのバージョン問題でサーバー移転とドメイン変更をご依頼いただいたお客様から、移転後にご相談がありました。サイトヘルスには次のエラーが表示されていました。

REST API レスポンス: (http_request_failed) cURL error 7: Failed to connect to 127.0.0.1 port 80 after 0 ms: Connection refused

調査の結果、WordPressがサーバー内部で自分自身と通信できていない状態だと分かりました。

要因としては、HTTPS専用構成によるHTTP(80番)の遮断、WAFなどサーバーのセキュリティ設定、セキュリティ系プラグインの干渉が重なっている可能性があります。

そのため、サーバー設定・セキュリティ構成・内部通信をまとめて調査し、是正する方針をご提案しました。

サーバー移転直後は問題がなくても、数か月後に警告が出ることがあります。移転後も、定期的にサイトヘルスを確認する習慣をつけましょう。

まとめ:REST APIのエラーはエラー文から切り分けましょう

「REST APIでエラーが発生しました」は、WordPressが自分自身のサイトと通信できないときに出る致命的な問題です。原因は、WAFやセキュリティプラグインのブロック、サーバーの内部通信、SSLやパーマリンクの不備などさまざまです。

まずエラー文のcURL errorの番号やステータスコードを確認し、プラグイン→WAF→サーバーの順に切り分けましょう。サーバー設定が絡む場合は、無理に触らず専門家に任せるのが安全です。サイト引越し屋さんでは、調査から修正まで対応しています。

\サイトヘルスの問題を私たちが代わりに解決します!/

「REST APIのエラーで記事の保存に支障が出ないか心配」
「エラー文を見ても原因が分からない」

そんなときは私たちサイト引越し屋さんにお任せください。
専門のエンジニアが作業を代行させていただきます。

ご相談はこちらからどうぞ

この記事を書いた人

サイト引越し屋さん編集部

サイト引越し屋さん編集部

累計対応実績3,500案件以上、日本で最も利用されているサーバー移転&保守代行サービス『サイト引越し屋さん』のマーケティング部です。 サイト引越しに関わる技術情報をはじめ、WordPressやその他のWebサービスに関するノウハウを発信しています。 全日本SEO協会所属。

本サイトにてご提供している情報については、最新かつ正確な情報を提供するよう努力していますが、情報の正確性や完全性を保証するものではございません。また、コンテンツには一部プロモーションが含まれております。本サイトの情報を利用することによって生じたいかなる損害に対しても、当社は責任を負いかねます。情報をご利用される際は、ご自身の判断と責任において行っていただきますようお願い致します。