WordPressでnoindex設定を行うには、いくつかの方法があります。本ブログでは、プラグインを使用せずにPHPコードを用いてnoindex設定する方法を具体的に解説します。
1. noindexの基礎知識
(1) noindexとは何か?
noindexは、検索エンジンに対して「このページはインデックスしないでください」と指示するメタ(meta)タグです。インデックスとは、検索エンジンがウェブページを認識し、検索結果に表示する準備を行うことです。noindex設定されたページは、検索結果に表示されなくなり、SEOへの悪影響を抑制することができます。
インデックスについてご参考サイト
(2) なぜnoindexを使用するのか:主な理由
noindex を使用する主な3つの理由です。
- 低品質ページを検索結果に表示させない
例:未完成ページ、内容のボリュームや質の低いコンテンツなど - 重複コンテンツによるペナルティを回避する
ほぼ同じ内容のページが複数存在する場合 - 特定のページを検索結果から除外する
例:会員限定ページ、プライベートな情報を含むページなど
低品質ページなページや重複コンテンツなどを検索エンジンにインデックス登録させてしまうと、サイト全体の評価が落ちるため、noindex を使用してこれらのページを除外することでサイト全体の評価を保つことができます。
(3) noindex と nofollow の違い
noindex と nofollow は、どちらもメタタグですが、役割が異なります。
- noindex:
検索エンジンに対して「このページをインデックスしないでください」と指示する - nofollow:
検索エンジンに対して、「このページにあるすべてのリンクをフォローしないでください」とヒント情報として提示する
ご参考情報
2. noindex設定をPHPで行う具体的手順
(1) PHPコードを用いたmetaタグの追加方法
アクションフック ‘wp_head’ を使って <head></head> 内に出力させます。
これらのコードは function.php や プラグイン内の phpコードに記述することができます。なお
① アーカイブページ や 404ページに、インデックスの登録をさせたくない場合のPHPコード例
add_action('wp_head', function() {
/* アーカイブ もしくは 404ページ の場合、インデックス登録しない */
if (is_archive() || is_404() ) {
echo '<meta name="robots" content="noindex,nofollow"/>' . "\n";
}
}, 0);
補足
この処理は、WordPressの wp_head アクションにフックされた無名関数で実装しています。この関数は、ページが表示される度に実行され<head></head> 内にメタタグを出力します。
② カスタムフィールドを利用してページ毎の設定させるPHPコード例
ブロックエディタ(Gutenberg)で、カスタムフィールド(ext_noindex)を追加し、値に”true”を設定
![ブロックエディタ(Gutenberg)で、カスタムフィールド(ext_noindex)を追加しし値に"true"を設定](https://trustbrain.jp/wp-content/uploads/2024/05/setting_custom_fields.png)
add_action('wp_head', function() {
/* 固定ページ または 投稿ページ */
if (is_page() || is_single()) {
global $post;
/* カスタムフィールド ext_noindex に指定があり */
$ext_noindex = get_post_meta($post->ID, "ext_noindex", true );
if ($ext_noindex == "true") {
echo '<meta name="robots" content="noindex,nofollow"/>' . "\n";
}
}
}, 1 );
処理説明
- サイトの固定ページまたは投稿ページが表示される際に、
- そのページに ext_noindex というカスタムフィールドが設定されており、
- そのカスタムフィールドの値が “true” の場合、
- メタタグ <meta name=”robots” content=”noindex,nofollow”/> を出力します。
(2) コード変更後のテストと確認手順
コード変更後には、以下の手順で設定が正しく反映されていることを確認してください。
- ブラウザで対象ページを開く
- ページソースを確認し、
<meta name=”robots” content=”noindex,nofollow“>
タグが追加されていることを確認する
3. SEOへの影響と検索エンジンの反応
(1) noindexがGoogle検索結果に与える影響
Googleはnoindexの指示に従い、そのページを検索結果に表示しなくなります。以前インデックスされていたページも削除されます。
なお検索エンジンは定期的にページを訪問し、noindex設定が解除されていないかを確認します。noindex設定を解除すると、ページが再びインデックスされるようになります。
(2) その他の検索エンジン(Bing, Yahoo等)への影響
noindexは、Googleだけでなく、BingやYahooなどの他の検索エンジンにも影響を与えます。ただし、検索エンジンによって解釈に若干の違いがある可能性があることに注意する必要があります。
(3) 低品質なページをnoindexにする意義
低品質ページなページや重複コンテンツなどを検索エンジンにインデックス登録させてしまうと、サイト全体の評価が落ちるため、noindexを使用してこれらのページを除外することでサイト全体の評価を保つことができます。
また、検索結果にユーザーにとって不要なページが表示されてしまうと、ユーザーが求める情報に辿りつけず、ストレスを感じてしまう可能性があります。そのため、そういったページを検索エンジンにインデックスされないよう指定することで、ユーザーが検索結果から不要なページを無くし、スムーズに目的のページにたどり着けるようになります。つまり、不要なページを検索から除外することで、ユーザーの検索体験を改善できることにもなります。