「タイトルタグの重複」をjavascriptで回避する(ファンブログ、FC2)

このエントリーをはてなブックマークに追加
googleさんのウェブマスターツールを使っていると、「タイトルタグの重複」ってのが気になる訳です。とっても気になる訳です。無料ブログサービスを使っていると、そのサービスのオリジナルタグではどうにもこうにも出来ないって事もある訳です。
で、じゃあそれをjavascriptで書き換えてやったら効果はあるんだろうか、と。あるんじゃなかろうか、と。多分、効果がありましたので報告します。先に、ファンブログで使えるjavascriptのコードと、FC2で使えるjavascriptのコードを紹介します。そのあと簡単な結果報告をします。

タイトルタグの重複サムネ

ファンブログの「タイトルタグの重複」を回避する


ファンブログの場合は、カテゴリーのアーカイブページに、そのカテゴリー名を入れる事すらjavascriptを使わないと出来ません。その方法は前にファンブログのアーカイブページのタイトルにカテゴリ名をでjQueryというjavascriptのライブラリを用いて行う方法を紹介したんですが、これでは駄目でした。
何が駄目だったかと言うと、googleさんのウェブマスターツールの「タイトルタグの重複」が消えなかったんです。その直前の実験では、そのページのURLの一部をタイトルタグに含ませる、という事をして、その時は「タイトルタグの重複」が消えたんです。
で、なんでだろうな~と。jQueryを使わずに書き換えたらどうだろうな、と。そしたら「タイトルタグの重複」は消えました。おそらく、jQueryを読み込んで使う、と言う様な遅い処理をしていると駄目なのかな、と。さっさと書き換えないと効果がないのかな、と。一応そんな感じだと思ってます。(そうじゃないかもしれませんがw)

そんな訳で、現在使っているjavascriptのコードを紹介します。ただし、残念ながらテンプレートによってはそのままではカテゴリー名がちゃんと表示されない場合があるかと思います。その際はコメントいただけたら対応したいと思いますので、よろしくお願いします。
<script type="text/javascript">
var pageurl = document.URL;
var pageurll = pageurl.match(/\w+/g);

if (pageurll[4].indexOf("category") != -1) {
var categorytext = pageurll[4];
var esid = 0;
var eid = 0;

var entrieso = document.getElementById("entries");
var entriesod = entrieso.getElementsByTagName("div");
for (var i = 0, len = entriesod.length; i < len; i++) {
if (entriesod[i].className == "entry") {
esid = i;
break;
}
}
if (esid < entriesod.length) {
var entryod = entriesod[esid].getElementsByTagName("div");
for (var i = 0, len = entryod.length; i < len; i++) {
if (entryod[i].className == "entryDate") {
eid = i;
break;
}
}
if (eid < entryod.length) {
var eao = entryod[eid].getElementsByTagName("a");
for (var i = 0, len = eao.length; i < len; i++) {
if (eao[i].href.indexOf("category") != -1) {
categorytext = eao[i].innerHTML;
break;
}
}
}
}

if (pageurll.length > 5) {
document.title = categorytext + " - Page " + pageurll[5] + " - " + document.title;
} else {
document.title = categorytext + " - " + document.title;
}
}
else if (pageurll[4].indexOf("monthly") != -1) {
var tukihi = pageurll[5];
var tukihit = tukihi.substring(0, 4) + "年" + tukihi.substring(4, 6) + "月";
if (pageurll.length > 6) {
document.title = tukihit + " - Page " + pageurll[6] + " - " + document.title;
} else {
document.title = tukihit + " - " + document.title;
}
}
else if (pageurll[4].indexOf("daily") != -1) {
var tukihi = pageurll[5];
var tukihit = tukihi.substring(0, 4) + "年" + tukihi.substring(4, 6) + "月" + pageurll[6] + "日";
if (pageurll.length > 7) {
document.title = tukihit + " - Page " + pageurll[7] + " - " + document.title;
} else {
document.title = tukihit + " - " + document.title;
}
}
</script>

