ブログ - d3blog と google ウェブマスターツール
検索エンジンのサイト登録状況を確認するために google のウェブマスターツールを使っている人は多いと思う。
d3blog のコンテンツを google がクロールすると
診断 - HTMLの候補
に「タイトルタグの重複」が複数検出されてしまう。
これは d3blog が、カテゴリ別一覧や年月別一覧からの個別エントリーへのURLにいくつかパラメタを追加してしまうためだ。
d3blog のコンテンツを google がクロールすると
診断 - HTMLの候補
に「タイトルタグの重複」が複数検出されてしまう。
これは d3blog が、カテゴリ別一覧や年月別一覧からの個別エントリーへのURLにいくつかパラメタを追加してしまうためだ。
たとえば、このサイトで最もアクセス数の多いページ
http://xcl.masa-lab.net/modules/d3blog/details.php?bid=58 (Smarty のテンプレートで配列を定義する)
のカテゴリは 「開発用メモ » その他」(cid=21) であり、このカテゴリのエントリー一覧画面から上記のエントリーを開くと
http://xcl.masa-lab.net/modules/d3blog/details.php?bid=58&cid=21
という具合に、後ろにcid=21 が追加されてしまう。
google さまは、「別のURLなのに同じタイトルが付いている!」といって警告しているのだ。
気にしなければいいのだろうが何となく気になってしまうので、これを回避する方法を考えてみた
(1) google ウェブマスターツールでパラメタを無視させる
google さまが details.php についているパラメタの cidやdateを無視してくれれば問題がない
■やり方
google ウェブマスターツールを開く。
「サイト設定」-「設定」画面の「パラメータ処理」タブを開く。
「パラメータを追加」を押して「パラメータ」に"cid"、「処理」を"無視する"に設定する。
同様に date, uid も追加する
■問題点
google さまのこの設定は d3blog だけでなく、他のモジュールのURLにも効いてしまうので、予期しない副作用が起こる可能性がある。
特に uid は問題になるかもしれない...
googleさまがこの機能をもう少し使えるものにしてくれると良いのだが...
(2) 余計なパラメタをつけないようにする
本来であれば、一つのエントリに複数のURLでアクセスできるのは好ましくないので、パラメタを取ってしまおう!という考え方だ。
とはいっても「余計なもの」をd3blog が勝手につけている訳ではないので、これをやると若干問題が発生するのだが...
■やり方
altsys などを使ってテンプレート d3blog_inc_entry.html を編集する。
の
<{if $extra_uri}>&<{$extra_uri}><{/if}>
部分を削除する。
■問題点
年月別の一覧から個別のエントリーを開いた際に、blogカレンダーブロックの表示が、今月に戻ってしまう。(blogカレンダーブロックを使っている場合)
(他にも問題はあるかもしれませんが、とりあえずこれしか気がつきませんでした...)
(3) タイトルがユニークになるように、タイトルに文字を追加してしまう
要はタイトルが重複しているために怒られるので、タイトルをユニークにしてしまおうというもの。
だが、これはソース変更が必要だ。
見る限りでは1〜2行で簡単にという訳にはいかなそう...
■やり方...ではなく考え方
基本的には xoops_trust_path/modules/d3blog/main/details.php 内の
'xoops_pagetitle' をアサインしている部分 (line95)
に cid や date パラメタの値を追加するようにすればOK
■問題点
そもそも title に値を追加してしまうと、画面にそのように表示されてしまう。
ロボットには良いが、人間が見たときに不細工になりそう...
という訳で、なかなか決定打はないなぁ。
とりあえず (2) かなぁ...
http://xcl.masa-lab.net/modules/d3blog/details.php?bid=58 (Smarty のテンプレートで配列を定義する)
のカテゴリは 「開発用メモ » その他」(cid=21) であり、このカテゴリのエントリー一覧画面から上記のエントリーを開くと
http://xcl.masa-lab.net/modules/d3blog/details.php?bid=58&cid=21
という具合に、後ろにcid=21 が追加されてしまう。
google さまは、「別のURLなのに同じタイトルが付いている!」といって警告しているのだ。
気にしなければいいのだろうが何となく気になってしまうので、これを回避する方法を考えてみた
(1) google ウェブマスターツールでパラメタを無視させる
google さまが details.php についているパラメタの cidやdateを無視してくれれば問題がない
■やり方
google ウェブマスターツールを開く。
「サイト設定」-「設定」画面の「パラメータ処理」タブを開く。
「パラメータを追加」を押して「パラメータ」に"cid"、「処理」を"無視する"に設定する。
同様に date, uid も追加する
■問題点
google さまのこの設定は d3blog だけでなく、他のモジュールのURLにも効いてしまうので、予期しない副作用が起こる可能性がある。
特に uid は問題になるかもしれない...
googleさまがこの機能をもう少し使えるものにしてくれると良いのだが...
(2) 余計なパラメタをつけないようにする
本来であれば、一つのエントリに複数のURLでアクセスできるのは好ましくないので、パラメタを取ってしまおう!という考え方だ。
とはいっても「余計なもの」をd3blog が勝手につけている訳ではないので、これをやると若干問題が発生するのだが...
■やり方
altsys などを使ってテンプレート d3blog_inc_entry.html を編集する。
-<h3 class="d3blogEntryTitle"><{if $isIndex}>
<a href="<{$mod_url}>/details.php?bid=<{$entry.bid}>
<{if $extra_uri}>&amp;<{$extra_uri}>...
の
<{if $extra_uri}>&<{$extra_uri}><{/if}>
部分を削除する。
■問題点
年月別の一覧から個別のエントリーを開いた際に、blogカレンダーブロックの表示が、今月に戻ってしまう。(blogカレンダーブロックを使っている場合)
(他にも問題はあるかもしれませんが、とりあえずこれしか気がつきませんでした...)
(3) タイトルがユニークになるように、タイトルに文字を追加してしまう
要はタイトルが重複しているために怒られるので、タイトルをユニークにしてしまおうというもの。
だが、これはソース変更が必要だ。
見る限りでは1〜2行で簡単にという訳にはいかなそう...
■やり方...ではなく考え方
基本的には xoops_trust_path/modules/d3blog/main/details.php 内の
'xoops_pagetitle' をアサインしている部分 (line95)
に cid や date パラメタの値を追加するようにすればOK
■問題点
そもそも title に値を追加してしまうと、画面にそのように表示されてしまう。
ロボットには良いが、人間が見たときに不細工になりそう...
という訳で、なかなか決定打はないなぁ。
とりあえず (2) かなぁ...