WordPress noindexを特定のページに出力する方法
WordPressで「noindex」を特定のページに出力する方法です。
WordPress独自の機能では、「noindex」を設定することはできません。なので、自前でPHPを書くか、「All in One SEO Pack」などのプラグインを導入して対応するかの2択になります。
今回、自前で「noindex」を設定をしようと思ったきっかけは、「All in One SEO」プラグインを停止しようと思ったからです。「All in One SEO Pack」は、とても高機能で優秀なプラグインですが、正直、バージョン4.0.0以降は使いにくくなったし、脆弱性も確認されたし、謎のログがテーブルに膨大に蓄積されるし、なんといっても遅いし。
ここでは WordPressで「noindex」を特定のページに出力する方法 を紹介します。
目次
noindexとは?
「noindex」とは、robotsメタタグの一種です。検索エンジンに、対象のページをインデックスしてほしくない場合に利用します。
他にも「nofollow」というメタタグがあり、こちらはリンクをたどってほしくない場合に利用します。
- noindex: 検索エンジンロボットにインデックスさせない
- nofollow: 検索エンジンロボットにリンク先をたどらせない
HTMLのheadタグ内に下記のコードを出力させることで機能します。
<!-- noindex -->
<meta name='robots' content='noindex,follow' />
<!-- noindex & nofollow -->
<meta name='robots' content='noindex,nofollow' />
noindexを設定するページ
以下のようなページには積極的に「noindex」を設定しましょう。
- 404エラーページ
- 投稿者アーカイブページ
- 時系列アーカイブページ
- サイト内検索ページ
- タグページ(管理・運用できていない場合)
問い合わせページは、「サイト名 問い合わせ」 で検索される可能性が否定できないことから、noindexは設定しないほうがいいと思います。
function.phpへコードを追記する
下記のコードをfunction.phpへ追記することでnoindexを付与できます。
404・投稿者アーカイブ・時系列アーカイブ・検索ページ・タグページ
上記で紹介したページを対象とする場合、下記のコードをfunction.phpへ追記します。
/**
* noindex付与
*/
function add_my_noindex() {
// 404 || 投稿者アーカイブ || 時系列アーカイブ || 検索 || タグ
if ( is_404() || is_author() || is_date() || is_search() || is_tag() )
echo '<meta name="robots" content="noindex,follow" />';
}
add_action('wp_head', 'add_my_noindex');
特定のカテゴリーに属する投稿ページ
仮に、特定のカテゴリーに属する投稿ページへ出力したい場合には、if文を下記に変更します。
if ( in_category(array('category-1','category-2')) && is_single() )
echo '<meta name="robots" content="noindex,follow" />';
まとめ
WordPressで「noindex」を特定のページに出力する方法を紹介しました。
SEOでは欠かせないメタタグ。自前でコードを書くことで、より柔軟に対応ができるのがよいですよね。
とはいえ「All in One SEO Pack」を停止して、全て自前でコードを書こうと思ったら、なかなかの労力ですな。仕事の合間に試しているから、まだまだかかりそう。
おつかれさまでした。