WordPressサイトでcURLエラー28:接続がタイムアウトしましたというエラーが表示されていますか?
cURLエラー28は、一般的なWordPress REST APIの問題であり、ウェブサイトのパフォーマンスに悪影響を与え、予期しない動作を引き起こす可能性があります。
この記事では、WordPressウェブサイトで「cURLエラー28:接続がタイムアウトしました」という問題を簡単に修正する方法を紹介します。

このチュートリアルで取り上げるトピックの簡単な概要を以下に示します。
- WordPressのcURLとは何ですか?
- WordPressでcURLエラー28が発生する原因は何ですか?
- WordPressファイアウォールを一時的に無効にする
- すべてのWordPressプラグインを無効化する
- ホスティングサーバーが最新のソフトウェアを使用していることを確認する
- SSLの安全でないコンテンツの問題を修正する
- ホスティングプロバイダーにヘルプを求める
WordPressのcURLとは何ですか?
cURLは、WordPressやその他の多くのWebアプリケーションがURLを使用してデータの送受信リクエストを行うために使用するソフトウェアユーティリティです。
WordPressは、いくつかのAPIリクエストを処理するためにcURLを使用します。これはPHPプログラミング言語の拡張機能として利用可能であり、WordPressホスティング会社がこれを管理しています。
cURLライブラリは、WordPressの内部的な仕組みにおいて重要な役割を果たします。正しく設定されていない場合、WordPressウェブサイトは正常に機能しません。
WordPressでcURLエラー28が発生する原因は何ですか?
サーバーからのデータリクエストにタイムリーに応答できないことが、WordPressでcURLエラー28を引き起こします。
WordPressはREST API(プログラミング技術)を使用してデータリクエストを送受信します。これらのリクエストがタイムアウトすると、サイトヘルスレポートに「REST APIでエラーが発生しました」というタイトルで重大な問題が表示されます。

エラーを展開すると、エラーメッセージを含む詳細が表示されます。
「エラー:cURLエラー28:xミリ秒後にxバイト受信して操作がタイムアウトしました(http_request_failed)」
「サイトがループバックリクエストを完了できませんでした」というタイトルの関連する別の問題も表示される場合があります。以下の説明と同様のエラーメッセージが表示されます。
「サイトへのループバックリクエストが失敗しました。これは、それらに依存する機能が現在期待どおりに機能していないことを意味します。」
cURLがタイムアウトする原因は何ですか?
WordPressでcURLがタイムアウトする原因はいくつか考えられます。
例えば、CloudflareのようなWordPressファイアウォールプラグインは、不審なアクティビティと見なした場合、REST APIリクエストをブロックすることがあります。
DNSサーバーが正しく機能していない場合、HTTPリクエストも失敗し、WordPressでcURLタイムアウトエラーが発生する可能性があります。
WordPressホスティングサーバーの設定が不十分な場合、接続タイムアウトしきい値が非常に低く、特定のWordPressプロセスが正常に実行されないことがあります。
それでは、「cURLエラー28:接続がタイムアウトしました」という問題をWordPressでトラブルシューティングして解決する方法を見ていきましょう。
1. WordPressファイアウォールを一時的に無効にする
WordPressファイアウォールまたはセキュリティプラグインを使用している場合は、一時的に無効にしてください。

その後、WordPress のサイトヘルスレポートページにアクセスして、問題が解決したかどうかを確認できます。
もしそうであれば、WordPress のファイアウォールログを確認して、どの API リクエストがブロックされたかを確認してください。
これにより、問題の原因を特定するか、ファイアウォール設定を調整して正当なAPIリクエストをブロックしないようにすることができます。
2. すべてのWordPressプラグインを無効にする
WordPressプラグインとWordPressテーマは、独自のAPIリクエストを送信してデータを送受信します。これらの呼び出しが頻繁すぎたり、完了に時間がかかりすぎたりすると、サイトヘルスレポートでcURLエラーが発生する可能性があります。
WordPress プラグインが問題を引き起こしているかどうかを判断する最も簡単な方法は、それらを無効化することです。単に プラグイン » インストール済みプラグイン ページに移動し、すべてのプラグインを選択します。

