SEO対策の一つ「低品質コンテンツの対応」として、投稿ページや固定ページ単位にmeta robotsタグが設定できるプラグイン「wordpress meta robots」ですが、残念な事にカテゴリーページやタグページは自動で「no index」になってしまいます。プラグインのコードを書き変えて対応することもできますがプラグインがアップデートされると元に戻ってしまうのでカスタムフィールドを使って対応するように変えた時に書いたコードのメモ書きです。
[adsense]
meta robotsタグをカスタムフィールド値で対応した方法
meta robotsタグとは
HTMLページのヘッダーに記入する以下のコードで、ページ単位に検索エンジンに対してインデックスの可(index)・不可(noindex)、リンクをたどる事の可(follow)・不可(nofollow)を指示する物です。
[crayon]
[/crayon]
wordpressは動的にアーカイブページが生成されますから内容が重複したページが増えますし、投稿ページや固定ページで検索エンジンにインデックスして欲しくないページもあります。その様な時に記入するメタタグです。
ページ単位のmeta robotsタグの設定例
No. | ページ名 | 指定値 |
---|---|---|
1 | トップページ | index,follow |
2 | カテゴリーページ | index,follow |
3 | タグページ | noindex,follow |
4 | アーカイブ(年月)ページ | noindex,follow |
5 | 投稿ページ | index,follow ←ここを入力値に |
6 | 固定ページ | index,follow ←ここを入力値に |
7 | 上記以外 | noindex,follow |
※カテゴリーページやタグページをindexにするかnoindexにするかは、カテゴリーやタグの付け方によって変わる事もある。
カスタムフィールドから入力できる様にfunction.phpにコードを追加
[crayon]
//カスタムフィールドを使ってmeta robotsを指定
function my_custom_fields() {
global $post;
$robots = get_post_meta($post->ID,’robots’,true);
if(empty($robots)) {
$robots = ‘index, follow’;
}
echo ‘
検索ロボット(カンマ区切り)
‘;
echo ‘
‘;
}
// カスタムフィールドの値を保存
function save_custom_fields( $post_id ) {
if(empty($_POST[‘robots’])) {
$_POST[‘robots’] = ‘index, follow’;
}
update_post_meta($post_id, ‘robots’, $_POST[‘robots’] );
}
[/crayon]
※投稿ページや固定ページは、’index, follow’を初期値と考え、noindexとかnofollowにしたい時にはカスタムフィールドの値を変える
カスタムフィールドで入力したmeta robotsの値をテーマファイルに反映
[crayon]
[/crayon]
※上記のコードをテーマファイルのheader.phpに追加する。
※注意 コード追加箇所はテーマによって異なる。
まとめ
そもそも低品質なコンテンツは作成しない事が前提なのでしょうが、商品販売ページ等メーカー提供コンテンツや販社提供コンテンツがページの大半を占めるコンテンツには、このような対応が必要ではないかと思います。これはカスタマイズをしなくても WordPressの人気プラグイン「ALL in One SEO Pack」を使えば実現できますが、私はメタタグのDescriptionとkeywords設定にプラグイン『Meta Manager』を使ってますのでこの様な対応をしました。
コメント