WordPressのheader.phpをカスタマイズしてSEO friendlyなtitle要素を実現する

更新

ワードプレスのtitle要素は検索エンジンやソーシャルプラットホームに情報を発信する上でとても重要な部分です。キーワードが程よく盛り込まれ、ページの内容がわかりやすく伝わるような構成を目指すべきです。

プラグインを使わない理由

今回、title要素をSEO friendlyにするにあたって、all in one SEOなどプラグインは使いません。

なぜなら、プラグインは全てのテーマにきちんと対応しているわけではないからです。

たとえば、all in one SEOはTwenty Twelveでコンフリクトを起こしています(もっとも、こうすれば簡単に解決しますが…)。

その上、プラグインを使うとページの表示速度が遅くなってSEO上よくないのです。

このように、プラグインは使わないに越したことはありませんから、今回は使わないのです。

理想のtitle要素

ところで、ウェブシュフがキーワードを自然に含ませる上で最適だと考えるtitle要素の構成は以下の通りです

トップページ

ここは、「ブログ名」のみにしたいです。逆に何か特定のキーワードには染めたくありません。

カテゴリーページ

「カテゴリー名|ブログ名」が最適だと思います。というかこれ以外考えつかないです。

個別投稿ページ

「投稿タイトル|カテゴリー名|ブログ名」が理想です。しかし、字数の関係で、「投稿タイトル|ブログ名」とすることにしました。

固定ページ

「ページタイトル|ブログ名」でいいんじゃないでしょうか。

ページング2ページ目以降

これらのページは1ページ目と同じtitle要素にならないように、末尾にページ数をつけます。

トップページ…「ブログ名|○ページ」

カテゴリーページ…「カテゴリー名|○ページ|ブログ名」

header.phpをカスタマイズ

理想のtitle要素を実現するためには、まず、wp_titleがブログ名やページ数を自動的に出力しないようにします(Twentytwelve使用時のみ)。

次に、header.phpのを、以下のように書き換えます。

<?php if ( is_home() ) {
$title=get_bloginfo('name');
} 
else 
{
$title=wp_title( '', false, 'right' ).'|'.get_bloginfo('name');
}
if ( $paged >= 2 || $page >= 2)
{
if(is_home)
{
$title=$title.'-記事一覧-'.max( $paged, $page ).'ページ目|';
}
else
{
$title=str_replace('|','-'.max( $paged, $page ).'ページ目|', $title);
}
}
$title=str_replace(" ", "", $title);//私の環境では変な半角スペースがタイトルに入り込むので除去しました。
?>
<title><?php echo $title;?></title>

これで、ウェブシュフが理想とする構成でタイトル要素が出力されるようになります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です