THE THORでカテゴリーなどのアーカイブページをnoindexにするカスタマイズ

当サイトでは、WordPressテーマにTHE THOR(ザ・トール)を使用しています。

ここでは、THE THORで施しているカスタマイズのうち、THE THORのアーカイブページ(カテゴリー・タグ・日付等のアーカイブ)のnoindex対応について解説しています。

アーカイブページのnoindex化について

アーカイブページはSEO対策としてnoindex化した方が望ましいという見解があります。

アーカイブページとは、ある条件をもとに1つ以上の投稿を集めて表示するページのことで、

  • カテゴリーアーカイブ
  • タグアーカイブ
  • 日付アーカイブ

などがあります。

noindex化した方が望ましいとする人の見解によれば、

  • アーカイブページは品質が低い
  • 重複ページとして扱われる

といったことが主な理由のようです。

Name

私としては、WordPressテーマによると考えていますが、基本的には、アーカイブページのnoindex対応は特にSEO対策として必要なものではない(検索順位に影響しない)と考えています。

しかし、これはあくまでも私個人の見解で、異なる見解もあるため、WordPressテーマには、noindexにするか否か任意に選択できる機能があった方が親切だと思います。

このようなことから、WordPressテーマの中には、AFFINGER6やDIVERのように、これらのアーカイブページをindexにするかnoindexにするか、利用者が任意に選択できるようにしているものもありますが、THE THORでは、noindex化ができない仕様になっています。

そこで、ここでは、THE THORにおいてカテゴリーやタグ、日付などのアーカイブをnoindexにする手順を解説しています。

当サイトでも、SEOには影響がないと考えてはいるものの、少なくともGoogleに認識させるほどのページではないと考えているため、スッキリ整理をする意味でもアーカイブページによっては、noindex化しているものもあります。

カテゴリーなどのアーカイブページをnoindexにするカスタマイズ

アーカイブページの全てとTOPページから2ページ目以降を全てnoindex化

アーカイブページの全てとTOPページから2ページ目以降をnoindexにするためには、

header.phpの「<meta charset=”<?php bloginfo(‘charset’); ?>”>」

の後に以下のコードを追加します。

<?php if (is_paged()): ?>
<meta name="robots" content="noindex,follow">
<?php endif; ?>
<?php if (is_archive() && !is_paged()) :?>
<meta name="robots" content="noindex,follow">
<?php endif; ?>

<?php if (is_paged()): ?>は、現在のページが2ページ目以降かどうかを判定するコードです。

2ページ目以降は全てnoindexにします。

is_paged()の前に「!」をつけると1ページ目かどうか判定できます。

4行目の<?php if (is_archive() && !is_paged()) :?>は、アーカイブページで1ページ目かどうかを判定するコードです。

ここでは、3行目までで、2ページ目以降のページを全てnoindexとし、4行目から6行目までで、アーカイブページの1ページ目もnoindexとしています。

下のようにアーカイブページは全てnoindexでも構いませんが、これだけだとTOPページの2ページ目以降からはnoindex化されません。

<?php if (is_archive() ) :?>
<meta name="robots" content="noindex,follow">
<?php endif; ?>

アーカイブページの1ページ目だけはindexさせる場合

カテゴリーページの1ページ目だけはindexさせる場合

同じように、他のアーカイブページは全てnoindexにするも、カテゴリーの1ページだけはindexさせるということもできます。

特にTHE THORの場合は、カテゴリーやタグのページも自由に装飾することができるため、noindexとせずにSEO対策として強いページに育てることができます。

カテゴリーアーカイブの1ページ目だけはindexとし、その他のアーカイブはnoindexとしたい場合は、header.phpに以下のコードを追加します。

<?php if (is_paged()): ?>
<meta name="robots" content="noindex,follow">
<?php endif; ?>
<?php if (is_archive() && is_category() == false && !is_paged()) :?>
<meta name="robots" content="noindex,follow" />
<?php endif; ?>

ここでは、3行目までで、2ページ目以降のページを全てnoindexとし、4行目から6行目までで、カテゴリー以外のアーカイブページの1ページ目もnoindexとしています。

タグページの1ページ目もindexさせる場合

同じように、タグページの1ページ目もindexさせる場合は、

&& is_tag() == falseというコードを追加すればOKです。

<?php if (is_paged()): ?>
<meta name="robots" content="noindex,follow">
<?php endif; ?>
<?php if (is_archive() && is_category() == false && is_tag() == false && !is_paged()) :?>
<meta name="robots" content="noindex,follow" />
<?php endif; ?>

これで、カテゴリーページとタグページの1ページ目だけはindexさせることができます。

これらのコードは、他のテーマにも有効です。

尚、この対応は、header.phpを直接扱いますので、テーマがバージョンアップするごとにコードを挿入してやる必要があります。

必ずバックアップをとって修正するようにしましょう。

また、phpを扱ったりすると、WordPressのログイン画面で画面が真っ白になったり、Cookiesがブロックされました等のメッセージが表示されてログインできない状態になる場合があります。

その場合は下のページを参照してみて下さい。