先日、グーグルサーチコンソールに送信したサイトマップが1ヶ月前から読み込みに失敗していることに気づきました。
内容は、「サポートされないファイルフォーマット」と「一般的なHTTPエラー(500)」です。
おまけに、XMLサイトマップに直接アクセスすると「このサイトで重大なエラーが発生した」というメッセージも出ました。
正常に戻す方法があれば知りたい!
そこで、本記事では
- サイトマップのステータスが「成功しました」に直るまでに行った対処法
を詳しく紹介していますので、ぜひ参考にしてみてください。
- WordPress(6.2.2)
- SWELL(2.7.6.2)
- PHP(7.4.33)
- XMLサイトマップ作成プラグイン(XML Sitemap & Google News)
サイトマップがエラーで「取得できませんでした」と出た時の対処法
サイトマップが「成功しました」に切り替わるまでの時系列を簡潔に紹介します。
時系列 | 状況や結果 |
---|---|
①サイトマップのトラブル発見 | ・サポートされないファイルフォーマット ・一般的なHTTPエラー(500) |
②サーバー移転(mixhostからエックスサーバー) | 改善なし |
③プラグインを変更し、サイトマップを作り直す | ライブテストの結果は、「ページをインデックス登録できません: サーバーエラー(5xx)」と改善なし |
④サイトマップの設定を見直す | ライブテストの結果は、「いいえ,”X-Robots-Tag’ httpヘッダーで’noindex’が検出されました」と改善なし |
⑤相性が悪い可能性があるプラグインを無効化する | 同上 |
⑥サイトマップの設定を見直す(2回目) | 親サイトマップ「取得できませんでした」、子サイトマップ「成功しました」に改善あり |
数時間後、親サイトマップも「成功しました」と改善あり解決 |
- 最初にサーバー移転をした理由は?
-
今回サイトマップのトラブルが500エラーだったことから、サーバーに問題があるかもしれないと推測しました。
HyperText Transfer Protocol (HTTP) の
引用元 : 500 Internal Server Error – MDN Web Docs500 Internal Server Error
サーバーエラーレスポンスコードは、サーバーがリクエストを実行を妨げる予期しない条件に遭遇したことを示します。他にも料金やSSLエラーなどの不満が蓄積したため、良い機会だと思ってサーバー移転をしています。
ただし、サーバー移転をしてもサイトマップのエラーは改善しませんでした。
今回は、
- プラグインを変更し、新しいサイトマップを設定する方法
- 相性が悪い可能性があるプラグインを無効化する
の2つを詳しく紹介していきます。
対処法① プラグインを変更し、新しいサイトマップを設定する方法
はじめに、XMLサイトマップ作成で使用していたプラグイン「XML Sitemap & Google News」から、「XML Sitemap Generator for Google」に変更しました。
2022年10月頃から2023年にかけて、プラグイン「XML Sitemap & Google News」で作成したサイトマップがエラーになるトラブルが多く見受けられるようになりました。
「XML Sitemap & Google News」でサイトマップを作成した人は、
- サイトマップのURLにアクセスして問題がない
- グーグルサーチコンソールを開き、サイトマップが正常に送信されている
かどうか確認してください。
プラグインを有効化し、一から新しくサイトマップを作り直します。
設定は、以下の記事を参考にしました。
しかし、設定内の「Sitemap コンテンツ」に関しては上記事と同じ設定にすると、ライブテストで筆者はエラーが出ました。
そこで、
(SWELLテーマを使用している人は必須のプラグイン「SEO SIMPLE PACK」で設定した内容と照らし合わせながら、)「XML Sitemap & Google News」のSitemap コンテンツのチェックを変更します。
テーマがSWELLの人向け
「SEO SIMPLE PACK」の設定で、
- 投稿ページ
- タクソノミーアーカイブ
- その他アーカイブ
のどのページをインデックスさせないかチェックをつけたはずです。
\一例です/
筆者は著者や日付、カスタム投稿タイプなどをインデックスしないように設定してありました。
「SEO SIMPLE PACK」でインデックスしないものにチェックをつけた場合は、「XML Sitemap & Google News」のSitemap コンテンツのチェックを外しましょう。
- 「SEO SIMPLE PACK」でインデックスしないものにチェックをつけた時に「XML Sitemap & Google News」のSitemap コンテンツのチェックを外す理由は?
-
「XML Sitemap & Google News」のSitemap コンテンツにチェックをつけてしまうと、noindexであるにも関わらずサイトマップに反映されます。
処理上、noindexが優先されるため、ライブテストをした際に「noindexタグによって除外されました」とエラーが出る可能性があるからです。
筆者は、
- ホームページ
- 投稿 (個別記事) を含める
- カテゴリーページを含める
の3つのみにチェックしました。
設定を終えたら(もしくは見直しが終わったら)、XMLサイトマップのURLにアクセスしてください。
上のようにXMLサイトマップが作成されていたらOKです。
作成したサイトマップは、グーグルサーチコンソールのサイトマップから追加する前に、グーグルがそのサイトマップを認識してもらえるかのライブテストを行いましょう。
グーグルサーチコンソールのページ上部にあるURL検査からサイトマップURLを入力し、「公開URLをテストする」ボタンを押すと確認ができます。
インデックス登録はしなくてOKです。
公開URLをテストした結果、
「URL は Google に登録できます」 | グーグルサーチコンソールのサイトマップから新しく追加してみてください。 |
「URL は Google に登録できません」 | 原因を確認して再度修正を行います。 ・「ページをインデックス登録できません: サーバーエラー(5xx)」 ・「いいえ、’X-Robots-Tag’ httpヘッダーで’noindex’が検出されました」 |
なお、サイトマップを新しく追加しても「取得できません」から変わらなかった場合は、
を実践してみてください。
「ページをインデックス登録できません: サーバーエラー(5xx)」
公開URLをテスト(ライブテスト)をして
「URLはGoogleに登録できません。」
「ページをインデックス登録できません: サーバーエラー(5xx)」
というメッセージが出ることがあります。
500番台のサーバーエラーレスポンスのことです。
サーバーエラーを解決するには、
- 大規模な問題がサイトにあるか
- グーグルのクローラーをブロックしていないか
- サーバーが過負荷ではないか
などを確認する必要があるようです。
解決方法として正しいかは不明ですが、
最大限できることを行いましょう。
「いいえ、’X-Robots-Tag’ httpヘッダーで’noindex’が検出されました」
公開URLをテスト(ライブテスト)をした結果、
「URLはGoogleに登録できません。」
「ページをインデックス登録できません: noindexタグによって除外されました」
「いいえ、’X-Robots-Tag’ httpヘッダーで’noindex’が検出されました」
というメッセージが出ることがあります。
引用元 :
X-Robots-Tag
は、指定した URL に対する HTTP ヘッダー応答の要素として使用できます。X-Robots-Tag
HTTP ヘッダーの使用 – Google検索セントラル
つまり、作成したXMLサイトマップのHTTPヘッダーをX-Robots-Tagで読み込んだところ、noindexタグが検出されたからインデックスできないと判断したようです。
そもそも、XMLサイトマップはインデックス登録するものではないので、インデックス登録でエラーが出るのは当たり前かもしれないです。
「いいえ、’X-Robots-Tag’ httpヘッダーで’noindex’が検出されました」とメッセージが表示された場合は、
- 試しにサイトマップを登録し直してみる
- 「XML Sitemap & Google News」のSitemap コンテンツの設定をいじってみる(設定を改めて確認する)
方法で対処してください。
対処法②相性が悪い可能性があるプラグインを無効化する
サイトマップの設定を見直してもサイトマップが正常に戻らない時は、XMLサイトマップと相性が悪い可能性があるプラグインを探る手もあります。
筆者は、
- Code Snippets(PHPコードを管理)
- Flying Scripts(高速化設定)
- Redirection(リダイレクト設定)
上3つのプラグインを無効化しました。
筆者の場合は、上記プラグインを無効化して効果があったかどうかは不明です。
対処法①②を行っても解決できない時
本トラブルを解決するにあたって参考になった記事を紹介します。
筆者と全く同じトラブル内容だった記事がありましたので参考になるかもしれません。
なお、解決方法の違いは、上の記事はPHPのバージョンを変更していますが、筆者はPHPのバージョンを変更していません。
PHPのバージョンの変更は、エックスサーバーであればサーバーパネルの「PHP Ver.切替」から可能です。
また、エラーの内容を詳しく知りたい時は、以下の記事が参考になりました。
サイトマップを登録し直した時のステータス
サイトマップを登録し直した時に、親サイトマップと子サイトマップの両方のステータスが「成功しました」と表示されているか確認してください
親サイトマップをクリックすると、子サイトマップが開きます。
両方のステータスが「成功しました」と表示されていたらOKです。
万一、片方は「成功しました」、もう片方は「取得できませんでした」と表示されていた場合は、次の見出しをご覧ください。
親サイトマップは「取得できませんでした」なのに、子サイトマップは「成功しました」だった時
何度か修正し、新しくサイトマップを追加し直しているうちに、
- 親マップサイト(sitemap.xml)のステータスが「取得できませんでした」
- 子サイトマップのステータス全てが「成功しました」
ということが起こる場合があります。
このような時は、数時間から1日程度放置してみてください。
筆者は、1,2日後に親サイトマップも「成功しました」に切り替わり、無事に本トラブルが解決しました。
- 反対に、親サイトマップは「成功しました」なのに、子サイトマップは「取得できませんでした」だった時は?
-
その時も数時間から1日程度放置し、再度ステータスを確認してみてください。
最後まで読んでくださりありがとうございます!
\普段はフリマアプリの記事を投稿しています/