タグページのタイトルタグのSEO対策とコンテンツヘッダーの調整
タイトルタグの最適化
WordPressのタグページを少しづつ増やしていくことにした。
本記事は、タグページに関する記事でカテゴリページの記事ではない。しかし、SEOを行うにあたり、カテゴリーも一部登場する。
タグ利用の前提
Webエンジニアブログでは、WordPressのタグを使うにあたり以下の項目を前提に利用することにした。
- タグはカテゴリーを細分化するために使う
- タグはカテゴリーを横断しない
- 記事に対して複数のタグを設定しない
簡単に表現すると、
カテゴリーの子階層としてタグを利用する
といった感じになる。
タイトルの書式
上の項目を前提とした上でで、タグページのタイトルタグを以下のフォーマットで設定することにした。
[タグ名] [カテゴリー名] | [ブログ名]
WordPressのデフォルトだと、
[タグ名] | [ブログ名]
といった感じでタグページのタイトルタグが出力されるが、カテゴリ名を追加することで、SEOを強化しようという試みになる。
タグをカテゴリーの子階層とする前提なので、具体的なタイトルタグの例をあげると以下のようになる。
- テーマ WordPress | Webエンジニアブログ
- 志望動機 転職 | Webエンジニアブログ
1つ目は、
WordPressカテゴリのテーマタグに設定されるタグページのタイトル
2つ目は、
転職カテゴリの志望動機タグに設定されるタグページのタイトル
になる。
記事の質次第だが、有効なSEO対策だと判断している。
タイトルタグのカスタマイズ
実際にタグページのタイトルタグをカスタマイズするには、
wp_titleフィルターフック
を利用することで、titleタグをカスタマイズすることが可能。
function customize_title($title) { // タグページの場合のみtitleをカスタマイズ if (is_tag()) { global $wp_query; // カテゴリオブジェクトを取得 $category = get_the_category($wp_query->posts[0]->ID ); // タグオブジェクトを取得 $tag = get_the_tags($wp_query->posts[0]->ID ); // タグ名を取得 $count = 0; if ($tag) { foreach($tag as $e) { $count++; if (1 == $count) { $tag_name = $e->name; break; } } } // titleタグの変更 $title = str_replace($tag_name, $tag_name." ".$category[0]->name, $title); } return $title; } add_filter('wp_title', 'customize_title', 10, 1);
タグページの場合には、記事一覧から設定されている
- カテゴリ
- タグ
双方のオブジェクトを取得し、最後にstr_replaceで置換するコードになる。オブジェクト取得時に利用したWordPress関数のcodexページは以下のリンクからアクセスすることができる。
get_the_category codex
get_the_tags codex
コンテンツヘッダーのカスタマイズ
公式テーマtwentythirteenを前提として、タグページのコンテンツヘッダーをカスタマイズする。
twentythirteenの標準状態では、以下のように表示される。
デフォルトの状態を下の画像のようにtwentythirteenのtag.phpをカスタマイズした。
上の画像では、
テーマというタグ名をh1に設定した上で、
[ブログ名] – タグ別アーカイブ:[タグ名]@[カテゴリ名] ページ番号/総ページ数
というフォーマットで文章を補足するようにしてある。@の後のカテゴリ名はカテゴリ別アーカイブへのリンクになるようにした。
twentythirteenのtag.phpの下のコードを
<h1 class="archive-title"><?php printf( __( 'Tag Archives: %s', 'twentythirteen' ), single_tag_title( '', false ) ); ?></php>
カスタマイズした以下のコードに置き換えれば画像のようにカスタマイズすることが可能。
<h1 class="archive-title"><?php single_tag_title( '', true ); ?></h1> <div class="archive-meta"><?php bloginfo('name'); ?> - <?php printf( __( 'Tag Archives: %s', 'twentythirteen' ), single_tag_title( '', false ) ); ?>@<?php echo "<a href='".get_bloginfo('url')."/category/".$category_name[0]->slug."'>".$category_name[0]->name."</a>"; ?> <?php echo (isset($current) === 1 ? '' : $current.'/'.$max) ?></div>
カテゴリ名を出力するために、下のPHPコードも必要になるので、
$current = (get_query_var('paged')) ? get_query_var('paged') : 1; $max = $wp_query->max_num_pages; $category_name = get_the_category($wp_query->posts[0]->ID );
tag.phpのPHPコードが書ける部分に書いておく必要がある。
WordPressのユーザー名でSEO対策が可能
検索エンジン最適化のためにnoindexメタタグのことは気にしなくてOK