サーチエンジンへの通知

Webのプロモーションとして、各種サーチエンジンへの登録は常識でしょう。登録を代行してくれる、便利なツールもあります。例えば、国内20箇所以上のサーチエンジンに一発で登録できる 一発太郎 など。

しかし、登録依頼するだけが全てではありません。自動巡回ロボットを使うサーチエンジンに対しては、ロボットへ与える情報を何らかの形でサーバに置いておく必要があります。
そこでここでは、ロボットへ与える情報をどのように書いておくかについて検討します。

もしあなたがWebサイト管理者であれば、robots.txtを置いてロボットに指示を与えることができます。
HTML 4.0 の付録にあるB.4 Notes on helping search engines index your Web siteを参照してください。内田明さんによるこの文章の邦訳もあります。

Webサイト管理者でなくても、HTML文書の頭に情報を書いておけば、ロボットはこれを利用することができます。全文を検索対象とするロボットも少なくないのですが、一方で頭のみを見て回るロボットというものも存在しますし、基本的にはどのロボットも頭を検出します。(ここで頭というのは、<HEAD></HEAD>内にある情報、つまりHEAD要素のことです)
TITLE要素を明記しておくことはもちろんとして、ロボットの検索を助けるのにMETA要素が活躍します。HTML 4.0 の7.4.4 Meta dataを参照しますと、次の用例が掲げられています。ロボットはMETAにある情報を採り入れて、検索キイワードを検出することができるのです。

   <HEAD profile="http://www.acme.com/profiles/core">
    <TITLE>How to complete Memorandum cover sheets</TITLE>
    <META name="author" content="John Doe">
    <META name="copyright" content="&copy; 1997 Acme Corp.">
    <META name="keywords" content="corporate,guidelines,cataloging">
    <META name="date" content="1994-11-06T08:49:37+00:00">
   </HEAD>

内田明さんによるこの文章の邦訳もあります。

仕様書を注意深く読んだ人はここで、http-equiv属性を使用した際の動作が別に記されていることに気が付くでしょう。http-equiv属性に示された変数は、HTTPサーバがHTTP応答ヘッダを整形する際に利用できることになっています。
実はHTML 2.0 では、さらに踏み込んで次のように記されていました

HTTPサーバは、文書の<HEAD>を読み取ってHTTP-EQUIV属性の値で定められた要素のすべてに対応するようにヘッダ部分を作成することができます。

HTTPサーバが、HTTP-EQUIV属性のない<META>要素をHTTP応答ヘッダ整形に使用することを禁止します。

このあたりのニュアンスは、HTML 3.2 で微妙に変化します。

HTTP-EQUIV 属性はNAME 属性の代わりに使用することができます。この属性は、超越書類転送プロトコル(HTTP)によって文書を取ってくるときに、特に重要です。HTTP サーバは、 HTTP 応答において RFC 822 スタイルヘッダを造り出すために、 HTTP-EQUIV 属性によって指定された特性の名前を使うことができるのです。これはしかし、特定の HTTP ヘッダをセットすることができるということではありません。詳細については HTTP 仕様書を見てください。

ということは、HTML 2.0 に準拠する仕様のHTTPサーバでは、HTTP-EQUIV属性を欠く<META>要素の内容をロボットに教えないことがあるかも知れません。これはロボットではなくHTTPサーバの問題ですが、ロボット自体の実装も時代によって変化していることは有り得ます。というか、昔も今も同じ実装を守り続ける方が珍しいでしょう。現に、現行の検索ロボットの実装を考慮に入れたらしいHTML 4.0 の用例では、HTTP-EQUIV属性がなくNAME属性だけになっていますし。
そこで新旧いかなるHTTPサーバにも検索ロボットにも対応するためには、HTTP-EQUIVとNAMEの両方の属性を入れておけばいいわけです。幸い、HTML 4.0 のDTDを見ても、この両者が排他的であるようには決められていません。

 <!ELEMENT META - O EMPTY               -- generic metainformation -->
 <!ATTLIST META
   %i18n;                               -- lang, dir, for use with content --
   http-equiv  NAME           #IMPLIED  -- HTTP response header name  --
   name        NAME           #IMPLIED  -- metainformation name --
   content     CDATA          #REQUIRED -- associated information --
   scheme      CDATA          #IMPLIED  -- select form of content --
   >

