過去の記事で「 @astrojs/sitemap にはバグがあり、 3 桁の数字を含む URL がサイトマップに追加されない」ということを書いたのですが、v1.4.0 でようやく修正されました。
Astro はサイトマップを sitemap-index.xml
(サイトマップインデックス)+ sitemap-*.xml
(分割されたサイトマップ)の形式で生成します。
@astrojs/sitemap 🚀 Astro Documentation
Google Search Console に登録するのは sitemap-index.xml
のほうです。
サイトマップ インデックス ファイルでのサイトマップの管理 | Google 検索セントラル | ドキュメント | Google for Developers
というわけで登録します。
エラーになりました。なんで??????????????????????????
sitemap-0.xml
で試したところ、こちらは登録できたので、分割されたサイトマップに問題はなさそうです。 sitemap-index.xml
だけ中身がバグっているのかと思い、生成された XML を見てみました。
<!-- 確認のためにインデントと改行を追加していますが、実際はすべて1行目に出力されています。 -->
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>https://retrorocket.biz/sitemap-0.xml</loc>
</sitemap>
</sitemapindex>
とくに誤りもなく問題はなさそうです。
Googlebot からどう見えているのかを知りたかったので、 nginx のアクセスログを grep したところ、
sitemap-index.xml
にアクセスされた形跡がありませんでした。これは Search Console のバグな予感がします。
「とりあえず URL を変えればいいのではないか?」と思い、適当なクエリパラメータ ?dummy
をつけてみました。
成功しました。 (sitemap-0.xml
の最終読み込み日時がサイトマップインデックスと異なるのは、sitemap-0.xml
を試しに登録したときの名残ですね。)
アクセスログにも形跡が残っています。
66.249.73.131 - - [25/Jul/2023:04:54:58 +0000] "GET /sitemap-index.xml?dummy HTTP/1.1" 200 161 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" "-"
なんだか納得がいきませんが解決してよかったです。フィードバックは送りましたが、おま環かもしれないので修正されるかは未知ですね。