WordPressのタグアーカイブにnoindexを設定する方法
WordPressのタグアーカイブにnoindexを設定する方法を紹介します。
1.はじめに
WordPressで作ったサイトには、デフォルト設定で下記のmeta要素が各ページに表示され、検索エンジンにインデックスされないようになっているようです。
<meta name='robots' content='noindex,follow' />
検索エンジンにインデックスされるようにするには、管理画面の「設定」→「表示設定」にある「検索エンジンがサイトをインデックスしないようにする」のチェックを外して「変更を保存」をクリックします。
これで上記のmeta要素が表示されなくなり、各ページがインデックス対象となります。
ちなみに、上記の制御はdefault-filters.phpに
add_action( 'wp_head', 'noindex', 1 );
が仕込まれており、noindex()は、general-template.phpに設定がありました。
function noindex() {
// If the blog is not public, tell robots to go away.
if ( '0' == get_option('blog_public') )
wp_no_robots();
}
function wp_no_robots() {
echo "<meta name='robots' content='noindex,follow' />\n";
}
get_option()のblog_publicはさきほどの設定項目のname属性になります。
話を戻しますが、チェックを外すとタグアーカイブなど、インデックスされることを期待しないページもインデックス対象になってしまいます。
記事やカテゴリのページでnoindexを設定する方法はよくみかけるのですが、タグアーカイブでnoindexを設定する方法がヒットしなかったので、このエントリーで紹介しておきます。
2.タグアーカイブにnoindexを設定する
タグアーカイブのクエリーパラメータには「tag=検索文字列」が付与されるので、次のようなコードをヘッダー (header.php)に付与すればよいと思います。
<?php if ( $_GET['tag'] ) { ?>
<meta name="robots" content="noindex,follow" />
<?php } ?>
3.注意事項
robots.txtを使ってtag=パラメータをはじく手もありますが、タグアーカイブすでにインデックスされている可能性がある場合、robots.txtでブロックすると、インデックス済のページがいつまでたっても削除されないため、2項の手段で削除することが望ましいです。
- WordPressで正しいユーザー・パスワードでログインできなくなった場合の対処
- WordPressのthe_excerpt()をカスタマイズする
- WordPressで抜粋の文字数を変更する方法
- WordPress 3.0にMovable Typeのタグをインポートする
- WordPress 3.0 で廃止された非推奨グローバル変数一覧
- WordPress の the_date を変更して記事ごとに日付を表示する
- 著作権表示の年号を自動更新するプラグイン V1.1 for WordPress
- 著作権表示の年号を自動更新するプラグイン for WordPress
- WordPress でステータスコード 404(Not Found)を返却するエラーページを作る
- WordPress に Movable Type 風の「Syndicate this site」を表示する
- WordPress における日付/時間の表示とフォーマット変更方法