metaタグのkeywordsとdescriptionをカスタマイズ

googleウェブマスターツールを見ていると、重複するメタデータ(descriptions)がたくさんある(約1,500)とのご指摘が!
ページソースを見てみると、どのページもBLOGのキャッチフレーズが設定されています。
header.phpに、

<meta name="description" content="<?php echo bloginfo('description'); ?>" />

と書かれているので、当たり前です。
このままではSEO的に良くなかろうということで、対応することに。

この手の対応にはSEO対策プラグインを使うのが良さそうです。
候補に上がったのが定番の以下の二つ。

  • All in One SEO Pack
  • HeadSpace2

試してみた結果、細かく設定できるHeadSpace2が良さそうだ。
これをベースにすることにしました。

HeadSpace2の設定の際に参考にさせて頂いたサイト

さて、記事のDescription(説明文)に%%excerpt%%を入れても、空白(description=””)で出力されてしまいます。
どうやら、記事に抜粋を設定しないと出力されないようです。
本家「ネイチャー探索日記」はFC2から引っ越してきたサイトで、記事数は700以上あります。
一つ一つの記事に抜粋を設定するなんて、とてもじゃないけどできません。
記事本文からdescriptionを設定できないかとぐぐってみたところ、下記の記事の対策方法が良さそうです。

「Blog × Play Under World」様
WordPressでエントリーごとにkeywordsとdescriptionを自動で設置する方法

抜粋が設定されている場合は抜粋から、設定されていない場合は本文からdescriptionを設定する方法です。
keywordsの部分はとりあえず後で考えるとして、下記のコードをheader.phpに記載。

<?php if ( is_single() ) { ?>
	<?php if ($post->post_excerpt){
		$summary = strip_tags($post->post_excerpt);
		$summary = ereg_replace("(\r\n|\r|\n)", "", $summary); ?>
		$summary = mb_substr($summary, 0, 120). "..."; ?>
		<meta name="description" content="<? echo $summary; ?>" />
	<?php } else {
		$content_summary = strip_tags($post->post_content);
		$content_summary = ereg_replace("(\r\n|\r|\n)", "", $content_summary);
		$content_summary = mb_substr($content_summary, 0, 120). "..."; ?>
		<meta name="description" content="<?php echo $content_summary; ?>" />
	<?php } ?>
<?php } else { ?>
	<!-- <meta name="description" content="<?php bloginfo('description'); ?>" /> -->
<?php } ?> 

望み通りの結果となりました。

さて、この対応だと投稿記事(singleページ)は望む結果となりますが、
index、アーカイブ、カテゴリ、タグ等のページには同じdescriptionが設定されてしまいます。
前述のコードの14行目はコメントアウトして、keywordも合わせて、Headspace2に任せることにしました。

全共通のセッティング

ページタイトル 設定しない
Description(説明文) 設定しない
タグ 設定しない

ホームページ

ページタイトル 設定しない
Description(説明文) サイトの説明。%%page%%
タグ サイト全体的なタグ

Front Page

ページタイトル 設定しない
Description(説明文) %%sitename%%のトップページ。サイトの説明。
タグ サイト全体的なタグ

アーカイブ

ページタイトル %%date%%に投稿した記事
Description(説明文) %%date%%に投稿した記事 %%page%% | %%sitename%%
タグ 設定しない

カテゴリー

ページタイトル カテゴリ:%%category%%
Description(説明文) カテゴリ:%%category%%に関する記事 %%page%% | %%sitename%%
タグ %%category%%

Posts

ページタイトル %%title%%:%%category%%
Description(説明文) 設定しない
タグ %%category%%,%%tag%%

ページ

ページタイトル
Description(説明文) %%title%% | %%sitename%%
タグ

検索ページ

ページタイトル 検索結果:%%searchphrase%% %%page%%
Description(説明文) %%searchphrase%% で検索された記事 %%page%% | %%sitename%%
タグ %%searchphrase%%

タグページ

ページタイトル タグ:%%tag%%
Description(説明文) タグ:%%tag%%に関する記事 %%page%% | %%sitename%%
タグ %%tag%%

他のページについては、何も設定していません。

さてこれで、仕様上は問題なくなったわけですが、内容上の問題が・・・
抜粋がない場合は、各記事の先頭120文字をdescriptionに出力するようにしましたが、
記事の先頭に前置きを書く癖があり、タイトルに見合ったキーワードが出てこない記事があるのです^^;
抜粋がない場合は、INDEXページと同じ出力にして、google先生にお任せしたほうがいいのかもしれません。
ただ、再び重複するメタデータが大量発生してしまい、当初の目的に反することになってしまいます。
何のために対策したんだか(笑)
まぁ、しばらく様子を見ることにします。

  1. コメントはまだありません。

  1. トラックバックはまだありません。


9 × 五 =