ぼやき

0

昨日、Google ウェブマスターツールでタイトルタグの重複が大量にあった件の対処をした。

重複の原因は大きく分けると2つのパターン。

  1. 「?view=com‎」「?view=wrt‎」など URL のあとにパラメータがつく
  2. これは、携帯表示プラグイン MobileEye+ のコメントページ、コメント書き込みページのURL。実験的に入れているツールがモバイルページもパソコンのページと認識させているため起こっているみたい。「link rel=”canonical”」を入れてとりあえずの対策をしたけれど、根本的な対策が必要っぽい。要相談。

  3. 月別アーカイブやカテゴリ、タグページなどで、記事数が多く複数のページにわたっているとき、同じ <title> タグがついてしまっている
  4. カテゴリとタグで同じ文字列があるとき、<title> タグが重複

今回は 2) と 3) に対して対策を行った。

まずは、<title> 要素をカスタマイズできるプラグインがないか調査。All in One SEO Pack というプラグインが、<title> タグを気軽に変更できるもので利用したみました。しかし、問題発生。<title> タグを強制的に書き換えるため、携帯サイトの <title> タグも書き換わり、文字コードの不一致(本体はUTF8、携帯サイトはShift-JIS)から文字化けが起こってしまった。なので、テンプレート単位での対応に切り替える。

下記サイトを参考にテンプレートの <title> タグ内の出力を改変。
→東京税理士ブログ:WordPressで全てのページを違うタイトルにする

具体的には以下の変更を行った。

  • タグページはタグ語句の後に [tag] と追加(カテゴリとの差別化)
  • 複数にわたるページには「Part ○」と追加
  • ついでに検索結果のページも「[検索文字列]の検索結果」に変更
  • 月別ページも「2008 5月」から「2008年5月」と「年」が入るよう変更(これは好み)

複数ページにわたるときは、「$paged」という関数が2ページ目以降のページ番号を出力しているらしい。
また、各ページで条件分岐をして対処。
→WordPress.日本語:条件分岐タグ

書いたコードは以下の通り。ちなみにアーカイブページには「/ぼやき」と入るようになっているので、参考にされる場合は注意してください。
<title><?php
if(is_home()) {bloginfo('name'); if($paged){echo ' Part '.$paged; }}
if(is_month()){echo get_the_time('Y年n月');} else{wp_title('');}
if(is_search()){echo '['.$s.'] の検索結果'; if($paged){echo ' Part '.$paged;} echo ':'; bloginfo('name');}
if(wp_title('', false)){if(is_tag()){echo ' [tag]';} if($paged){ echo ' Part '.$paged;} echo ':'; bloginfo('name'); echo '/ぼやき';}
?></title>

一応めでたく対処できたとおもうけど、おかしなところがあったら教えてください。

関連記事