このコードをアーカイブの</body>の直前などに貼り付ければ使えると思います。このコードはダブルクリックで選択出来ます。

ちなみに、このコードだけではなく、titleタグはちゃんと記入して下さい。
<title>{$BlogName$}</title>
の様な記述がheadタグ内に書いてない場合は書いておいて下さい。これがないと、ブログ名がタイトルに表示されないと思いますので。

また、面倒で申し訳ないのですが、メインのページのタイトルタグの重複を回避するためのコードは、ファンブログのアーカイブページのタイトルにカテゴリ名をで紹介しているので、そちらも参照して下さい。今回紹介したコードと、両方お使い下さい。

FC2の「タイトルタグの重複」を回避する


FC2の場合、ページ数をタイトルタグに含ませる事が出来ないと思います。これをjavascriptで書き込みます。その前に、FC2のタイトルタグを紹介しておきます。スクリプトの前に、FC2のタグで解決出来る部分は解決しておく必要があります。自分は以下の様なコードを使ってます。

<title><!--index_area-->(キャッチフレーズとか) | <!--/index_area--><!--titlelist_area-->全記事タイトル一覧<!--/titlelist_area--><!--not_index_area--><%sub_title> | <!--/not_index_area--><%blog_name></title>

その他に、 「ありのごとくあつまりて」さんで紹介されているコードなども参考になると思います。
Google タイトルタグの重複対策 【 ありのごとくあつまりて 】

好きな方を使えば良いと思います。
そして、次にjavascriptのコードを紹介します。
[※追記]タグページ、全記事タイトル一覧ページ、サイト内検索結果ページにも対応しました。

<script type="text/javascript">
var pageurl = document.URL;
var pageurll = pageurl.match(/(\w(\%*))+/g);
if (pageurll[5].indexOf("page") != -1) {
document.title = document.title + " - Page " + pageurll[6];
}
else if (pageurll[5].indexOf("category") != -1) {
document.title = document.title + " - Page " + pageurll[6];
}
else if (pageurll[6].indexOf("date") != -1 && pageurll.length > 9 ) {
document.title = document.title + " - Page " + pageurll[8];
}
else if (pageurll[5].indexOf("tag") != -1 && pageurll.length > 8 ){
document.title = document.title + " - Page " + pageurll[8];
}
else if (pageurll[5].indexOf("q") != -1 && pageurll.length > 8 ){
document.title = document.title + " - Page " + pageurll[8];
}
else if (pageurll[5].indexOf("all") != -1 && pageurll.length > 6 ){
document.title = document.title + " - Page " + pageurll[7];
}
</script>

このコードを</body>の直前などに貼り付ければ使えるかな、と思います。このコードはダブルクリックで選択出来ます。

見ればそれとなく分かるかと思いますが、これでメインページの0ページ目以降、カテゴリーページの0ページ目以降、月別ページの0ページ目以降には、そのページ番号が、「 - Page 2」みたいな感じでタイトルタグに追加される様になります。
実は、残念ながらFC2の方はまだ実験中で、ちゃんと「タイトルタグの重複」が消えるまでは確認できていないのですが、ファンブログの方では確認できたので、多分大丈夫だと思います。確認出来たら追記します。

追記:FC2に関してですが、今確認中なんですが、どうやら回避出来ないっぽい気がします。。と言うか、FC2で使ってるブログがへっぽい事この上ないので、無事回避出来た方が居たら「回避出来ました。」ってコメント下さるとかなり助かります。
今、<body>の直後とかに移動しているんですが、駄目かもですね。。なぜだ。。。

ちゃんとタイトルタグの重複解除出来ました! FC2のやつもちゃんと効果ありました。まあ、検索順位が上がる様な効果があるかどうかは不明ですのでご了承ください。

[おまけ]全記事タイトル一覧ページのタグ紹介


