WordPressでアーカイブなどのページをnoindexにする方法

WordPress個別サポート

WordPressサイトでアーカイブなど特定のページをnoindexにする方法を紹介します。「noindex」とは、検索エンジンに「インデックスしないでね」と伝えるオプションです。結果として、検索結果に出てこなくなります。

「なぜそんなことをするのか?」が理解できない方には不要です。あくまで「このページを検索結果に表示したくない」とか「特定のページをインデックスされないようにブロックしたい」という方の解決策の1つがnoindexだというだけです。

noindexによって特定のページをインデックスさせたくない場合、headタグに次のようなHTMLを追加します。

<meta name="robots" content="noindex" />

SEO系のプラグインや実用的なテーマを使えばコードを書かずに自動で設定できますし、自分でコードを書いてページのheadタグに追加することもできます。以下に事例を紹介します。

プラグインやテーマでnoindexを設定する場合

All in One SEO PackのようなSEO系のプラグインや、賢威などのテーマを使えばメニューからnoindexを設定することができます。わざわざコードを入力する必要はありません。

以下はAll in One SEO Packプラグインでnoindexを設定するメニューの例です。

All in One SEO Packプラグインのnoindex設定
All in One SEO Packプラグインのnoindex設定

個別の記事ごとにnoindexを設定することもできます。以下は賢威のメニュー例です。

個別記事のnoindex設定(賢威)
個別記事のnoindex設定(賢威)

これらの機能を使えばコードを記述せずにnoindexを追加できます。

コードを書いてnoindexを設定する場合

相性の問題などでAll in One SEO Packプラグインをインストールできなかったり、賢威のようなnoindex対応のテーマを使えない場合、自力でheadタグにnoindexを追加するコードを書く方法があります。

たとえば、アーカイブをnoindexにするコードの例は次のようになります。子テーマのfunctions.phpなどに入力します。

/* インデックスしないページを設定 */
function my_add_noindex(){ 

    /* アーカイブ */
    if (is_archive()) {
        echo '<meta name="robots" content="noindex" />';
    }
}
add_action('wp_head', 'my_add_noindex');
functions.phpを編集するときは画面が真っ白になることを想定して必ずFTPツールを使うようにしてください。「外観」-「テーマの編集」メニューで編集するのは危険です。不安な方はWordPress個別サポートにご相談ください。作業をサポートします。

上記のis_archiveという命令が示すアーカイブにはカテゴリー、タグ、投稿者、年月などのアーカイブページが含まれます。

これで、アーカイブページのみにnoindexが追加されます。HTMLのheadタグを確認してみましょう。

アーカイブにnoindexが追加される
アーカイブにnoindexが追加される

noindexでもリンクは巡回してほしい場合

インデックスはされたくないけど、アーカイブに一覧表示されたページのリンクは巡回してもらいたい場合はnoindexと一緒に「follow」を指定するとよいでしょう。

/* インデックスと巡回の設定 */
function my_add_noindex(){ 

    /* アーカイブ */
    if (is_archive()) {
        echo '<meta name="robots" content="noindex,follow" />';
    }
}
add_action('wp_head', 'my_add_noindex');

インデックスもリンクの巡回も不要な場合

インデックスもリンクの巡回もしてほしくない場合は「noindex,nofollow」を指定します。

/* インデックスと巡回の設定 */
function my_add_noindex(){ 
 
    /* アーカイブ */
    if (is_archive()) {
        echo '<meta name="robots" content="noindex,nofollow" />';
    }
}
add_action('wp_head', 'my_add_noindex');

さまざまなページをnoindexに

アーカイブ以外にも特定の固定ページや投稿などをnoindexにするコードをまとめておきます。本来はもう少しスッキリ書けますが、個々の条件ごとに編集しやすいように、あえて効率の悪いコードにしてあります。

/* インデックスと巡回の設定 */
function my_add_noindex(){ 
 
    /* 特定の固定ページ */
    if (is_page(array('contactx', 'servicex'))) {
        echo '<meta name="robots" content="noindex,follow" />';
    }
 
    /* 特定の投稿 */
    if (is_single(array('8888888', '999999'))) {
        echo '<meta name="robots" content="noindex,follow" />';
    }
 
    /* 投稿一覧 */
    if (is_home()) {
        echo '<meta name="robots" content="noindex,follow" />';
    }
 
    /* アーカイブ */
    if (is_archive()) {
        echo '<meta name="robots" content="noindex,follow" />';
    }
 
    /* 検索結果 */
    if (is_search()) {
        echo '<meta name="robots" content="noindex,follow" />';
    }
}
add_action('wp_head', 'my_add_noindex');

is_archiveとis_homeがまぎらわしいので簡単に説明します。「is_archive」はカテゴリーごとなどのアーカイブページですが、「is_home」は全カテゴリーが含まれる投稿一覧です。一般的なホームページでは「ブログ」メニューのことですが、トップページがブログの場合(「フロントページの表示」が「最新の投稿」の場合)はトップページがインデックスされなくなります。ご注意ください。

あとは自由にカスタマイズしてください。