※2012年12月1日より新ブログに移行しました。
>>>現行ブログ free to write WHATEVER I like
⇒2019年にさらにWordpressに移行しました。
>>>現行HP シャイン経営研究所(中小企業診断士・谷藤友彦)
⇒2021年からInstagramを開始。ほぼ同じ内容を新ブログに掲載しています。
>>>Instagram @tomohikoyato
新ブログ 谷藤友彦ー本と飯と中小企業診断士
トップ>エンタメ、スポーツ、旅行など>titleタグの重複をjavascriptで回避する対策(livedoorブログ編)
前の記事:中小企業白書(2012年)に対する疑問―中小企業の強み「短納期・小ロット」は海外展開では弱み
次の記事:部下へのフィードバック法「SBI(Situation-Behavior-Impact)法」ついての補足
前の記事:中小企業白書(2012年)に対する疑問―中小企業の強み「短納期・小ロット」は海外展開では弱み
次の記事:部下へのフィードバック法「SBI(Situation-Behavior-Impact)法」ついての補足
June 22, 2012
titleタグの重複をjavascriptで回避する対策(livedoorブログ編)
拍手してくれたら嬉しいな⇒
ブログのアクセス数が4月下旬に激減したので、googleのウェブマスターツールをのぞいてみたら、案の定googleでの表示回数がひどいことになっていた。3月から4月中旬までは1日10,000〜12,000回だったのに、4月25日には5,000回と約半減している。その後、5月に急激に盛り返したものの、これは5月10日にデビュー20周年を迎えたミスチル関連の記事へのアクセスが高かったためであり、一時的な要因に過ぎない。6月に入っても、1日5,000回前後の表示回数は変わらず。

何か悪いことをしたかなぁ?と思って、「最適化」⇒「HTMLの改善」を開けてみると、すごい数のHTMLエラーが検出されていた。おそらく、これが原因でgoogleからペナルティーを食らったのかもしれない(4月25日以前にはこれらのエラーが検出されていなかったのかどうかは不明)。

livedoorブログの場合、トップページやカテゴリーアーカイブページに表示する記事の件数を設定すると、その数を超える古い記事は、「http://(ブログのURL)?p=2」、「http://(ブログのURL)/archives/cat_XXXXXXX?p=2」というように、URLの末尾にページ数のパラメータがついたページへと回される。ところが、これらのページのtitleタグは、livedoorのテンプレートをそのまま使用する限り、中身が全く同じになってしまうので、googleに「タイトルタグが重複している」と判断されてしまうわけだ。
私のブログでは、トップページに掲載する記事数を3件に設定している。記事数は1,000本を超えているので、パラメータつきのページが300以上もある計算になる。この300ページ超のtitleタグが全く一緒であるから、googleには大量のミラーサイトを吐き出しているとでも勘違いされているんだろうな(なお、上の画像でエラーが400を超えているのは、カテゴリーアーカイブページのtitleタグの重複も含まれるため)。
ちなみに、「重複するメタデータ(description)」のエラーも同じ理屈で、トップページのmetaタグに<meta name="description" content="<$BlogDescription$>">という記述が入っていると、パラメータつきのページのdescriptionも全て同じになってしまう。最近では、descriptionの内容はSEO上ほとんど効果がないとされているから、このmetaタグは削除して構わないだろう。
問題のtitleタグの重複だが、パラメータの数字をうまく使って、「ブログタイトル名(○ページ目)」みたいにすることができれば、titleタグの重複を避けることが可能なはずだ。だが、Web上で質問してみたところ、「そんなのできない」とか、「できたとしても重複は避けられない(冷静に考えればわかるだろ?)」などと言われる始末。バカ野郎!FC2ブログでは解決できた事例があるのに(「「タイトルタグの重複」をjavascriptで回避する(ファンブログ、FC2)」を参照)、何でlivedoorブログでできないんだ??と半ば怒り心頭で、FC2ブログのソースを見よう見真似してみたら、あっさり解決できた(そら見たことか)。⇒《2012年7月4日追記》ページ下部に修正コードあり
やり方は非常に簡単。テンプレートカスタマイズ画面で、トップページの</body>の直前に、以下のjavascriptを挿入する。
なお、カテゴリーアーカイブページのテンプレートにも、同様のスクリプトを追加すれば(太字の数字は変える必要がある)、titleタグの重複を回避できる。私の場合は、「カテゴリー名|ブログ名(○ページ目)」と表示されるようになっている。
数日後には、googleの検索結果にも「(○ページ目)」と表示されるようになった。「5ページ目」で検索しているのに、肝心の5ページ目が出てこないのが問題だが・・・。

カスタマイズから約1週間後、ウェブマスターツールを見てみると、エラー数が若干減った。全ページがクロールされるまでに時間がかかるから、エラーが完全に消えるのはまだ先になりそうだけれども、ひとまずこれで様子を見るとするか。



何か悪いことをしたかなぁ?と思って、「最適化」⇒「HTMLの改善」を開けてみると、すごい数のHTMLエラーが検出されていた。おそらく、これが原因でgoogleからペナルティーを食らったのかもしれない(4月25日以前にはこれらのエラーが検出されていなかったのかどうかは不明)。