FC2のスクリプトがタグページと全記事タイトル一覧ページに対応していないとコメントいただきまして、確かにその通りでした^^;
いや、自分はFC2は全然使ってないので、タグページが2ページ目まで必要なかったり、全記事一覧はリンクを張ってなかったとかでエラーは出ていなかったのですw

しかも、全記事タイトル一覧ページについての記述がテンプレートになかった為、全記事タイトル一覧ページが、自分のブログデザインとは全く関係ない、FC2っぽい表示になっていました。これ、皆さんがそうなのかと思っていたんですけど、
<!--titlelist_area-->

<!--/titlelist_area-->
のタグをテンプレート中にちゃんと書いて、カスタマイズしておけば自分のブログにタイトル一覧が表示される様になるんですね。

そして、こうしないと自分のテンプレートとは全く関係ないページで記事一覧が表示されてしまう為、タイトルタグの変更などが効かない! という事になってしまいます。
なので、もし自分のテンプレートに<!--titlelist_area-->のタグが無い場合は、それをちゃんと使ってカスタマイズしましょう。
先ほど自分もそれを追加したので、その追加したコードを一応紹介しておきます。あんまり色々考えてないので、しっかりしたやつではないですw 自分でカスタマイズするか、検索して他の方のコードなども参考にして下さい。
<!--titlelist_area-->
<h2>全記事タイトル一覧</h2>
<ul>
<!--titlelist-->
<li>
<a href="<%titlelist_url>"><%titlelist_title></a><br>&emsp; (<%titlelist_year>-<%titlelist_month>-<%titlelist_day>, <a href="<%titlelist_category_url>"><%titlelist_category></a>)
</li>
<!--/titlelist-->
</ul>
<!--/titlelist_area-->

実験結果報告


一応実験結果を画像で報告しときます。
元々はこんな感じでした。
タイトルタグの重複過去キャプチャ1

めっちゃ小さい画像ですが、とりあえずファンブログのカテゴリーのアーカイブページが全て同じ名前で、30個重複してた、ってのが重要です。それだけがそれとなく伝われば良しとします。
そして、先日チェックしたらこうなっていました。
タイトルタグの重複過去キャプチャ2

これも小さくて、分かりにくいですが、とにかくカテゴリーのアーカイブページの重複はほとんど回避できています。2つ程残っていますが、この「あの丘を越えたら」ってのは、前のこのブログのタイトルです。そのうちちゃんと直るんじゃないかな、と思います。
上で7つ程「archive」とか書いてあるURLのページのタイトルタグが重複していますが、これは前はあった記事のページなんです。それを消しまして、それで残ってしまっている、という訳です。今回の実験には関係ないので、一応下の2つだけ残ってしまっていますが、他の重複は回避できている様だな、と。javascriptの書き換えも効果がありそうだな、と。そういう訳でございます。

あと、googleでの検索ページでの表示についてですが、前回はgoogleさんによって見事に書き換えられていたページタイトルが、一応現在は意図した表示になってます。
検索エンジンキャプチャ

まだ、これもgoogleさんによる書き換えとかなのかもしれませんが、一応意図した表示になっているので良いのかな、と。

最後に


「javascriptによるtitleタグの書き換えでも、ウェブマスターツールのタイトルタグの重複を回避できた」という報告でした。googleさんはjavascriptも結構読めるって話ですが、やはりそれなりにjavascriptも読んでいそうですね。
そんな訳で、タイトルタグの重複が気になる人はjavascriptで書き換えましょう。検索順位に影響があるのか、どうかは不明ですのでご了承ください。

このブログの更新情報は TwitterRSS でチェック出来ます。是非、フォロー、またはRSSの購読をよろしくお願いします。
「RSSの購読って何?」って人は、 ブラウザ毎のRSS購読方法の簡単なまとめ を読んでみて下さい。

このエントリーをはてなブックマークに追加
人気記事

PAGE TOP