ブラウザで表示されるのにHTTPステータスが404となる場合の対処方法
先日Search Consoleのインデックスカバレッジで新しいエラーが2件表示されました。エラー理由は「送信された URL が見つかりませんでした(404)」とのこと。
しかし、指摘のあった2ページは確かに存在しています。指摘は以下2ページです。
- https://www.web-ma.co.jp/search-console/performance.html
- https://www.web-ma.co.jp/search-console/index-coverage.html
Search Consoleではこのように404と表示されています。
Googleにはインデックス状態を確認するための特殊コマンドがあります。それが「info:」です。
特殊な検索機能を使用すると、Google がインデックスにサイトをどのように登録しているかを示す、サンプルの結果を確認できます。これらの情報をすべて表示するには、info:google.com のように info: 演算子を使用します。
▼Google のインデックスの状態を確認する
https://support.google.com/webmasters/answer/35256
ということで「info:https://www.web-ma.co.jp/search-console/performance.html」と検索するとインデックス状態を確認できるのですが、このように検索結果に表示されません。
Fetch as Googleではどうなっているのか?
次にFetch as Googleでクローラーを呼び込んだところ、やはり「見つかりませんでした」となります(現在はサーチコンソール「URL検査」で調べます)。
モバイル用Googlebotも同様に「見つかりませんでした」となりました。
「見つかりませんでした」の意味はSearch Console ヘルプに記載されています。
このエラーは、ウェブブラウザでそのページにアクセスすると HTTP 404 エラーコードが表示される可能性があることを示します。
▼ウェブサイト用 Fetch as Google を使用する > リソース取得エラー
https://support.google.com/webmasters/answer/6066468
というようにGoogleにインデックスされないページとなってしまいました。さてどうしたものかと正直困ってしまいました。
- 数日待っても未インデックス状態のまま
- 少し時間をあけたら改善するかなと思い数日間待ってみました。結果は変わらず未インデックス状態でした。やはり原因がある訳なので調査を再開しました。
結論:Wordpressの設定の問題だった
WordPressの関数をWordpress外の静的ページなどで読み込むためにはWordpressの設定ファイルを読み込む必要があります。その読み込みファイルの指定が問題となっていました。
この「wp-blog-header.php」を「wp-load.php」に変更することで問題が解決できました。
参考サイトはこちら。
▼wordpress関数を外から使うにはwp_load.phpを読み込む
https://unskilled.site/wordpress関数を外から使うにはwp_load-phpを読み込む/
無事「info:https://www.web-ma.co.jp/search-console/performance.html」で表示されました。
Fetch as Googleのステータスも通常のものに変わりました。
これで再び検索流入のあるページに戻りました。Wordpress使用の際にはご注意ください。
当記事はWebの間のコラムを再編集したものです。元記事はこちら。
https://www.web-ma.co.jp/column/crawlability/1241.html