以下は、許可するrobots.txtファイルのサンプルです複数のユーザーエージェントユーザーエージェントごとに複数のクロール遅延。クロール遅延の値は説明のためのものであり、実際のrobots.txtファイルでは異なります。
適切な答えを求めてウェブ全体を検索しましたが、見つかりませんでした。混合提案が多すぎて、どちらが正しい/適切な方法かわかりません。
質問:
(1)各ユーザーエージェントに独自のクロール遅延を設定できますか? (そうだと思います)
(2)Allow/Dissallow行の前または後に、各ユーザーエージェントのクロール遅延行をどこに配置しますか?
(3)各ユーザーエージェントグループの間に空白が必要です。
参照:
http://www.seopt.com/2013/01/robots-text-file/
http://help.yandex.com/webmaster/?id=1113851#1113858
基本的に、以下のサンプルの値を使用して、最終的なrobots.txtファイルがどのように見えるかを調べています。
前もって感謝します。
# Allow only major search spiders
User-agent: Mediapartners-Google
Disallow:
Crawl-delay: 11
User-agent: Googlebot
Disallow:
Crawl-delay: 12
User-agent: Adsbot-Google
Disallow:
Crawl-delay: 13
User-agent: Googlebot-Image
Disallow:
Crawl-delay: 14
User-agent: Googlebot-Mobile
Disallow:
Crawl-delay: 15
User-agent: MSNBot
Disallow:
Crawl-delay: 16
User-agent: bingbot
Disallow:
Crawl-delay: 17
User-agent: Slurp
Disallow:
Crawl-delay: 18
User-agent: Yahoo! Slurp
Disallow:
Crawl-delay: 19
# Block all other spiders
User-agent: *
Disallow: /
# Block Directories for all spiders
User-agent: *
Disallow: /ads/
Disallow: /cgi-bin/
Disallow: /scripts/
(4)すべてのユーザーエージェントを10秒のクロール遅延に設定する場合、以下は正しいですか?
# Allow only major search spiders
User-agent: *
Crawl-delay: 10
User-agent: Mediapartners-Google
Disallow:
User-agent: Googlebot
Disallow:
User-agent: Adsbot-Google
Disallow:
User-agent: Googlebot-Image
Disallow:
User-agent: Googlebot-Mobile
Disallow:
User-agent: MSNBot
Disallow:
User-agent: bingbot
Disallow:
User-agent: Slurp
Disallow:
User-agent: Yahoo! Slurp
Disallow:
# Block all other spiders
User-agent: *
Disallow: /
# Block Directories for all spiders
User-agent: *
Disallow: /ads/
Disallow: /cgi-bin/
Disallow: /scripts/
(1)各ユーザーエージェントに独自のクロール遅延を設定できますか?
はい。 1つ以上のUser-agent
行で開始される各recordは、Crawl-delay
行を持つことができます。 Crawl-delay
は 元のrobots.txt仕様 の一部ではないことに注意してください。しかし、仕様としてそれを理解するパーサーのためにそれらを含めることは問題ありません defines :
認識されないヘッダーは無視されます。
そのため、古いrobots.txtパーサーはCrawl-delay
行を単に無視します。
(2)Allow/Dissallow行の前または後に、各ユーザーエージェントのクロール遅延行をどこに配置しますか?
関係ありません。
(3)各ユーザーエージェントグループの間に空白が必要です。
はい。 レコードは、1行以上の改行で区切る必要があります。 元の仕様 を参照してください:
ファイルは、1つ以上の空白行で区切られた1つ以上のレコードで構成されます(CR、CR/NL、またはNLで終了)。
(4)すべてのユーザーエージェントを10秒のクロール遅延に設定する場合、以下は正しいですか?
いいえ。ボットはユーザーエージェントに一致するレコードを探します。レコードが見つからない場合のみ、User-agent: *
レコードを使用します。したがって、あなたの例では、リストされたすべてのボット(Googlebot
、MSNBot
、Yahoo! Slurp
など)はnoCrawl-delay
を持ちます。
User-agent: *
を含む複数のレコードは使用できないことにも注意してください:
値が「*」の場合、レコードは、他のどのレコードとも一致しなかったロボットのデフォルトのアクセスポリシーを示します。 「/ robots.txt」ファイルにこのようなレコードを複数含めることはできません。
したがって、パーサーはUser-agent: *
で最初のレコードを検索し(他に一致するレコードがない場合)、次のレコードを無視する可能性があります。最初の例では、/ads/
、/cgi-bin/
、/scripts/
で始まるURLはnotブロックされます。
そして、もしoneUser-agent: *
のレコードしかない場合でも、これらのDisallow
行は、他のレコードが一致しないボット専用です!コメント# Block Directories for all spiders
が示唆しているように、これらのURLパスをallスパイダーに対してブロックする必要があるため、Disallow
行をeveryレコードに対して繰り返す必要があります。