【Wordpress】特定のページだけnoindexタグを出力させる方法
も・く・じ
ブログを書く上で通常なら全く気にすることのないnoindex。
でもでも場合によっては、検索エンジンに拾ってほしくないページを作らざるをえないことだってあります。
そんなときには敢えて”noindex”をつけてやりましょか。
でもそれをいちいち手作業で設定するのは効率悪いってもの。
それを自動化するやり方です。
noindex自動化
”noindex”というのは検索エンジン側に「このページはインデックスしなくて結構です」と知らせるmetaタグのことです。
これが設定してあるページは、基本的にはどんなキーワードで検索しようと検索エンジンの検索結果にそのページは表示されなくなります。
内容があまりないページやまとめページなどを敢えて検索エンジンに無視させることで、サイト全体の評価を下げるのを防ぐ効果があると昔から言われてます。
これはAll in One SEO Packなどのプラグインを使えばその設定は簡単にできます。
しかし私のようにできるだけプラグインを少なくしたいという輩はfunctions.phpへ加筆することでも同様の設定を付加することができますよ。
functions.phpへ書くやり方
動作検証は行ってますが、カスタマイズ・実装に関しては”サイトが表示されない”などのトラブルが発生する可能性もありますゆえ、失敗した時に元に戻せるようオリジナルファイルのコピーは必ず作っておいてください。
なお導入に際しては自己責任にてお願いします。
まずはfunctions.phpに書き込むやり方です。
以下のコードを書き込みます。
0 1 2 3 4 5 6 7 |
//特定ページでnoindexタグを出力 function no_index(){ if (is_date() || is_tag() || is_paged() || is_search()){ echo '<meta name="robots" content="noindex" />'; }} add_action('wp_head','no_index'); |
上記コードは通常のページやカテゴリーページはnoindexにせず、日付アーカイブページとタグアーカイブページとページャーの2ページ目以降と検索ページはnoindexにするという設定です。
カテゴリーページも含めたい方は「is_tag() ||」のところを「is_tag() || is_category() || 」とします。
この結果、該当するページが開かれた時のみ、自動的に<meta name="robots" content="noindex" />がソースに書き加えられるようになります。
今回はnoindexと並んで付けられることの多いnofollow属性はつけてません。
もしもページ内のリンクもたどってほしくなければnofollowも入れてください。
その場合、4行目は
echo '<meta name="robots" content="noindex,nofollow" />';
とします。
テーマによってはカテゴリーページ・タグページ・月間アーカイブページなどをarchive.phpとして一つにまとめているモノもあったりします。
そんな時は3行目を
if ((is_archive() && !is_category()) || is_paged() || is_search()){
とするといいでしょう。
(is_archive() && !is_category())はカテゴリーページを除くアーカイブページという意味です。
何回か出てくる” || ”は”OR”という意味で、いわゆる「~または~」のことです。
なお<meta name="robots" content="noindex" />に関しては、できるだけHTMLの上部に書いた方がいいとされてます。
ところがfunctions.phpに書くやり方は、テーマによってはかなり下の方に表記されることもあるので、当サイトとしてはこれからご紹介するheader.phpに書く方をおススメします。
header.phpなら、例えば<title>(サイトタイトル)</title>のすぐ後とかに直接書けますからね。
header.phpへ書くやり方
これからご紹介するコードはheade.phpの上の方、具体的には「<meta name=…」という行の近くに加筆しておきます。
※なお管理人の好みで「カテゴリーページだけはnoindexにしない」というのがあります。
そのため基本的にはカテゴリーページは除外した書き方になってます。
タグページ・日付アーカイブページ・ページャーの2ページ目以降・検索結果ページはnoindex
0 1 2 3 4 5 6 7 |
<?php //特定のページでnoindex if (is_tag() || is_date() || is_paged() || is_search()) { echo '<meta name="robots" content="noindex" />'; }; ?> |
カテゴリー以外のアーカイブページ・ページャーの2ページ目以降・検索結果ページはnoindex
0 1 2 3 4 5 6 7 |
<?php //特定のページでnoindex if ((is_archive() && !is_category()) || is_paged() || is_search()) { echo '<meta name="robots" content="noindex" />'; }; ?> |
タグページ・日付アーカイブページ・ページャーの2ページ目以降・検索結果ページ・特定の投稿ページはnoindex
何らかの理由があって特定の投稿ページにもnoindexをつけたい場合に有効なコードです。
0 1 2 3 4 5 6 7 |
<?php //特定のページ・投稿でnoindex if (is_tag() || is_date() || is_paged() || is_search() || get_post_meta($post->ID, "noindex", true) == 1) { echo '<meta name="robots" content="noindex" />'; }; ?> |
やり方は投稿ページ下部のカスタムフィールド蘭の名前に「noindex」、値に「1」と入力し、”カスタムフィールドを追加ボタン”をクリックすればOKです。
特定のページ・投稿でnoindexに加えてnofollowもつけたい時は下記のようにするといいでしょう。
0 1 2 3 4 5 6 7 8 9 |
<?php //特特定のページ・投稿でnoindex or nofollow if (is_tag() || is_date() || is_paged() || is_search() || get_post_meta($post->ID, "noindex", true) == 1) { echo '<meta name="robots" content="noindex" />'; } elseif (get_post_meta($post->ID, "noindex", true) == 2) { echo '<meta name="robots" content="noindex,nofollow" />'; } ?> |
やり方はカスタムフィールドの名前に「noindex」、値に「1」と入力すればnoindexのみの出力。
値に「2」と入力すればnoindexとnofollowの両方が出力されます。
タグページ・日付アーカイブページ・ページャーの2ページ目以降・検索結果ページ・特定の投稿ページ・特定のカテゴリーに属する投稿ページはnoindex
特定の投稿ページでいちいちカスタムフィールドを有効化するのではなく、特定のカテゴリーに属する投稿記事には自動でnoindexをつけたい時に使えるコードです。
※下記の例はカテゴリー名”wordpress”に属する投稿記事にnoindexを付けたい場合。
0 1 2 3 4 5 6 7 |
<?php //特定のページでnoindex if (is_tag() || is_date() || is_paged() || is_search() || get_post_meta($post->ID, "noindex", true) == 1 || (in_category('wordpress') && is_single())) { echo '<meta name="robots" content="noindex" />'; }; ?> |
&& is_single()をつけるとカテゴリーページにはnoindexがつかなくなります。
※カテゴリー名”wordpress”もしくは”webdesign”と複数のカテゴリーに属する投稿記事の場合。
0 1 2 3 4 5 6 7 |
<?php //特定のページでnoindex if (is_tag() || is_date() || is_paged() || is_search() || get_post_meta($post->ID, "noindex", true) == 1 || (in_category(array('wordpress','webdesign')) && is_single())) { echo '<meta name="robots" content="noindex" />'; }; ?> |
タグページ・日付アーカイブページ・ページャーの2ページ目以降・検索結果ページ・特定のカスタム投稿ページはnoindex
※カスタム投稿タイプが”book”だった場合。
0 1 2 3 4 5 6 |
<?php //特定のページでnoindex if (is_tag() || is_date() || is_paged() || is_search() || is_singular('book')){ echo '<meta name="robots" content="noindex" />'; }; ?> |
※カスタム投稿タイプが”book”と”movie”と複数だった場合。
0 1 2 3 4 5 6 |
<?php //特定のページでnoindex if (is_tag() || is_date() || is_paged() || is_search() || is_singular(array('book','movie'))){ echo '<meta name="robots" content="noindex" />'; }; ?> |
以上です。
記事はお役にたてましたか?
記事に興味をもっていただけたらソーシャルボタンでの共有お願いします^^
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