【Hugo】GoogleSearchConsoleでサイトマップ読み込みエラー

1,2ヶ月前から気がついていたのですが、放置してました。。

背景

Hugoを使ってサイトを作って3ヶ月ほど。google search consoleを使ってgoogleさんにこのサイトを認識してもらってみなさんの目に触れる状態にしたのですが、気になる事象が発生しました。

課題

sitemap.xmlを読み込ませたところ、「無効なURLです」というエラーが発生し、サイトマップが正しく読み込めない。

原因

netlifyのデフォルトでは、sitemap.xmlの<loc>タグの中身を正しく作ってくれない?ことが原因でした。

対策

自分のlayoutsフォルダにsitemap.xmlに正しいサイトマップを生成するテンプレートを置いておく。

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
  xmlns:xhtml="http://www.w3.org/1999/xhtml">
  {{ range .Data.Pages }}
  <url>
    <loc>https://自分のサイトのドメイン名{{ .Permalink }}</loc>{{ if not .Lastmod.IsZero }}
    <lastmod>{{ safeHTML ( .Lastmod.Format "2006-01-02T15:04:05-07:00" ) }}</lastmod>{{ end }}{{ with .Sitemap.ChangeFreq }}
    <changefreq>{{ . }}</changefreq>{{ end }}{{ if ge .Sitemap.Priority 0.0 }}
     <priority>{{ .Sitemap.Priority }}</priority>{{ end }}{{ if .IsTranslated }}{{ range .Translations }}
    <xhtml:link
                rel="alternate"
                hreflang="{{ .Lang }}"
                href="{{ .Permalink }}"
                />{{ end }}
    <xhtml:link
                rel="alternate"
                hreflang="{{ .Lang }}"
                href="{{ .Permalink }}"
                />{{ end }}
  </url>
  {{ end }}
</urlset>

参考サイト