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

Hitoshi Arakawa | 2024/05/16 Thu 03:50

Hugo に robots.txt とサイトマップを設定する方法について書いた。

Hugo に robots.txt とサイトマップを設定する|荒川仁志
https://note.com/hitoshiarakawa/n/n723813a7a625

今回はそれを Hugoplate テーマでやってみた。Stack テーマでやったときとはテーマを変えたし多言語化もしているので少し勝手が変わった。

環境:
・macOS Ventura 13.5(英語環境)
・Hugo v0.119.0
・Hugo テーマ:Hugoplate

(1)hugo.toml に以下を記入することで、robots.txt の自動生成を無効化する。

enableRobotsTXT = false

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

/themes/Hugoplate/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" "blog") }}
  <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>

blog セクションのみで出力したいので range でそれを指定している。

(3)以下のコマンドでプレビューを実行しよう。

$ npm run dev

今回は多言語化した Hugo なので、以下の2つのサイトマップが出力されている。

http://localhost:1313/ja/sitemap.xml
http://localhost:1313/en/sitemap.xml

プレビューは ctrl + c で抜ける。

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

User-agent: *
Disallow:
Sitemap: https://{ドメイン}/ja/sitemap.xml
Sitemap: https://{ドメイン}/en/sitemap.xml

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

$ npm run build

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

Google Adsense への申請も済ませた。

参考:
[Hugo] Hugoplate テーマでの多言語化 | 荒川仁志 公式サイト
https://hitoshiarakawa.com/blogs/2024/2024-05-10_multilingual-site-with-hugo/

複数のsitemap.xmlを設置する|マコトのおもちゃ箱 ~ぼへぼへ自営業者の技術メモ~
http://piyopiyocs.blog115.fc2.com/blog-entry-1097.html

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

バスカヴィル家の犬 【新訳版】 シャーロック・ホームズ・シリーズ (創元推理文庫) | アーサー・コナン・ドイル, 深町 眞理子 | 英米の小説・文芸 | Kindleストア | Amazon
https://amzn.to/4bsGeVU