Google Search Console で、プラグインを止めてみたり色々しましたが、当サイトだけ「サイトマップが読み込めません」が出続けていました。
sitemap.xml にも問題は見受けられず、各種プラグインの設定や htaccess など細かい所まで確認しましたが、うまくいっているサイトとの違いが判りませんでした。
比較は、私が管理していてサイトマップがうまく登録されているサイトと比較を行いました。
時間ができ、海外などの情報サイトもみてようやく対処法がわかったのでまとめます。
失敗していた際の環境状況
WordPressテーマは、Cocoonを使用。
サイトマップに関連するプラウグインは、Google XML SitemapsとYoast SEOのみを使用。
Google XML Sitemapsで実際に作成し連携するように設定し、Yoast SEOのサイトマップは無効化。
うまくいっているサイトと全く同じ状態です。
※YoastSEOプラグインを停止するだけでうまくいくという情報が多かったですが、それはやっても意味がありませんでした。
実際の失敗している画面
全体のサイトマップは、「成功しました」と出ているが、検出されたURLは0件。
月ごとのサイトマップは、「取得できませんでした」と出ている状態。
全体と個別で確認した画像
全体のサイトマップの詳細画面
サイトマップが全く読み込まれいません。
月の個別サイトマップの詳細
何も読み込まれていない。
解決方法
これまで記載した内容と同じ事象であれば、以下の方法で解決すると思われます。
方法としては、Google XML Sitemaps プラグインのコードに少し手を加えるしかなさそうです。
1行無効にするだけです。
①.サーバーにある自分のWordpressフォルダにアクセス
私が使ってる mixhost サーバーは、cPanel にある『ファイルマネージャー』にアクセスし、以下のようにフォルダをたどります。
/(自分のワードプレスのフォルダ名)/wp-content/plugins/google-sitemap-generator
②.ファイルの中身変更
①のフォルダにある『sitemap-core.php』というのがありますので、このファイルの中身を変更します。
編集でファイルを開き、以下の行を変更します。
1576行でしたが、バージョンによって異なるかもしれません。
文字検索すればすぐに見つかります。
そして、文字の先頭に『// 』を追加するだけです。
変更したら保存します。
if(!headers_sent()) header('X-Robots-Tag: noindex', true, 200);
↓↓↓
// if(!headers_sent()) header('X-Robots-Tag: noindex', true, 200);
③.確認
②までの作業が終わったら、Google Search Console サイトマップ追加し直します。
時間かかるかもしれませんが、時間が立てば無事インデックスが正常に処理されます。
以下のようになれば成功です。
私の場合、すべて読み込み終わるのに1時間くらい放置した後にみたらできていました。
全体と個別で確認した画像
全体のサイトマップ詳細画像
以上です。
★失敗の原因は何なのか推測
コメントアウトした部分の処理内容の条件分から、ヘッダーが送信されていない場合に処理が行われることになります。
そして、noindex で上書きされてしまい、そのせいで失敗しています。
サイトマップをURL検査するとその上書きしたエラーが表示されていました。
なぜこのような事が発生するのかを考えたんですが、わかっていません。
もともと、livedoorブログで http でサイトマップを登録していたのが原因か…
WordPressにブログ移行した際に、YoastSEOで http のまま送信してしまっていたのか…
などが考えられるんですが、それでヘッダーが送信されなくなるというのが理解できていません。
海外だと同じよな人が僅かながらいるようでした。
今回の解決も海外のQ&Aのような所で偶然見つけました。
ひとまず、無事サイトマップが読み込まれるようになり、ずっともやもやしていたのが解消しました。
知識が足りず、原因がわからないのが残念です。
何かわかるようになったら、この記事を直そうと思います。
読んで頂き、ありがとうございます。
この記事が誰かにとって、一つの参考となれば幸いです。
新たな知識や技術を習得し続けていきたいです。
コメント
[…] 参考先:宇宙大好き ITエンジニアの巣 […]