かなり大規模なWebクローラーを実行しています。私たちは、受け入れられたコミュニティ標準の範囲内でクローラーを操作するために一生懸命努力しています。クローラーに関する苦情はほとんどありませんが、多くの場合、robots.txtの処理についての苦情です。ほとんどの場合、ウェブマスターがrobots.txtに誤りを犯したため、その旨を指摘してください。しかし、Allow
との処理を含む灰色の領域に定期的に出くわしDisallow
ます。
robots.txtののページがカバーしていませんAllow
。他のページを見たことがあります。その中には、クローラーが「最初に一致する」ルールを使用しているものと、指定していないものがあります。これは混乱を招きます。たとえば、robots.txtに関するGoogleのページには、この例がありました。
User-agent: Googlebot
Disallow: /folder1/
Allow: /folder1/myfile.html
明らかに、ここでの「最初に一致する」ルールは機能しません。クローラーがを表示してDisallow
立ち去るため、特別に許可されたファイルをクロールすることがないためです。
すべてのAllow
行を無視すれば明確ですが、クロールが許可されているものをクロールしない可能性があります。見逃してしまいます。
Allow
最初に確認しDisallow
、次に確認することで、私たちは大きな成功を収めました。アイデアは、Allow
より具体的であるように意図されていましたDisallow
。これは、デフォルトで(つまり、反対の指示がない場合)、すべてのアクセスが許可されるためです。しかし、次のようなものに出くわします。
User-agent: *
Disallow: /norobots/
Allow: /
ここでの意図は明白ですが、これAllow: /
により、Allow
最初にチェックするボットは、サイト上のあらゆるものをクロールできると考えます。
この場合でもそれは回避できます。マッチングをAllow
と比較してDisallow
、/ norobots /の何もクロールできないことを確認できます。しかし、これはワイルドカードに直面すると失敗します。
User-agent: *
Disallow: /norobots/
Allow: /*.html$
では、ボットはクロールを許可されてい/norobots/index.html
ますか?
「最初に一致」ルールでは、すべての曖昧さを排除し、私は多くの場合、より具体的に入れて、古いGoogleの例のようなものを示しサイトを参照してくださいAllow
後Disallow
。この構文では、ボットによる処理がさらに必要であり、解決できないあいまいさが生じます。
それで私の質問は、物事を行うための正しい方法は何ですか?robots.txtの処理に関して、ウェブマスターは行儀の良いボットに何を期待していますか?