その後、一括アクションドロップダウンメニューをクリックして「非アクティブ化」を選択し、「適用」ボタンをクリックします。
これでサイトヘルスレポートにアクセスして、問題が解消されたかどうかを確認できます。これで問題が解決した場合は、プラグインを有効化し始め、いずれかのプラグインがエラーメッセージを再表示させる原因となっているかどうかを確認できます。
これにより、問題の原因となっているプラグインを見つけるのに役立ち、その後プラグインの作成者にサポートを依頼できます。
3. ホスティングサーバーが最新のソフトウェアを使用していることを確認する
次のステップは、Web ホスティングサーバーが PHP、cURL ライブラリ、OpenSSL の最新バージョンを使用していることを確認することです。
これは、ツール » サイトヘルスページのシステム情報タブを確認することで確認できます。

「情報」タブに切り替えて、「サーバー」セクションを展開するだけです。
ここから、WordPressホスティングサーバーにインストールされているソフトウェアに関する情報を取得できます。

理想的には、サーバーは PHP 7.4.13 以降、cURL バージョン 7.74.0 以降、OpenSSL 1.1.1 以降を使用している必要があります。
そうでない場合は、WordPressホスティング会社に連絡し、ホスティングアカウントのWordPressを最新のソフトウェアバージョンに更新してもらうように依頼する必要があります。
4. SSL の安全でないコンテンツの問題を修正する
WordPressサイトがHTTPS/SSLを使用しているが、正しく設定されていない場合、Webサーバーが安全でないcURLリクエストをブロックする可能性もあります。
同様に、WordPress サイトが HTTPS/SS を使用していないのに、HTTPS URL を使用して API 呼び出しを行った場合、それらのリクエストも失敗し、代わりに次の cURL エラーが表示される場合があります:
‘エラー: cURL エラー 7: localhost ポート 443 への接続に失敗しました: 接続拒否されました (http_request_failed)’

これを修正するには、ホスティングプロバイダーにウェブサイトのSSL証明書を再インストールするように依頼できます。問題が解決しない場合は、一般的なSSLの問題を修正する方法に関するガイドに従って、WordPressウェブサイトにSSLを正しく設定してください。
5. ホスティングプロバイダーにヘルプを求める
上記の手順でWordPressサイトのcURLエラー28が解決しない場合、問題はホスティング環境の問題である可能性が高いです。
ホスティング会社のみが制御および修正できる要因は数多くあります。たとえば、ホスティング会社のDNSサーバーがタイムリーにリクエストを解決できない場合、cURLリクエストがタイムアウトします。
その他のシナリオとしては、ホスティングサーバーの接続速度が遅い、またはネットワークの問題が考えられます。
問題がまだ解決しない場合は、エラーの詳細を含むサポートリクエストをホスティングサポートチームに連絡してください。その後、技術スタッフがトラブルシューティングを行い、修正を適用して問題を解決できます。
ホスティング会社があまり協力的でない場合は、マネージドWordPressホスティングプロバイダーであるSiteGroundに切り替える時期かもしれません。SiteGroundでは、24時間年中無休の専門技術サポートに加え、超高速サーバーとプレミアムWordPressセキュリティを利用できます。
この記事がWordPressでcURLエラー28を修正する方法を学ぶのに役立ったことを願っています。また、WordPressエラーのトラブルシューティング完全ガイドと、一般的なWordPressエラーの修正に関する究極のハンドブックも参照することをお勧めします。
この記事が気に入ったら、WordPressのビデオチュートリアルについては、YouTubeチャンネルを購読してください。 TwitterやFacebookでもフォローできます。

イジー・ヴァネック
素晴らしいアドバイスをありがとうございます。個人的には、サーバー管理者と相談し、PHPを更新した後にのみ問題を解決することができました。直接的な特定の理由は見つかりませんでしたが、現在使用中のソフトウェアに焦点を当てるというあなたの提案が役立ちました。問題のウェブサイトは古いPHP 7.1で実行されており、新しいバージョン8.2で問題が解決しました。
ミゲル
問題は、使用しているPHPにあります。プラグインまたはテーマがまだテストされておらず、PHP 7.4以上で動作しない場合、これらのエラーが発生します。
WPBeginnerサポート
他の可能性のある理由を探している方のために、これを共有していただきありがとうございます!
管理者