【PageSpeed Insightsエラー】リクエストしたページを Lighthouse で正確に読み込めません→WPでメンテにしてました
| 更新: 2024/02/10 | 1950文字
今回はPageSpeed Insightsエラーで、『リクエストしたページを Lighthouse で正確に読み込めません』というようなメッセージが出てきたので、内容を調査しました。なぜか特定のテストサイトで計測できないという状況でしたが、原因がわかったのでお知らせします。さっそくかくにんしていきましょう。
目次
PageSpeed Insightsエラーの状況
管理人が、xfreeで作ったテストサイトで、超速い自社開発テーマ&会員プラグインなどのテストをしていました。で、PageSpeed Insightsを使って、ついでに読み込み速度をチェックしようとしたところ・・・
『Lighthouse returned error: FAILED_DOCUMENT_REQUEST.リクエストしたページを Lighthouse で正確に読み込めませんでした。』というエラーメッセージが登場。特にエラーでページが表示されないというのは無かったんだけど、なぜこのようなエラーが出ていたのか気になったので、調べてみました。
ポイントは『普段は公開していない、テスト用のページ』ということかもしれません。
原因→wp_dieでWordPressのページを表示させず、メンテメッセージを出していた
原因はこれ。『if ( !is_user_logged_in() ) {wp_die(‘ただいまメンテナンス中です。’);}』で、メンテモードをつけたのを忘れていました(笑)(ログイン状態だとサイトが見れるので気が付くのが遅れました)。 このファンクションは『response(HTML ステータスコードを返す)』というパラメーターがあって、『初期値: 500』となっています。なのでFAILED_DOCUMENT_REQUEST 500になっていたわけです。
この部分をfunctions.phpからカットすれば、PageSpeed Insightsでも計測できるようになりました。『500 Internal Server Error』を返して、メンテ表示にするのは、公開サイトをメンテするときはよろしくないかなと思います(クローラーがきたときのことを考えて)。これはテスト用なので気にしませんが。
関数リファレンス wp_die(codex)
https://wpdocs.osdn.jp/関数リファレンス/wp_die
管理人のケース以外に『リクエストしたページを Lighthouse で正確に読み込めません』が出そうなケース
管理人のケースでは『ログイン者以外にアクセス制限がかかっていた』ということで計測できませんでしたが、調査したところ、他にも表示できない例があるようです。いくつか挙げてみます。
wp_dieではないが、.htaccessで制限をかけている場合
例えば.htaccessを使って『特定のipや、特定のリファラじゃないと見れない』みたいに制限がかかっている場合は、計測できません。Lighthouseがこのケースでも、ページを読み込めないからです。WPの場合はセキュリティ系で.htaccessを書き換えるものもあるので、その点もチェックします。
構文にエラーがあって、ページが表示できていないとき
たとえばphp重大エラーとかがあって、ページが表示できない場合。この場合もLighthouseがページを読めません。検証はしてないけど、リダイレクトでループしまくってタイムアウト、みたいな場合も、たぶんダメでしょう。
そのほか
調べたら『サーバー変えたら直った』という方もいるようです。サーバー側設定でもなにかあるかもしれません。
あとがき・まとめ
- wp_dieでメンテモード(つけたの忘れていた)にしていたら、PageSpeed Insightsが計測エラーになった
- アクセス制限などをかけている場合は、Lighthouseがページを読めず、エラーになることも
というところでしょうか。管理人の場合は、メンテ制限を忘れていただけだったので、サクッと解決しましたが、WPだと『プラグイン・.htaccess・テーマ・サーバーセッティング』など、いろいろな要素が絡んできそうです。『制限・構文エラー』などを中心に、ひとつひとつ確認していくと解決できそうです。
【カテゴリ】- サイトエラー対策と復旧
【タグ】- pagespeed insights