概要
gatsby-plugin-sitemap を 4.0 にすると、sitemap.xml の出力先が変わってしまい、 google search console に登録できなくなってしまった。
色々試してうまくいかなかったので 3.3.0 をインストールすると登録できました。
sitemap.xml の内容に際はなさそうだったが仕様に詳しい方なら解決できる?
gatsby-plugin-sitemap の警告が出力される
gatsby-cli を 2 系から 3.4.0 にバージョンアップをした後のビルドで以下の警告が出力された。
warn Plugin gatsby-plugin-sitemap is not compatible with your gatsby version 3.4.0 - It requires gatsby@^2.0.0
gatsby-plugin-sitemap のバージョン互換が内容なので再インストールを実行。
#インストール
npm install --save gatsby-plugin-sitemap
# バージョン確認
npm list --depth=0
+-- gatsby-plugin-sitemap@4.0.0 #4.0.0がインストールされた
サーバにデプロイ後、google search console に登録するとエラーとなってしまった。
原因
エラーとなった原因は、ビルド時の sitemap.xml の出力先が変わってしまったからのようでした。
もともと、public フォルダの直下に出力されていたが、sitemap フォルダが作成され、その配下に sitemap-index.xml、sitemap-0.xml が出力されるようになってます。
そのため、/sitemap.xml にアクセスしても 404 エラーとなっていました。
対応 1(うまくいかなかった)
google search console に登録するサイトマップの URL を/sitemap/sitemap-index.xml にすると登録できたが、紐づく sitemap-0.xml がエラーとなってしまった。
原因は、/sitemap/sitemap-0.xml にアクセスしないといけないのに、sitemap-index.xml 内の URL が /sitemap-0.xml となっているためでした。
対応 2(うまくいかなかった)
gatsby-plugin-sitemap のオプションに出力先が指定できるので、gatsby-config.js に設定する。
{
resolve: `gatsby-plugin-sitemap`,
options: {
output: `/`,
},
},
ビルドすると public フォルダの直下に出力できたが、google search console は登録エラーのままだった、、、
対応 3(あきらめて 3 を入れる)
とりあえず元の警告を消せればいいと思い、3 系をインストールし gatsby-config.js を元に戻す。
#バージョンを指定してインストール
npm install --save gatsby-plugin-sitemap@3.3.0
# バージョン確認
npm list --depth=0
+-- gatsby-plugin-sitemap@3.3.0
`gatsby-plugin-sitemap`,
ビルドすると public フォルダの直下に sitemap.xml が出力され、google search console にも登録ができた。