【HUGO】特定のページをnoindexにする
特定のページをインデックスされないようにしたい
HUGOで作ったサイトで自動生成ページ(タグページやカテゴリページなど)をクロールしてもらいたくない場合があると思います。
この記事ではその設定方法をご紹介します。
前提条件
今回ご紹介する方法で動作検証をした環境は以下の通りです。
- ジェネレーター : HUGO (Ver 0.77.0)
- ホスティングシステム : Netlify
- テーマ : Annanke
テーマによっては同じ方法でできないかもしれません。
実装内容
/tags, /categories, /pages 以下のディレクトリをインデックスから除外した。
やり方
/layouts/_default/baseof.htmlのhead内に以下のような記述を追加する。
{{ if eq (getenv "HUGO_ENV") "production" | or (eq .Site.Params.env "production") }}
{{ if or (eq .Section "categories") (eq .Section "tags") (eq .Section "pages") }}
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
{{ else }}
<META NAME="ROBOTS" CONTENT="INDEX, FOLLOW">
{{ end }}
{{ else }}
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
{{ end }}
本番環境と開発環境を分岐させる条件式の中に入れ子で、特定のセクションのみnoindexにするような条件分岐を入れています。
私の場合は本番環境ではディレクトリがカテゴリー、タグ、固定ページの時をnoindexするよう設定しました。
このコードをそのまま貼ると開発環境での動作確認がしにくいので、動作確認時には書き換えたほうがいいと思います。
(開発環境ではすべてのページがnoindexになるため。)
注意点
条件分岐の eq(~~~) eq(~~~)の間にはスペースが必要です。
スペースがない場合文法エラーによりビルドができません。
以上ChooRowがお伝えしました。