当ブログは、実は一時期アクセスがMax時の1/4くらいになってしまいました。検索エンジンからの流入が減っていました。
何かがおかしいと、色々調べていたら、なんと、タイトルが重複しているページが多いことに気が付きました。
これはいかんということで、対策をした結果、アクセスが2/3くらいまで戻ってきました。今回の対策が直接効いたかどうかは解かりませんが、後学のためにメモ。
Googleのウェブマスターツールを利用すると、重複タイトルの有無を調べることができます。
当ブログの場合、すべてのページが2ページ以上重複していて、3ページ以上のページも結構ありました。「携帯用ページとの重複」と、「分割カテゴリーページでの重複」が発生していました。
特に、MovabletypeのPageButeという、カテゴリページ分割プラグインを入れてから、アクセスが減ってきた感があるのです。
モバイルページは、/m/フォルダ以下にあるのに対して、分割カテゴリーページは同じフォルダ階層上で、タイトルが重複してしまいます。それはまずいだろうということに、今さらながら気が付きました。SEO的に重大な問題です。
携帯用ページ対策
携帯用ページは、かなり以前から生成しているので、今回の直接の原因ではないとは思いますが、ついでに対策しておきました。
携帯用ページのタイトルの最後に、「-モバイル版-」という表記をつけて、重複を回避しました。
分割カテゴリーページ対策
Movabletypeで、ひとつのカテゴリにページをたくさん登録してしまうと、カテゴリーページが巨大になってしまいますので、当ブログでは「Pagebute」プラグインを利用して、カテゴリーページを分割しています。
ところが、PageButeで分割されたページは、すべて同じタイトルになってしまうのです。
調べてみたら、回避方法として、ページ番号をつける方法がこちらや、こちらで提案されていましたが、数字1-2文字だけの違いなので、ちょっと不安です。
各カテゴリの先頭記事タイトルを利用する
分割された各ページごとのオリジナルな情報な何か?と考えたところ、ひとつだけ見つかりました。
それは、各ページの記事そのものです。
2ページ目以降のカテゴリーページに、記事リストの一番上の記事タイトルを、titleタグの先頭に入れることにしました。
ただし、そのまま入れてしまうと、タイトル的に不自然です。
カテゴリー名が「赤ちゃん子育て」で、先頭の記事タイトルが「マクラーレン・クエスト」だったら、タイトル名を、
「マクラーレン・クエスト」などの記事 赤ちゃん子育て
のようにできれば、重複は完全に避けられます。
Pagebuteのプラグイン改造
さて、この機能を実装してみましょう。
これを行うために、mtタグを利用して色々試したのですが、上手く行かず。最終的には、Pagebuteのプラグイン内を改造することにしました。
PageBute.jp内の真ん中らへん。
1 2 3 4 5 6 |
# Page Count $output =~ s/\Q$garbage{PAGECOUNT}\E/$page_count/g; $output =~ s/\Q$garbage{PAGEMAXCOUNT}\E/$lists->{last} || $lists->{max_page}/ge; |
という部分を探したら、その後に、
1 2 3 4 5 6 7 8 9 10 11 12 |
my $zz1 = $entries[($page_count-1)*$split_count]; $zz1 =~ s/[\r\n]//g; $zz1 =~ /<div class="pagebutetitle">.*?<a.*?>(.+?)<\/a>.*?<\/div>/; my $zz2 = $1; if($page_count > 1){ $output =~ s/\Q$garbage{FIRSTTITLE}\E/「$zz2」などの記事 /g; }else{ $output =~ s/\Q$garbage{FIRSTTITLE}\E//g; } |
を追加します。
そして、
1 2 3 4 5 6 7 8 9 10 11 12 13 |
function => { PageNext => \&_page_, PageBefore => \&_page_, PageFirst => \&_page_, PageLast => \&_page_, PageCount => \&_page_, PageMaxCount => \&_page_, PageSeparator => \&_separator, PageLists => \&_page_lists, }, |
の部分の最後に、「FirstTitle => \&_page_,」
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
function => { PageNext => \&_page_, PageBefore => \&_page_, PageFirst => \&_page_, PageLast => \&_page_, PageCount => \&_page_, PageMaxCount => \&_page_, PageSeparator => \&_separator, PageLists => \&_page_lists, FirstTitle => \&_page_, }, |
を追加します。
次に、テンプレートも書き換えます。
カテゴリーページのテンプレートの中の、記事リストの部分の記事タイトル部分を、<div class=”pagebutetitle”></div>ではさみます。
1 2 3 4 5 6 |
<div class="pagebutetitle"> <a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a> </div> |
スタイルシートを開いて、class=”pagebutetitle” の設定をします。デザイン崩れを防止するため、ブロック要素をinlineにします。
1 2 3 4 5 6 |
.pagebutetitle { display:inline; } |
これで、<$MTFirstTitle$>タグが利用できるようになります。
<$MTFirstTitle$>タグは、分割2ページ以降のページで、先頭の記事タイトルを表示するプラグインです。
<$MTFirstTitle$>タグを、カテゴリーページの<title></title>内にいれてください。
1 2 3 4 |
<title><$MTFirstTitle$><$MTArchiveTitle$></title> |
当ブログのカテゴリーページを見てもらえば、様子はわかると思います。
ぜひお試しを!
※META Descriptionについても同様の方法で対策できます。
コメント