Sunday , February 05 , 2012

WordPressで重複コンテンツを克服するTips

WordPress先日、友人からWordPressの重複コンテンツ対策についての相談を受けました。
Head Space 2を入れとけばいんじゃないの?」って答えたところ「もっと簡単なヤツを教えてくれ」とのことでしたので、もしかして他にも探してる人がいるんじゃないかな~ってことで、<head>~</head>に書き込むだけの簡単なTipsをここにメモしておきます。

一応言っておきますが、Head Space 2All in One SEO Packを使用した方が無難だし何かと便利ですよ。
<?php wp_head(); ?>を書くとheadにいろんなものが吐き出されるからイヤ、という人に最適のTipsってことになると思います。
私がまさしくソレなんですけどね。

headにrel=”canonical”を書き込む

一日に一記事しか書かない人は、日別アーカイブと個別記事の内容がカンペキに重複します。
そんな時はrel=”canonical”を記述すれば重複扱いされることを回避できます。
トップページ及び個別記事のURLを正規URLに指定するため、トップページと個別記事の<head>~</head>にのみrel=”canonical”が記述されるようにします。
トップページだけに適用したい場合は青字部分のみ使用してください。

※URL正規化タグについて、その効果はまだ明らかにはなっていません。
私もテスト段階ですので自己責任でご利用ください。

※YSTにwww有り・無しを正しく認識させたい場合には「<?php bloginfo(‘url’); ?>/」ではなくサイトのURLを直接書き込む必要がありそうです。

<?php if (is_home() && !is_paged()): ?>
<link rel="canonical" href="<?php bloginfo('url'); ?>/" />
<?php endif; ?>
<?php if(is_single()): ?>
<link rel="canonical" href="<?php the_permalink(); ?>" />
<?php endif; ?>

ちなみに、個別記事だけでなくページにもrel=”canonical”を書き込みたい時は以下。
まぁ・・・たぶんそんな人はあまりいないと思いますけど。

<?php if (is_home() && !is_paged()): ?>
<link rel="canonical" href="<?php bloginfo('url'); ?>/" />
<?php endif; ?>
<?php if(is_single() || is_page()): ?>
<link rel="canonical" href="<?php the_permalink(); ?>" />
<?php endif; ?>

2ページ目以降のタイトルを変える

トップページも2ページ目以降も全く同じタイトルだったりしますので、<title>~</title>を以下のように書き換えます。
※「Title Suffix」という記事タイトルとサイト名の順番を入れ替えるプラグインを使用

<title><?php wp_title(); ?><?php echo (isset($paged) &&$paged) ? "Page{$paged} | " : ""; ?><?php bloginfo('name'); ?></title>

これで2ページ目は【Page2 | サイト名】というタイトルになります。

追記:タイトル用コード

プラグインは不要です。
<head>~</head>のtitleタグを以下のコードに置き換えてください。

<title><?php
	global $page, $paged;
	wp_title( '|', true, 'right' );
	bloginfo( 'name' );
	if ( $paged >= 2 || $page >= 2 )
		echo ' | ' . sprintf( __( 'Page %s' ), max( $paged, $page ) );
	?></title>

これで2ページ目は【サイト名 | Page2】というタイトルになります。

トップページだけmeta keywordとdescriptionを記述する

どれくらい効き目があるのかもわからないのに、記事ごとにキーワードとかディスクリプション書くのはめんどくさいですよね。それでもトップページくらいはmetaを入れておきましょう。

<?php if (is_home() && !is_paged()): ?>
<meta name="description" content="サイトの説明" />
<meta name="keywords" content="キーワード,キーワード,キーワード" />
<?php endif; ?>

これでソコソコの対策は出来たと思います。
ではでは。

【2009.08.13追記】
表示の不具合や抜けている表記がありましたので、書き直して再投稿しました。
お盆でボ~っとしていたみたいでスミマセン・・・。

[ Daisuke ]

コメントはまだありません

  • 管理者 : Daisuke

    こんにちは。短気で頑固でお人好しの器用貧乏、Daisukeです Smiley
    コメントはお気軽にどうぞ。

  • 管理者による内容確認後に表示されます。多少時間がかかる場合がありますのでご了承ください。
  • メールアドレスや人物の氏名など、個人が特定されるおそれのあるコメントは掲載いたしません。
  • Gravatarに登録済みの方はメールアドレスを入力するとアバターが表示されます。




:wink: :-| :-x :twisted: :) 8-O :( :roll: :-P :oops: :-o :mrgreen: :lol: :idea: :-D :evil: :cry: 8) :arrow: :-? :?: :!:

e-まが
(H21.7~更新中?)
JavaScriptやCSSなど、ウェブデザインの実装チュートリアルを紹介するブログ。

SEO & DESIGN
(H19.4~H20.11)
SEOとウェブデザインに関してのブログ。現在は更新を停止、当サイトの下層に移転しました。