WPカテゴリページのSEO的カスタマイズ・LP化&重複回避

カテゴリーページのカスタマイズ

WordPressのサイトには、投稿記事をカテゴリー別に分類できる機能がついています。

この機能を使うことで、自動的にカテゴリーページが作成されます。

サイト閲覧時に、「このカテゴリーの記事をもっと読みたいな」と思った時にカテゴリー別の記事の一覧ページがある、= ユーザーさんにとって利便性が高くなる、ということであります。

なので、カテゴリーページを整えてわかりやすい状態にすることはサイト全体の価値を高めることだと思いますし、

SEO施策としての戦略的キーワード選定を掘り下げて考えていくと、カテゴリーページも、ランディングページ(検索ユーザーが最初に閲覧するページ)として機能させた方が良いと考えています。

キーワード選定とサイト構築をSEOに配慮して考える場合、バズ部さんの以下の記事が大変参考になります。

キーワード選定とコンテンツプランニング
http://bazubu.com/how-to-choose-seo-keywords-18458.html

いや、ほんとにどの記事もとても勉強になりますね!!有難いです(^^)

ただ、カテゴリーページを検索エンジンにインデックスさせるようにした方が良いのか、させなくてもOKなのか、ということについては、以下の記事でウェブシュフさんがまとめて下さっているように、ネット上でも意見が分かれます。

【再改訂】重複コンテンツ問題まとめ(2013年11月~12月)
http://webshufu.com/how-to-cope-with-duplicate-contents/

ウェブシュフさん、秀逸なまとめ、ありがとうございます<(_ _)>

ちなみに現在では、この重複コンテンツ問題は、特にindex、noindexの指定はしなくても、重複コンテンツとしてSearch Console(旧ウェブマスターツール)で出てこないことを確認しています。

Googleの検索エンジンが他の要素を総合的に判断してアーカイブ(:カテゴリやタグなどで分類された複数の記事をまとめたもの)ページを重複ページとカウントしなくなっていると考えられます。

私見では、index、noindexの指定よりも、

  • canonicalタグの設定を適切に行うこと
  • robots.txtの記述を正確に行うこと

の方が重複コンテンツの回避には重要だと思われます。

さて、以上のことを踏まえて導き出した私なりの結論は、

『カテゴリーページをインデックスされてもOKな状態に設定できるのであれば、インデックスされるようにした方が良い』

ということで、ここではまず、”カテゴリーページをインデックスされてもOKな状態”にしていきましょう。

”カテゴリーページをインデックスされてもOKな状態にする”には?

インデックスされて、単一の独自のページとして検索エンジンにも認められる状態にするには

  1. URLを適正な形に
  2. ページタイトルとディスクリプション
  3. <head>~</head>内のタイトル
  4. <head>~</head>内のメタディスクリプション

の調整が重要です。

では、その実際の設定方法について説明していきます。

カテゴリーのスラッグ、ディスクリプションを設定する

カテゴリーの設定画面を開きます。

カテゴリーの設定画面を開く

カテゴリーの設定画面で現在設定されているカテゴリーが表示されます。全く設定していない場合は、未分類というカテゴリーだけがある状態です。

カテゴリー設定画面

カテゴリーの新規作成方法については、「WordPressの設定・カテゴリー設定」に書いていますので、ここでは割愛しますが、初心者から一歩進んで、SEOを考えた設定を行う場合には、以下の点が重要です。

スラッグは半角英数にする

カテゴリーページのURLになるのがスラッグです。

パーマリンク設定で、パーマリンクをexample.com/%postname%

と設定した場合、カテゴリーページのURLは、example.com/category/スラッグ

となります。

他の投稿にも言えることですが、スラッグが日本語のままだと、メールなどに転載した場合など、だらだらとした意味不明なURLになってしまいます。

スラッグはカテゴリーの内容を端的に表す半角英数で設定するのがおすすめです。

説明文は120文字を目安にカテゴリーの内容をキーワード等に配慮して書く

カテゴリーページのディスクリプションとして使われるので、カテゴリーページが検索結果に表示された場合、この部分がスニペット(検索結果のタイトル下にページの説明文として表示される文章)として表示されます。

投稿記事の抜粋と同様、クリック率に影響を持つ部分になります。

また、これがメタディスクリプションとしてインデックスされる内容にもなり、重要なところです。

WordPressのデフォルトのTwentyではじまるテーマでは、この説明文を入力すれば、カテゴリーページのタイトル下にディスクリプションとして表示されるようになっていますが、他のテーマでは表示されない場合もあります。