livedoorブログの場合、トップページやカテゴリーアーカイブページに表示する記事の件数を設定すると、その数を超える古い記事は、「http://(ブログのURL)?p=2」、「http://(ブログのURL)/archives/cat_XXXXXXX?p=2」というように、URLの末尾にページ数のパラメータがついたページへと回される。ところが、これらのページのtitleタグは、livedoorのテンプレートをそのまま使用する限り、中身が全く同じになってしまうので、googleに「タイトルタグが重複している」と判断されてしまうわけだ。
私のブログでは、トップページに掲載する記事数を3件に設定している。記事数は1,000本を超えているので、パラメータつきのページが300以上もある計算になる。この300ページ超のtitleタグが全く一緒であるから、googleには大量のミラーサイトを吐き出しているとでも勘違いされているんだろうな(なお、上の画像でエラーが400を超えているのは、カテゴリーアーカイブページのtitleタグの重複も含まれるため)。
ちなみに、「重複するメタデータ(description)」のエラーも同じ理屈で、トップページのmetaタグに<meta name="description" content="<$BlogDescription$>">という記述が入っていると、パラメータつきのページのdescriptionも全て同じになってしまう。最近では、descriptionの内容はSEO上ほとんど効果がないとされているから、このmetaタグは削除して構わないだろう。
問題のtitleタグの重複だが、パラメータの数字をうまく使って、「ブログタイトル名(○ページ目)」みたいにすることができれば、titleタグの重複を避けることが可能なはずだ。だが、Web上で質問してみたところ、「そんなのできない」とか、「できたとしても重複は避けられない(冷静に考えればわかるだろ?)」などと言われる始末。バカ野郎!FC2ブログでは解決できた事例があるのに(「「タイトルタグの重複」をjavascriptで回避する(ファンブログ、FC2)」を参照)、何でlivedoorブログでできないんだ??と半ば怒り心頭で、FC2ブログのソースを見よう見真似してみたら、あっさり解決できた(そら見たことか)。⇒《2012年7月4日追記》ページ下部に修正コードあり
やり方は非常に簡単。テンプレートカスタマイズ画面で、トップページの</body>の直前に、以下のjavascriptを挿入する。
<script type="text/javascript">太字の数字は、ブログのURLによって変わるので、うまく表示されない場合は数字を微調整してください(上記はあくまでも私のブログの場合)。トップページからこの記事をご覧になっている方は、ページ右上部の「次の3件」というリンクをクリックして2ページ目に移動すると、また個別記事ページでこの記事をご覧になっている方は、一度トップページに戻っていただいて同様の操作をすると、titleタグが「マネジメント・フロンティア〜終わりなき旅〜(2ページ目)」となっているのがお解りになると思う。
var pageurl = document.URL;
var pageurll = pageurl.match(/\w+/g);
if (pageurll.length > 6) {
document.title = document.title + "(" + pageurll[6] + "ページ目)";
}
</script>
なお、カテゴリーアーカイブページのテンプレートにも、同様のスクリプトを追加すれば(太字の数字は変える必要がある)、titleタグの重複を回避できる。私の場合は、「カテゴリー名|ブログ名(○ページ目)」と表示されるようになっている。
数日後には、googleの検索結果にも「(○ページ目)」と表示されるようになった。「5ページ目」で検索しているのに、肝心の5ページ目が出てこないのが問題だが・・・。

カスタマイズから約1週間後、ウェブマスターツールを見てみると、エラー数が若干減った。全ページがクロールされるまでに時間がかかるから、エラーが完全に消えるのはまだ先になりそうだけれども、ひとまずこれで様子を見るとするか。

《2012年7月4日追記》
この方法だと、実はタグのアーカイブページにおける問題が回避できないことが判明した。以下の通り、タグの文字列コードの特定部分が切り取られ、同じタグのページは全て「(E8ページ目)」みたいになってしまう。
この方法だと、実はタグのアーカイブページにおける問題が回避できないことが判明した。以下の通り、タグの文字列コードの特定部分が切り取られ、同じタグのページは全て「(E8ページ目)」みたいになってしまう。

そこで、タグのアーカイブページにも対応できるjavascriptを新しく書いた。URLにパラメータが設定されていたら、URL末尾のページ番号を取得して、titleタグを「ページ名+(○ページ目)」に書き換える、という処理。このスクリプトなら、トップページ、カテゴリーアーカイブページ、月別アーカイブページ共通で使える。
<script type="text/javascript">
var pageurl = document.URL;
var pageurll = pageurl.match(/\w+/g);
var pageno = pageurll.length - 1 ;
if (pageurl.indexOf("?p") != -1 ) {
document.title = document.title + "(" + pageurll[pageno] + "ページ目)";
}
</script>
トラックバックURL
このエントリーのトラックバックURL:
コメント
ただ、ページ下部の改良型の方は、末尾の</script>が抜け落ちているせいで、そのままでは機能しなくなっているようですが…
Posted by: |
August 22, 2012 09:14
また、上記ご指摘ありがとうございます。
これは完全に誤記ですので、早速修正しました。
Posted by: 管理人 | September 26, 2012 21:57
重複で悩んでいる人は多いと思いますので、もっとほかの人に知って欲しいですね♪
ライブドアのは修正しましたが…
ワードプレスでも使えるのでしょうか?
タイトルタグの、月間アーカイブとかが重複されます…
どこを探しても難しい書き方で書いていて、「わかっている人」にしかわからないような書き方でした。
大変参考になりましたので、もしこれを見ている人がいたら是非ここを活用してください!!
Posted by: 重複で検索激さがり |
March 07, 2013 12:34
お役に立てて嬉しいです。
ワードプレスは使ったことがないため、本記事のやり方で修正できるかどうかは未検証です。
申し訳ありません・・・。
Posted by: 管理人 | March 09, 2013 14:10