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の設定の際に参考にさせて頂いたサイト
- 「Webデザインリリック」様 -
wordpressのメタデータ重複(description)の解決方法- 「アルファシス – alphasis.info -」様 -
HeadSpace2 SEO | HTMLヘッダ部編集 WordPressプラグイン
さて、記事の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先生にお任せしたほうがいいのかもしれません。
ただ、再び重複するメタデータが大量発生してしまい、当初の目的に反することになってしまいます。
何のために対策したんだか(笑)
まぁ、しばらく様子を見ることにします。
最近のコメント