WordPressで指定カテゴリにnoindexをプラグインなしで設定。特定の記事は外す処理も
指定のカテゴリのみに noindexを設定する関数
WordPressで特定のカテゴリ、記事に noindexを設定する方法
WordPressで特定のカテゴリや、特定の記事に noindexを設定する方法としては、プラグインを利用する方法があります。
noindexを設定する WordPressのプラグインとしては、「All in One SEO Pack」が有名ですが、テーマによっては機能が被るために相性が悪いものや、noindexを設定するためだけに「All in One SEO Pack」を導入するのは避けたい、という場合もあるでしょう。
最近のテーマでは、テーマ自体に noindexを設定する機能が付いているものが増えてきていますので、これを機にテーマを新しくする、という方法もあるでしょう。
ですが、プラグインをインストールするにもテーマを刷新するにしても大きな手間や不安要素があるので、サクッと関数を追加するだけで対応したい、という場合もあるでしょう。
そんな方に向けて、noindexを設定できる関数を作成しました。
特定のカテゴリ、記事に noindexを設定する関数
下記を functions.phpに編集します。
functions.phpのある場所は、下記になります。
/{WordPressのインストール場所}/wp-content/themes/{テーマ名}/
functions.phpのある場所についての詳細は、「WordPressの functions.phpがある場所」に解説をしていますので合わせて参考にしてください。
functions.phpのファイルの中のどこかに追記すればいいんですが、ファイルの一番最後に追記する方法が無難でしょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
// 特定のカテゴリの詳細ページは noindexを設定する function add_noindex_tag ( $post_id ) { $return_html = ""; // noindexを設定するカテゴリの slugを指定 $ng_category_array = array("test","diary",); // noindexを設定するカテゴリの中で noindexを設定しない記事の slug $ok_post_array = array("111","150",); // Post_IDがない場合は、処理を実行しない if ( $post_id ) { // 特定のカテゴリの詳細ページは noindexを設定する if ( is_single() ) { // カテゴリを取得 $get_category_list = array(); $get_category_list = get_the_category($post_id); // カテゴリは配列として返ってくるため foreachで回す foreach ( $get_category_list as $get_category_id ) { // slugが指定のものと一致する場合は、noindexを指定する if ( in_array ( $get_category_id->slug, $ng_category_array ) ) { // Postの情報を取得 $get_get_page = get_page($post_id); // slugが指定したものと一致しない場合のみ、noindexを指定指定する if ( ! in_array ( $get_get_page->post_name, $ok_post_array ) ) { $return_html = '<meta name="robots" content="noindex">'; continue; } } } } } return $return_html; } |
処理の内容については、それぞれの行にコメントを書いていますので、それぞれ読んでください。
また、設定としては、7行目、10行目を下記の通りに設定変更をしてください。
7行目に、noindexを設定したいカテゴリの「slug」を指定します。
10行目には、7行目に設定したカテゴリの中にある記事の中で、noindexを指定したくない記事の「slug」を指定します。
上記のサンプルは、10行目が数値になっていますが、「Post ID」ではなく「slug」を編集してください。このブログの slugは数値のため、サンプルも数値になっているだけです。
noindexを設定する関数を実行する記述
先の項目で示した noindexを編集する関数を実行し、実際に noindexのタグを編集する処理は下記になります。
編集する場所は「<head>~</head>」の間に編集します。
1 2 3 |
<?php echo add_noindex_tag($post->ID); ?> |
一般的に「<head>~</head>」タグは、多くの場合「header.php」ファイルの中にあります。
「header.php」ファイルは、先の「functions.php」があるフォルダの中にあります。
具体的には下記になります。
/{WordPressのインストール場所}/wp-content/themes/{テーマ名}/
テーマによっては、「<head>~</head>」タグを編集しているファイルが違う場合もあります。
noindexを設定する意義
そもそも何で「noindex」を設定するのでしょうか?
noindexの設定は、下記のメタタグを「<head>~</head>」の間に編集することで効果を表すタグです。
1 2 3 4 5 |
【すべての検索エンジンのロボットを対象に】 <meta name="robots" content="noindex"> 【Googleの検索エンジンのロボットを対象に】 <meta name="googlebot" content="noindex"> |
このタグを設定することで、Googleを始めとした検索エンジンからサイトの情報を取得しに来るロボットに対して、このページの情報はインデックスしないでね、と伝えることができます。
前者がすべての検索エンジンのロボットに対して依頼をするのに対して、後者は Googleのロボットのみを対象としています。
(現状の検索エンジンのシェアはほぼ Googleですので、Googleだけ対処できていればいい、という考え方もあり得ます。)
せっかく書いた記事なのに、検索エンジンにインデックスしないように伝えるということは、その記事は検索エンジンで検索しても検索されなくなる、ということです。
それでもなお「noindex」を設定する理由とは何でしょうか?
理由は、「サイト全体の記事の質を高めるため」です。
昔は、ネットサーフィンをする利用者も多かったのですが、最近は、必要な情報を探すためだけに利用している方も多く、検索エンジンもユーザに有用な情報をいかに確実に届けるか、ということに注力しています。
そのため、サイトを通して質の高い記事(アクセスが多い記事)の割合が多いサイトを優先的に検索結果に表示しようとします。
それに対応するためには、質の高くない記事(アクセスが少ない記事)は、サイトから外していく必要があるのです。
長くブログを続けてきた方の場合に多いと思いますが、昔は流行っていたけど最近は見る人が減っている記事や「ウケる」と思って書いたけどさっぱりのネタ記事など、アクセスがある記事とない記事とが分かれているでしょう。
最善の方法は、アクセスが少ない記事はサイトから外してしまう(削除してしまう)方がいいのですが、さすがにそれは忍びないという場合の対応として、検索エンジンにはその記事がないものとして処理してもらう、という方法なのです。
そして、その方法の具体的な手段が noindexを設定する、ということなのですが、その設定方法の一つとして関数を作成しました。
GoogleAdwords
GoogleAdwords
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!
関連記事
-
ショートコードで簡単解決!カスタムフィールドでソート、抽出条件設定方法
ショートコードを使って固定ページや投稿に特定のカテゴリ一覧を編集する処理に、ソート条件、抽出条件も設定できる処理を作成。カスタムフィールドも条件に利用可。
-
WordPressプログラム全体で定数や変数を利用する場合の設定方法
WordPressで関数を追加するときなど、全体で同じ変数を使いたいと思う場面の対処方法です。変数を記述する関数はfunctions.php、wp-config.phpのいずれか。
-
Captchaを使って WordPressのコメントスパム対策をする
コメントスパム対策として入力させない対策の一つとしてCAPTCHAという方法がありそれを簡単に実装できるプラグインCaptchaの解説です。
-
Advanced Custom Fields(ACF)のアドオン・繰り返しフィールドの使い方解説
Advanced Custom Fieldsのアドオン・繰り返しフィールドについて解説。繰り返しフィールドは投稿者が入力フィールドを追加しながら情報を入力できるフィールドを提供。
-
Custom Post Type UIでカスタム投稿を設定・バージョン1.4対応解説
カスタム投稿をプラグインCustom Post Type UIを使って設定する方法を解説。バージョンアップにより設定する項目も増え、より柔軟な設定ができます。
-
Theme My Loginの日本語翻訳ファイル Ver.6.4.5対応
Theme My Loginの日本語翻訳ファイルのダウンロードページ。WordPressの翻訳ファイルの設置方法、注意点、翻訳ファイルの作成方法なども解説。
-
MW WP Formの使い方詳細解説・WordPressの確認画面付フォーム
WordPressの確認画面付お問い合わせフォームプラグイン「MW WP Form」の詳細解説をしています。
-
WordPressのカテゴリやタクソノミーにカスタムフィールド項目を追加する方法
WordPressのカテゴリやタクソノミーに編集する項目を追加する方法の解説。Advanced Custom Fieldsを使うと簡単。テンプレートに記述する方法も解説。
-
wp_mail()関数でWordPressのスパム対策済のメールフォーム作成
WordPressでメール送信フォームを作成するための関数「wp_mail()」の使い方の解説。CC、BCC、添付ファイルも HTMLメールも設定可能。
-
BackWPupでバックアップ・Jobの設定・保存先の情報設定
BackWPupその3。Jobのバックアップファイルの保存先の設定についての解説。