それからもう一つ、LINKという要素があります。あまり知られていませんが、A要素と同様にハイパーリンクを示すものです。HTML 4.0 ではこれもMETAで代用できるかのように書かれていますが、HTML 2.0 では他に適当な要素がある場合にはMETAの使用は禁止されており、特に他のWebやメールアドレス等を参照するようなときにはLINKの方が望ましいとされています。
このLINK要素を使って、著作権者の表示やページの順序など、前後の繋がりを示すことができます。
HTML 3.2 には、LINKの使い方がいくつか挙げられており、用例として次のものが掲げられています。

    <LINK REL=Contents HREF=toc.html>
    <LINK REL=Previous HREF=doc31.html>
    <LINK REL=Next HREF=doc33.html>

    <LINK REL=Chapter REV=Contents HREF=chapter2.html>

そこで、魔術幻燈の用例を示しましょう。このページの頭は次のようになっています。ソースのままだと少々見にくいので、整理して書いておきました。

<HEAD PROFILE="http://www.bekkoame.or.jp/%7Epoetlabo/WWW/meta.html">

    <META HTTP-EQUIV="Content-Type"
     CONTENT="text/html;charset=ISO-2022-JP">
	
    <META HTTP-EQUIV="Keywords" NAME="Keywords"
     CONTENT="HTML,META,Webプロモーション,サーチエンジン,検索ロボット">
 
    <META NAME="Description"
     CONTENT="サーチエンジンへ自分のWebの存在を教えるHTMLの書き方">
 
    <TITLE LANG="JA">HTML TIPS:サーチエンジンへの通知</TITLE>

    <LINK REL="Author" REV="Made"
     HREF="mailto:poetlabo@cap.bekkoame.or.jp"
     TITLE="Copyleft: 1998, 魔術幻燈">
 
</HEAD>

"Description"というのは要約のことで、Web Design Group による解説を見ると、結構使われているようです。この解説には「キイワードを7つ以上入れると全体が無視される」とも書いてあります。これについて、Infoseekの説明では、同じキーワードを7回以上使用するとキーワードリストを無視する旨の記述があります。また、Infoseekでは、Keywordは英文字で1000字 (日本語は500字)以内、Descriptionは英文字で200字(日本語は100字)以内と指定されています。
"Author"のところは、"Copyright"としてもいいでしょう。企業のWebなら、別にNAME="Publisher"などと入れても良さそうです。ちょっと古いがERIN大学のスタッフによる解説や、Vancouver Webpagesによる最新の辞書などが参考になるでしょう。Metadata Search Engineなんて気の利いたものもあります。
また、METAに何を入れるかは決まっていないので、これ以外にも自分で考えたことを入れてかまいませんし、ひょっとしたら適当に書いたものが検索ロボットに拾われることもあるかも知れません。くわしくは、それぞれのサーチエンジン管理者へ問い合わせてください。
あとは、ご自分のページの紹介として何をどう書くか、各人よろしく工夫されたし。

「よし、これでバッチリだ!さっそく試してみよう」という方に、お断りを。これを全て実行したからと言って、めでたく検索ロボットがあなたのWebを拾ってくれるとは限りません。そもそもMETA要素は拡張用の入れ物として設定されているだけなので、中に何を入れるかは決まっていません。あなたが何を書こうと、結局はHTTPサーバと検索ロボットの仕様に適合するものだけが選ばれます。もっと言うと、HTTPサーバと検索ロボットの実装次第で、あなたが書いたものは無視されるかも知れませんし、無視されたとしても仕様通りの出来ということになります。 「あー、面倒くせえ!やーめた」と放り出すなら、それも一つの見識と申せましょう。
META以外にも、HEAD要素の大半は省略できますから、ここで説明したものを全く書かなくても差し障りはありません。アクセスが伸び悩むかも知れないというだけのことです。
ただし、TITLE要素に限っては省略できません。TITLEは必ず書いてください。

Copyleft:1998, 魔術幻燈
poetlabo@cap.bekkoame.or.jp