web-dev-qa-db-fra.com

Robots.txt - Quel est le format approprié pour un délai d'exploration pour plusieurs agents utilisateurs?

Voici un exemple de fichier robots.txt pour autoriser plusieurs agents utilisateurs avec plusieurs retards d'exploration pour chaque agent utilisateur. Les valeurs de délai d'exploration sont à des fins d'illustration et seront différentes dans un vrai fichier robots.txt.

J'ai cherché sur le Web des réponses correctes mais je n'en ai pas trouvé. Il y a trop de suggestions mitigées et je ne sais pas quelle est la méthode correcte/appropriée.

Questions:

(1) Chaque agent utilisateur peut-il avoir son propre délai d'exploration? (Je suppose que oui)

(2) Où placez-vous la ligne de délai de crawl pour chaque agent utilisateur, avant ou après la ligne Allow/Dissallow?

(3) Doit-il y avoir un blanc comme entre chaque groupe d'agent utilisateur.

Références:

http://www.seopt.com/2013/01/robots-text-file/

http://help.yandex.com/webmaster/?id=1113851#1113858

Essentiellement, je cherche à savoir à quoi devrait ressembler le fichier final robots.txt en utilisant les valeurs de l'exemple ci-dessous.

Merci d'avance.

# 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) Si je veux définir tous les agents utilisateurs pour qu'ils aient un délai d'exploration de 10 secondes, est-ce que ce qui suit est correct?

# 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) Chaque agent utilisateur peut-il avoir son propre délai d'exploration?

Oui. Chaque enregistrement, démarré par un ou plusieurs User-agent lignes, peut avoir un Crawl-delay ligne. Notez que Crawl-delay ne fait pas partie de la spécification originale robots.txt . Mais ce n'est pas un problème de les inclure pour les analyseurs qui le comprennent, comme la spécification définit :

Les en-têtes non reconnus sont ignorés.

Ainsi, les anciens analyseurs de robots.txt ignoreront simplement votre Crawl-delay lignes.


(2) Où placez-vous la ligne de délai de crawl pour chaque agent utilisateur, avant ou après la ligne Allow/Dissallow?

Peu importe.


(3) Doit-il y avoir un blanc comme entre chaque groupe d'agent utilisateur.

Oui. Records doivent être séparés par une ou plusieurs nouvelles lignes. Voir spécification d'origine :

Le fichier se compose d'un ou plusieurs enregistrements séparés par une ou plusieurs lignes vides (terminées par CR, CR/NL ou NL).


(4) Si je veux définir tous les agents utilisateurs pour qu'ils aient un délai d'exploration de 10 secondes, est-ce que ce qui suit est correct?

Non. Les robots recherchent des enregistrements qui correspondent à leur agent utilisateur. Seulement s'ils ne trouvent pas de document, ils utiliseront le User-agent: * record. Ainsi, dans votre exemple, tous les bots répertoriés (comme Googlebot, MSNBot, Yahoo! Slurp etc.) aura nonCrawl-delay.


Notez également que vous ne pouvez pas avoir plusieurs enregistrements avec User-agent: * :

Si la valeur est '*', l'enregistrement décrit la stratégie d'accès par défaut pour tout robot qui ne correspond à aucun des autres enregistrements. Il n'est pas autorisé d'avoir plusieurs enregistrements de ce type dans le fichier "/robots.txt".

Les analyseurs peuvent donc rechercher (si aucun autre enregistrement ne correspond) le premier enregistrement avec User-agent: * et ignorez les suivants. Pour votre premier exemple, cela signifierait que les URL commençant par /ads/, /cgi-bin/ et /scripts/ sont pas bloqués.

Et même si vous n'avez que un enregistrez avec User-agent: *, ces lignes Disallow sont uniquement pour les bots qui n'ont aucune autre correspondance d'enregistrement! Comme votre commentaire # Block Directories for all spiders suggérez que vous vouliez que ces chemins d'URL soient bloqués pour les tous araignées, vous devrez donc répéter les lignes Disallow pour tous les = enregistrement.

22
unor