Hugo に robots.txt とサイトマップを設定する

Hugo で作ったサイトをクローラーで正しく見てもらえるように、robots.txt およびサイトマップを設定した。

環境:Hugo(Stack テーマ)

(1)hugo.toml に以下を記入し、Hugo により自動生成される robots.txt を無効化する。

enableRobotsTXT = false

(2)static/robots.txt を作成し、以下のように記述する。

User-agent: *
Disallow:
Sitemap: https://example.com/sitemap.xml

(3)Hugo はデフォルトで sitemap.xml が生成されるが、カスタマイズしていく。

/themes/{テーマ}/layouts/sitemap.xml を以下の内容で作成する。

{{ printf "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\" ?>" | safeHTML }}
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  {{ range (where .Site.Pages ".Section" "post") }}
  <url>
    <loc>{{ .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 }}
  </url>
  {{ end }}
</urlset> 

僕は post セクションのみのサイトマップを生成したいので、このようにした(post セクションのリストページ__すなわち post セクションのトップページ__を除外する方法は分からなかった)。

以下のコマンドでプレビューし、正しく sitemap.xml が生成されることを確認しよう。

$ hugo server

(4)ページをビルドする。

$ hugo

/public/robots.txt が生成されていることを確認しよう。

この上で、実際のサイトに反映する。

(5)さらに Google Search Console への登録も行った。

Google Search Console
https://search.google.com/search-console/about

(5-1)「Start now」をクリックする。

(5-2)「URL prefix」を選択し、サイト URL を入力。「CONTINUE」で進む。

(5-3)HTML ファイルが生成されるので、ダウンロードし、サイトのルートディレクトリにアップロードする。

(5-4)「VERIFY」をクリックするすると、認証が完了する。

(5-5)「GO TO PROPERTY」をクリックし、設定に進む。

(5-6)「Indexing>Sitemaps>Add a new sitemap」に、サイトマップ URL を入力。「SUBMIT」をクリック。

しかし、「Status」が「Couldn't fetch」になって取得できない。ブラウザ上ではサイトマップにアクセスできるのに。以下のページでもサイトマップが認識されない。

Google AdSense approval or eligibility checker tool
https://www.getthit.com/tools/google-adsense-eligibility-checker

これは Cloudflare Tunnel で .htaccess が認識されないのと同じ現象だろうか。

Cloudflare の Page Rules をいじったりしたが、それでもサイトマップが認識されない。

Google Search Console でサイトマップが「Couldn't fetch」になる問題はしばらく放置しておくと解決すると言う人もいるので、とりあえずそのままにしておくことにした。

参考:
Hugoでrobots.txtとsitemap.xmlを作る | Old Sunset Days
https://hugo-de-blog.com/hugo-sitemap/

Tips for Customizing Hugo RSS Feeds | Ben Congdon
https://benjamincongdon.me/blog/2020/01/14/Tips-for-Customizing-Hugo-RSS-Feeds/

Search ConsoleでのXMLサイトマップ「取得できませんでした・読み込めませんでした」エラーの正体
https://scr.marketing-wizard.biz/seo/search-console-xmlsitemap-cannot-fetch-error

Sitemap Couldn't fetch (Could not be read) in Google Search Console - JC Chouinard
https://www.jcchouinard.com/sitemap-could-not-be-read-couldnt-fetch-in-google-search-console/

サイトマップが相対リンクで生成されてしまう - 日本語 - HUGO
https://discourse.gohugo.io/t/topic/26217


この記事が気に入ったらサポートをしてみませんか?