ちょっとした技術メモを忘れないうちに書いていく

GatsbyJS gatsby-plugin-sitemapを更新すると登録できない

2021-05-09

何も考えずに更新するから、、、


概要

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 に登録するとエラーとなってしまった。

gatsby_sitemap_1.png

原因

エラーとなった原因は、ビルド時の 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 がエラーとなってしまった。

gatsby_sitemap_2.png

原因は、/sitemap/sitemap-0.xml にアクセスしないといけないのに、sitemap-index.xml 内の URL が /sitemap-0.xml となっているためでした。

対応 2(うまくいかなかった)

gatsby-plugin-sitemap のオプションに出力先が指定できるので、gatsby-config.js に設定する。

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-config.js
`gatsby-plugin-sitemap`,

ビルドすると public フォルダの直下に sitemap.xml が出力され、google search console にも登録ができた。