Hexoでアーカイブ・タグページをnoindex化|head.ejsの設定例

概要

本記事では、Hexoブログのアーカイブ・タグページなどをnoindex化する方法について解説していきます。

というのもHexoって自動でアーカイブやタグページが量産されちゃうんですが、これらが検索結果に出てもユーザー的には微妙ですよね(- -;

ノイズページが多いとサイト全体の評価も下がりがちなので、不要なページはnoindexにしておくのがおすすめです。

ここではhead.ejsに is_archive() / is_tag() / is_current() の条件分岐を追加するだけで実装できる手順を紹介していきます!

コード数行で済むので簡単に対応できます。
それではやっていきましょう!

目次

手順

1.head.ejsを変更

ヘッダーを定義するファイルに「アーカイブ」と「タグ」ページの場合はnoindexを設定するように定義

site\themes\light\layout\_partial\head.ejs

1
2
3
<% if (is_archive() || is_tag()) { %>
<meta name="robots" content="noindex, follow">
<% } %>
![head.ejs](/images/posts/20251109_hexo_noindex/hexo_noindex_1.png "head.ejs")

確認

ビルドを行いpublic内に生成されたHTMLのヘッダーを確認する。
下記のように指定したページだけnoindexが記載されてればOKです。

追記:後から気づきましたが、vscodeの検索窓から「meta name="robots" 」などで検索すれば一括で簡単に見れますね。。。

<アーカイブ>
site\public\archives\index.html
アーカイブ

<タグのHTML>
site\public\tags\Hexo\index.html
タグ

<トップページのHTML>
site\public\index.html
トップページ

<カテゴリのHTML>
site\public\categories\エンジニアリング\index.html
カテゴリ

<記事のHTML>
site\public\travel\picatitibu\index.html
記事

問題なく設定できてますね!

ここで設定を失敗するとすべてのページがnoindexとなってしまい、全ページが検索エンジンから消えます。必ず確認するようにしましょう!

補足

特定のページのみをnoindexにする場合は「is_current(‘ページ名’)」のように記載すれば可能です。

site\themes\light\layout\_partial\head.ejs

1
2
3
<% if (is_current('/privacy-policy')) { %>
<meta name="robots" content="noindex, follow">
<% } %>

締め

こういった設定を忘れるとユーザライクでないページとして登録され、サイトの評価が下がるかもしれません。
私個人としてはやっておいたほうが良いかと思います。

ただ設定ミスをするとサイトの運営に致命的な影響を与えるのでかなり慎重にチェックしたほうが良いかもしれないですね!

以上お疲れさまでした。