各カテゴリーページの差別化を図るために、ディスクリプションをタイトル下に表示させたいのであれば、category.phpのタイトル下に後述のディスクリプションコードを追記します。

では、次にタイトルとディスクリプションの末尾にページ数をつけ加えていきます。

カテゴリーページの2ページ目以降の重複を防ぐためのタイトルとディスクリプションの設定

記事が増えてくると、カテゴリーページが2ページ目3ページ目と作成され、1ページ目のタイトルとディスクリプションの内容がそれ以降のページのものと同じなため、重複コンテンツとみなされるリスクがあります。

これを回避するためにはタイトルや、ディスクリプションにページ数をつけることで、、他のページとは差異をつけることで違うページと判断してもらえます。

Twenty Fifteen以外のWordPressのデフォルトのTwentyではじまるテーマでは、カテゴリーページのタイトルとディスクリプションのコードを以下のように設定することでページ数を表記できます。
※子テーマでのカスタマイズをおすすめします。

タイトル

例)Twenty Fourteen category.php のアーカイブヘッダーのタイトル部分

デフォルトのタイトル



<header class="archive-header">


<h1 class="archive-title"><?php printf( __( 'Category Archives: %s', 'twentyfourteen' ), single_cat_title( '', false ) ); ?></h1>


この中の、

<?php printf( __( 'Category Archives: %s', 'twentyfourteen' ), single_cat_title( '', false ) ); ?>

の部分を変更し、ます。

変更後のタイトル



<header class="archive-header">


<h1 class="archive-title">『<?php single_cat_title(); ?>』カテゴリー記事一覧<?php if(get_query_var('paged')) echo ' - PAGE'.get_query_var('paged'); ?></h1>


ディスクリプション

