web-dev-qa-db-ja.com

Robots.txt-複数のユーザーエージェントのクロール遅延の適切な形式は何ですか?

以下は、許可する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/
18
Sammy

(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: *レコードを使用します。したがって、あなたの例では、リストされたすべてのボット(GooglebotMSNBotYahoo! 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レコードに対して繰り返す必要があります。

22
unor