こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

googleカスタム検索の条件指定について

googleカスタム検索の条件指定について質問です。
今サイト内でgoogleのカスタム検索機能を使ってサイト内検索ができるようにしているのですが、例えば、2カラムデザインで、左にページ個々の内容、右に共通内容が入るとします。
そうすると、検索した時に共通内容部分を拾ってしまうと、結局絞って検索できないというか、ページが沢山検索されてしまいます。

これを回避できる設定はあるのでしょうか?
「そのワードを右に入れない」というのは却下でお願いします。

よろしくお願いします。

投稿日時 - 2012-02-01 12:13:06

QNo.7278874

すぐに回答ほしいです

質問者が選んだベストアンサー

たとえば、右側にナビゲーションや新着情報、左側のそのページの主たる記事があり、いずれにも「はやぶさ」という文字があるとき、検索結果に、ほとんどすべてのページが表示されてしまうということですね、
 その一番の原因は、検索エンジンが記事のどの部分が主文であるか理解できないからです。

 端的に言うと検索エンジンの責任ではなく、HTML自体に原因があります。

 HTML4.01では、そのために
【引用】____________ここから
DIV要素とSPAN要素は、id属性及び class属性と併用することで、文書に構造を付加するための一般機構を提供する。
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[The global structure of an HTML document (ja)( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/struct/global.html#h-7.5.4 )]より

と定められていました。言い換えれば、どの部分がheaderであるか、section(本文)であるか、footerであるか、aside(本文と関係ない記事)であるか、nav(ナビゲーション)であるかをclass名やidを使ってマークアップしなさいと・・・

 検索エンジンは、これを理解していますから、<div class="nav">や<div class="aside">と書かれていたら、重要視しないはずです。<div class="left">とか<div class="wrapper">じゃだめと言うこと。・・これらは、googleなどが強く言い続けた要素名ですから。

 HTML5では、googleなどが主張して、これら文書構造を示すclass名が独立して要素となりした。
★3.1. 新しい要素 ( http://standards.mitsue.co.jp/resources/w3c/TR/html5-diff/#new-elements )

 私は、HTML4.01strictで記述するときは基本的にHTML5の要素名やルール(sectionは見出し<h1>~<h6>をひとつだけ伴うべき文書集合とか)に従って記述しています。以来、検索すれば基本的に本文sectionないし、header内のテキストが上位に現れるようになりました。
 HTML5で作成するページは(古いIE用のハックが必要ですが・・)、HTML5の要素の使い方を守って記述しています。HTML5では<div>はほとんど使わなくなりました。

 また、検索される可能性のある単語は、当然あるsectionの見出しであるはずですし。

 検索結果が膨大になるのは致し方ないですし、対処の方法はないでしょう。
 なぜなら、その文書がその検索文字に対する結果の順位がそうだとと認識せざるを得ないのですから・・

 googleの検索オプションに、解決する手段はありません。検索キーワードにユーザーが最適な語句を入れない限り。

 ただ、すくなくとも検索結果に目的の単語を反映させ、著者の期待通りの順番で表示させる方法はあります。
 すなわち、HTML4.01の時代から言われ続けている『文書構造を示すマークアップと、文書構造とプレゼンテーションの分離』を守れば・・・。HTML5の策定作業を見ていると「ウェブを巨大なデータベースとしたい」googleなどが強く言ってきたことです。

少し長いですがあるサイトからの引用です。
【引用】____________ここから
 ご存知のように、それぞれのホームページにはテキストと言って多くの文章データがあります。人間はそのホームページを視覚的に捉えるため、読みやすくなっていることや、デザインが美しいことを重視します。
 しかし、コンピューターは違います。例えば検索エンジンは、多くのホームページを巡回する中で、そのホームページがどんなテーマに基づいたものであるかを文章などで判断します。つまり、本文に何が書いてあるのかでどんなキーワードに関連の深いサイトであるかを判断するわけです。人間は目で見て本文がどこにあるのかを見つけることが出来ますが、コンピューターにはその目印がありません。
 HTML5.0は、文章を構造化するためのタグが新設されています。つまり、「ここが本文ですよ」と宣言するタグがあるのです。これは世界共通で使用するため、検索エンジンは本文を示すタグで挟まれている部分が本文であると容易に判断することが出来ます。これは検索エンジンの検索精度を大幅に向上し、ホームページのデータベース化という大きな目的を推進することに役立ちます。
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[HTML5.0の文章の構造化 | HTML5とは?変わるWebと注目の新要素 HTML5.0の情報サイト( http://www.html5-guide.com/strong/text.html )]より

 期待された回答ではありませんが、HTML5の資料はとても参考になります。それを目安にHTMLを文書構造が機械にもすぐわかるように直していきましょう。サイト内検索に限らず、googleなどから直接検索してこられるとき(SEOとして)も極めて有効です。

具体的には、
>左にページ個々の内容、右に共通内容が入るとします。
でしたら、
<div class="header">
 <h1>このページのキーワード</h1>
 <div class="abstract">
  <h2>要約</h2>
  <p>・・・・・<strong>キーワード</strong>は・・・<strong>キーワード</strong>・・</p>
 </div>
 <div class="nav">
  <ul>
   <li>キーワードでない言葉</li>
   <li>キーワードでない言葉</li>
   <li>キーワードでない言葉</li>
  </ul>
 </div>
</div>
<div class="section">
 <h2>記事見出し</h2>
 <p>・・・・・キーワードは・・・キーワード・・</p>
 <div class="aside"><!-- 共通内容 -->
  <h2>新着情報</h2>
  <p>キーワードでない言葉・・・・</p>
 </div>
</div>
<div class="footer">
 <p id="site"><a href="">Home</a>|<<a href="">キーホワードでない言葉</a></p>
</div>

とかね。文書の順番も大事です。共通内容は下のほうに書かれているはずですね。よって
div.section{position:relative;}
div.section div.asid{position:absolute;top:0;right:0;}
#site{position:absolute;top:0;left:0;}

で、文書構造上は後なのに、asideのプレゼンテーションは右上になりサイトナビはページの最上部に表示される。

投稿日時 - 2012-02-02 20:14:43

お礼

ありがとうございます。
なるほど、class名をそう言うふうに考えた事はありませんでした。

header、footer、nav、contents-right、contents-left
というふうにやってました。

構造を見直さないといけないという事ですね。

投稿日時 - 2012-02-03 18:58:14

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問