デフォルトのディスクリプション

                                   <?php
					// Show an optional term description.
					$term_description = term_description();
					if ( ! empty( $term_description ) ) :
						printf( '


<div class="taxonomy-description">%s</div>


', $term_description );
					endif;
				?>
			</header>


<!-- .archive-header -->

変更後のディスクリプション



<div class="taxonomy-description"><?php 					// Show an optional term description. 					$term_description = term_description(); 					if ( ! empty( $term_description ) ) : 						printf( '%s', $term_description ); 					endif; 				?><?php if(get_query_var('paged')) echo ' - Page.'.get_query_var('paged'); ?></div>


			</header>


<!-- .archive-header -->

元のアーカイブヘッダーの全体のコードはこちら



<header class="archive-header">


<h1 class="archive-title"><?php printf( __( 'Category Archives: %s', 'twentyfourteen' ), single_cat_title( '', false ) ); ?></h1>


				<?php
					// Show an optional term description.
					$term_description = term_description();
					if ( ! empty( $term_description ) ) :
						printf( '


<div class="taxonomy-description">%s</div>


', $term_description );
					endif;
				?>
			</header>


<!-- .archive-header -->

比較していただければわかりますが、ほぼページ数をつけただけです^^;

が、同カテゴリ内のタイトルとディスクリプションのコンテンツの重複はこれで防ぐことができます。

上記の設定で、カテゴリーページのタイトル・ディスクリプションの部分は以下のようになります。

例)「プラグイン」カテゴリーページの2ページ目
「プラグイン」カテゴリーページの2ページ目ヘッダー

ここまでで、ページに表示されるタイトルと、ディスクリプションの設定はできました。

また、ここでタイトルを修正したことで、<head>~</head>内のタイトルも連動して同じタイトルが表示されるので、残りは<head>~</head>内のメタディスクリプションだけです。

では、<head>~</head>内のメタディスクリプションの設定をしていきましょう。

メタディスクリプションをheader.phpで制御する

以下のようなコードをheader.phpの<head>~</head>内に記します。
※子テーマでのカスタマイズをおすすめします!

<!-- Description -->
<?php if (is_single() || is_page()): ?>
<?php $excerpt =strip_tags(get_the_excerpt()); $excerpt = str_replace(array("... 記事を表示する"), '', $excerpt); ?>
<meta name="description" content="<?php echo $excerpt; ?>"><?php if(get_query_var('paged')) echo '|  Page'.get_query_var('paged'); ?>" />

<?php elseif (is_home()): ?>
<meta name="description" content="WordPressの使い方、ワードプレスプラグインの使い方や設定方法、テーマのカスタマイズなどについて書いたブログアーカイブ<?php if(get_query_var('paged')) echo '| Page'.get_query_var('paged'); ?>" />

<?php elseif (is_category()): ?>
<meta name="description" content="<?php echo category_description( $category_id ); ?><?php if(get_query_var('paged')) echo ' | Page'.get_query_var('paged'); ?>">

<?php elseif (is_tag()): ?>
<meta name="description" content="<?php echo tag_description(); ?><?php if(get_query_var('paged')) echo ' | Page'.get_query_var('paged'); ?>">

<?php elseif (is_month()): ?>
<meta name="description" content="<?php echo get_the_date( 'Y年n月' ); ?>の投稿集ページ。<?php if(get_query_var('paged')) echo ' | Page'.get_query_var('paged'); ?>">

<?php elseif (is_author()): ?>
<meta name="description" content="<?php the_author(); ?>の投稿アーカイブページ。<?php if(get_query_var('paged')) echo ' | Page'.get_query_var('paged'); ?>">

<?php elseif (is_search()): ?>
<meta name="description" content="サイト内検索結果ページです。">

<?php else : ?>
<meta name="description" content="<?php bloginfo('description'); ?><?php if(get_query_var('paged')) echo ' | Page'.get_query_var('paged'); ?>">
<?php endif ; ?>
<!-- Description -->

まあ、これだと、カテゴリーページだけでなく、サイト全体のメタディスクリプションをいじっちゃってますが、アレンジしてお使いください。

作成時に参考にしたURLは以下のページ。詳細を確認できます。

関数リファレンス/get query var
http://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/get_query_var

WordPressテンプレートでtitileやdescriptionの重複を回避するためのひとつのアイデア
http://chronos-brain.com/2013/1024180529/

クロノスブレインさん、大変参考になりました!
ありがとうございます<(_ _)>

もしも万が一コピペしようと思われるのであれば、ところどころご自分のデータに変更すべきところがありますので、以下の点にご注意ください^^;

投稿と固定ページのディスクリプション

<?php if (is_single() || is_page()): ?>
<?php $excerpt =strip_tags(get_the_excerpt()); $excerpt = str_replace(array("... 記事を表示する"), '', $excerpt); ?>
<meta name="description" content="<?php echo $excerpt; ?>"><?php if(get_query_var('paged')) echo '|  Page'.get_query_var('paged'); ?>" />

上記のコードで投稿ページと固定ページの抜粋(excerpt)をメタディスクリプションにしています。

$excerpt =strip_tags(get_the_excerpt());

の部分で抜粋文についているhtmlタグを排除してテキストのみに変換していますが、これだけでは末尾の read more や …続きを読む などのリンク用の一文もディスクリプションに入ってきてしまいますので、

$excerpt = str_replace(array("... 記事を表示する"), '', $excerpt);

の部分で、末尾の一文を削除しています。

ですから、削除する部分の (“… 記事を表示する”) を (“…続きを読む”) などのご自分の設定に合わせて変更して下さい。

また、抜粋(excerpt)には<p>タグがついてしまいますので、functions.phpに以下のコードを追記して下さい。

remove_filter('the_excerpt', 'wpautop');
remove_filter('term_description','wpautop');

ブログの一覧ページのディスクリプション

<?php elseif (is_home()): ?>
<meta name="description" content="WordPressの使い方、ワードプレスプラグインの使い方や設定方法、テーマのカスタマイズなどについて書いたブログアーカイブ<?php if(get_query_var('paged')) echo '| Page'.get_query_var('paged'); ?>" />

のコードに関しては、「WordPressの・・・書いたブログアーカイブ」の部分はブログ全体に関する説明文の一例として、ご自分のブログの内容を説明する文章に変更して下さい。

ココには、一般設定のサイトのキャッチフレーズを使用したい、という場合であれば、以下のコードで呼び出せます。

<?php bloginfo('description'); ?>

これを使用して、

<?php elseif (is_home()): ?>
<meta name="description" content="<?php bloginfo('description'); ?><?php if(get_query_var('paged')) echo '| Page'.get_query_var('paged'); ?>" />

としていただけば、OKです。

設定後のカテゴリー「プラグイン」の2ページ目のメタディスクリプションはこのような感じになります。

カテゴリーページ・メタディスクリプション

あとは、一覧性をUPするために、全文表示ではなく、抜粋表示にするなどすれば、使い勝手も良くなるのではないかと思います。
参考:「WordPressテーマTwenty~のカテゴリページ等を抜粋一覧にする方法

ではでは、今日は長くなってしまいましたが、この辺で。

「WPカテゴリページのSEO的カスタマイズ・LP化&重複回避」の巻でした!

お役に立ったら、シェアなどしていただけるとうれしいです!

Published:2015/07/30

Written by

WPカテゴリページのSEO的カスタマイズ・LP化&重複回避」への1件のフィードバック

コメントを残す