本記事では、ワードプレスを使っている方向けに、
noindexを個別ページ毎に設定する方法を紹介していく。
noindexとは
まず初めに理解しておきたいnoindexとは、簡単に言うと、
検索エンジンに対して「SEOの評価をしないでください」と言う旨を伝えるための設定のことだ。
おそらく上記の説明でピンと来ない方は、SEOにおけるインデックスの知識が足りないということになるので、まずは下記記事にて、インデックスとは何かと言う点からしっかりと学ぶところから始めてほしい。
インデックスの概念はブログを書く以上絶対に押さえておかないといけない概念なので、しっかりとその意味と役割を理解しておいてほしい。
noindexを個別ページ毎に設定できると、何が良いのか
noindexを個別ページ毎に設定することのメリットは何か先に説明する。
noindexを個別ページ毎に設定することのメリットが何かと言うと、要は、質の低い記事のindexを外して、質の高い記事のindexだけを残すことで、ブログ全体のドメインパワーの底上げが可能と言う点だ。
質の低い記事がindexされてしまっていると、「このページは低品質」として検索エンジンに評価されてしまい、その評価はブログドメイン全体の評価の一部となってしまうので、結果としてブログ全体の中で足を引っ張る存在となってしまうと言う訳だ。これを防ぐために、低品質の記事にはnoindexの設定をしておくのが望ましい。
要は、選りすぐりの記事だけをindexされるようにして、SEOの高評価のみを最大限得ましょうねと言う話だ。
質の低い記事のindexを外して、質の高い記事のindexだけを残すことで、ブログ全体のドメインパワーの底上げが可能。SEOの高評価のみを最大限取得できる。
ある程度ブログの記事数が増えてきて、PV数も増えてきた頃に、このnoindexの設定を低品質ページに設定することで、更なるドメインパワーの向上が望めるだろう。
noindexを個別ページ毎に設定する、手順
では早速noindexを個別ページ毎に設定する手順を紹介していく。
個別にnoindexを設定するためには、
functions.phpとheader.phpにそれぞれコードを追加する必要がある。
① functions.phpを編集
まず最初にfunctions.phpを編集する。
メニューから、「外観 > テーマファイルエディター」を選択する。
fuctions.phpとheader.phpは、
ワードプレスメニューの「外観 > テーマファイルエディター」より編集可能だ。


functions.phpの編集画面が開けたら、下記のコードをコピーして、
functions.phpの最下行に貼り付けて保存する。
■ コピー用コード(右上のコピーボタンからコピー可能)
// メタボックスの追加
add_action( 'admin_menu', 'add_noindex_metabox' );
function add_noindex_metabox() {
add_meta_box( 'custom_noindex', 'インデックス設定', 'create_noindex', array('post', 'page'), 'side' );
}
// 管理画面にフィールドを出力
function create_noindex() {
$keyname = 'noindex';
global $post;
$get_value = get_post_meta( $post->ID, $keyname, true );
wp_nonce_field( 'action_' . $keyname, 'nonce_' . $keyname );
$value = 'noindex';
$checked = '';
if( $value === $get_value ) $checked = ' checked';
echo '<label><input type="checkbox" name="' . $keyname . '" value="' . $value . '"' . $checked . '>' . $keyname . '</label>';
}
// カスタムフィールドの保存
add_action( 'save_post', 'save_custom_noindex' );
function save_custom_noindex( $post_id ) {
$keyname = 'noindex';
if ( isset( $_POST['nonce_' . $keyname] )) {
if( check_admin_referer( 'action_' . $keyname, 'nonce_' . $keyname ) ) {
if( isset( $_POST[$keyname] )) {
update_post_meta( $post_id, $keyname, $_POST[$keyname] );
} else {
delete_post_meta( $post_id, $keyname, get_post_meta( $post_id, $keyname, true ) );
}
}
}
}
■コピー用コード貼り付け手順

上記の設定をすることで、
インデックス設定をするためのカスタムフィールドを投稿編集画面に作成することができる。

② header.phpを編集
次にheader.phpを編集する。
header.phpの編集画面が開けたら、下記のコードをコピーして、
ファイル内のheadタグ内(<head>〜</head>の間)に貼り付けて保存する。
<?php
if(is_singular() && get_post_meta($post->ID , 'noindex' , true)){
echo '<meta name="robots" content="noindex,follow" />';
}
?>

上記設定をすることで、
noindex設定を行なった記事に関しては、metaタグが表示されるようになる。
以上でnoindexを個別ページ毎に設定するための準備は完了だ。
noindexを個別ページ毎に設定する、確認方法
noindexを個別ページ毎に設定する準備が整ったので、
次に実際にnoindexを設定する方法と、noindexが設定されているかの確認方法を紹介する。
noindexの設定方法
noindexの設定は、
投稿編集画面の「インデックス設定」にチェックを入れることで可能だ。

noindexの確認方法
一応noindexが設定されているかの確認方法まで紹介しておくと、
①noindexを設定したページを開き、
「右クリック > ページのソースを表示」
ページのhtmlが表示されるので、「ctrl + F」の検索機能で
「<meta name=”robots” content=”noindex,follow” />」と検索する。

検索結果が見つかればOKだ。
ちゃんとnoindexの設定が反映されている。
すでにindex済みの記事に対してnoindexの設定をした場合、noindexの設定が反映されるのは検索エンジンによるクロールがあったタイミングとなる。
まとめ、参考記事
- 質の低い記事のindexを外して、質の高い記事のindexだけを残すことで、ブログ全体のドメインパワーの底上げが可能。SEOの高評価のみを最大限取得できる。
- noindexをページ毎に設定するようにするには、functions.phpとheader.phpを編集する必要がある。
https://developers.google.com/search/docs/advanced/crawling/block-indexing?hl=ja
検索エンジンに対して「SEOの評価をしないでください」と言う旨を伝えるための設定のこと