WordPress タグページのSEO対策

タグページのタイトルタグの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の標準状態では、以下のように表示される。

tag-archive-page

デフォルトの状態を下の画像のようにtwentythirteenのtag.phpをカスタマイズした。

improve-seo-tag-page

上の画像では、

テーマというタグ名を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