web-dev-qa-db-fra.com

Pourquoi Bing et Semrushbot ignorent-ils le délai de crawl dans mon fichier robots.txt?

Nous organisons un grand nombre de sites qui ont un grand nombre de pages de catalogue. Nous aimerions ralentir plusieurs bots parce que le trafic est assez excessif de ces robots. Plus précisément, nous obtenons un peu de trafic de Bingbot et de Semrushbot que nous aimerions ralentir. Les pages d'information pour les deux bots disent qu'ils obéissent à la directive sur le délai de crawl. Cependant, malgré la modification des retards d'analyse des deux, je ne vois aucun changement de trafic même après plusieurs jours. Y a-t-il quelque chose qui ne va pas avec mon fichier? (Je mets 60 dans le délai de Semrushbot, mais j'ai lu qu'ils ne tardent que pour un maximum de 10 secondes. Je n'ai vu aucun changement après les a ajouté au fichier robots.txt).

User-agent: *
Disallow: /nobots/
Disallow: /products/features/
Disallow: /product/features/
Disallow: /product/reviews/
Disallow: /webservices/ajax/
User-agent: yahoo-mmcrawler
Disallow: /m/
User-agent: MJ12bot
Disallow: /
User-agent: AhrefsBot
Disallow: /
User-agent: SemrushBot
Crawl-delay: 60
User-agent: Bingbot
Crawl-delay: 10
Disallow: /nobots/
Disallow: /products/features/
Disallow: /product/features/
Disallow: /product/reviews/
Disallow: /webservices/ajax/
User-agent: dotbot
Crawl-delay: 1
User-agent: Goodzer
Crawl-delay: 1
User-agent: rogerbot
Crawl-delay: 5
User-agent: Baiduspider
Disallow: /
User-agent: YandexBot
Disallow: /
User-agent: YandexImages
Disallow: /
User-agent: Linguee Bot
Disallow: /
User-agent: Seekport Crawler
Disallow: /
User-agent: GrapeshotCrawler
Crawl-Delay: 1
User-agent: istellabot
Disallow: /
User-agent: SeznamBot
Disallow: /
Sitemap:
1
ChipnCharge

Merci pour la question et bienvenue à cette grande communauté d'individus partageant les mêmes idées. Votre requête est en perplexe, mais elle est solvable. Je vois quelques choses qui peuvent être améliorées/modifiées dans votre fichier robots.txt par Documentation de Bing sur les meilleures pratiques .

  1. Vous dites que vous organisez un grand nombre de sites. Assurez-vous que vous avez des fichiers de robots.txt séparés stockés dans le dossier racine de chaque site hôte.
  2. Bing recommande que toute directive de délai d'analyse soit effectuée dans la section Directive générique de tous les robots pour minimiser les chances d'erreurs de code pouvant affecter la manière dont un site est indexé par un moteur de recherche particulier. Je vois que vos directives de retard de crawl sont faites pour des robots spécifiques. Personnellement, j'ignorerais cette recommandation car vous ne voulez pas ralentir GoogleBot, car c'est le seul bot qui compte;)
  3. Notez également que l'ensemble de directives de délai de crawl est applicable uniquement sur l'instance de serveur Web hébergeant le fichier robots.txt.
  4. Si vous souhaitez ajouter des directives personnalisées pour des robots spécifiques qui ne sont pas appropriés pour tous les robots, tels que Crawl-Delay :, ajoutez-les dans une section personnalisée après la première section générique, modifiant la référence de l'agent utilisateur à un bot spécifique.
  5. Enfin, en ce qui concerne la valeur du délai d'analyse, Bing recommande d'utiliser la valeur la plus basse possible, si vous devez utiliser un délai, afin de maintenir l'indice aussi frais que possible avec votre dernier contenu. Bing recommande d'utiliser toute valeur supérieure à 10, car cela affectera gravement la capacité du bot de ramper efficacement votre site pour la fraîcheur de l'index.

enter image description here

Notez également que Bing a un outil contrôle analysé Outil qui vous permet d'exercer un contrôle sur la vitesse à laquelle Bingbot fait des demandes. Cet outil peut être trouvé à l'intérieur du compte Webmaster de Bing.

J'espère que ça aide. Bonne chance pour votre voyage à la gloire de recherche éternelle!

1
Nina Dubovich

Votre fichier robots.txt ne fait pas quoi (je pense) que vous avez l'intention de faire parce que vous n'utilisez pas de lignes vides entre les sections. Le robots.txt standard dit (accent ajouté):

Le format consiste logiquement en un jeu ou des enregistrements non vides, séparés par des lignes vierges . Les enregistrements consistent en un ensemble de lignes de la forme:

<Field> ":" <value>

Dans ce mémo, nous nous référons aux lignes avec un champ "FOO" comme "FOO Lines".

L'enregistrement commence par une ou plusieurs lignes d'agent utilisateur, spécifiant les robots que l'enregistrement s'applique à, suivi d'instructions "interdisant" et "Autoriser" à ce robot. Par exemple:

User-agent: webcrawler
User-agent: infoseek
Allow:    /tmp/ok.html
Disallow: /tmp
Disallow: /user/foo

Ainsi, lorsque vous avez plusieurs sections pour différents agents d'utilisateur, il doit y avoir des lignes vierges entre elles. Vous pouvez également attribuer plusieurs agents utilisateur à la même règle. Vos robots.txt devraient être:

User-agent: *
Disallow: /nobots/
Disallow: /products/features/
Disallow: /product/features/
Disallow: /product/reviews/
Disallow: /webservices/ajax/

User-agent: yahoo-mmcrawler
Disallow: /m/

User-agent: SemrushBot
Crawl-delay: 60

User-agent: Bingbot
Crawl-delay: 10
Disallow: /nobots/
Disallow: /products/features/
Disallow: /product/features/
Disallow: /product/reviews/
Disallow: /webservices/ajax/

User-agent: dotbot
User-agent: Goodzer
Crawl-delay: 1

User-agent: rogerbot
Crawl-delay: 5

User-agent: Baiduspider
User-agent: MJ12bot
User-agent: AhrefsBot
User-agent: YandexBot
User-agent: YandexImages
User-agent: Linguee Bot
User-agent: Seekport Crawler
User-agent: GrapeshotCrawler
User-agent: istellabot
User-agent: SeznamBot
Disallow: /

N'oubliez pas que si vous fournissez une section séparée pour un bot, il ne suit plus le User-agent: * Directives. Donc, Semrushbot, dotbot, Goodzer, et rogerbot sont autorisés à ramper votre site complet, y compris /nobots/. yahoo-mmcrawler est la même autorité à ramper presque tout.

Même un délai d'analyse de 1 seconde ralentit de manière significative la vitesse à laquelle les robinets peuvent récupérer des documents au point que votre serveur ne doit pas remarquer une charge supplémentaire à partir d'eux. Un serveur typique peut gérer des centaines ou même des milliers de demandes chaque seconde. Je recommanderais de mettre une valeur par défaut Crawl-delay: 1 Et ne pas essayer de le personnaliser pour différents bots. La plupart des bots l'ignorent complètement, mais ceux qui honorent cela devraient toujours être capables de ramper des centaines de pages de votre site dans une période raisonnable. Je pense que ce fichier robots.txt correspondrait mieux à votre intention et de ralentissement des robots de crawlers pour empêcher la surcharge du serveur:

User-agent: *
Crawl-delay: 1
Disallow: /nobots/
Disallow: /products/features/
Disallow: /product/features/
Disallow: /product/reviews/
Disallow: /webservices/ajax/

User-agent: yahoo-mmcrawler
Crawl-delay: 1
Disallow: /nobots/
Disallow: /products/features/
Disallow: /product/features/
Disallow: /product/reviews/
Disallow: /webservices/ajax/
Disallow: /m/

User-agent: Baiduspider
User-agent: MJ12bot
User-agent: AhrefsBot
User-agent: YandexBot
User-agent: YandexImages
User-agent: Linguee Bot
User-agent: Seekport Crawler
User-agent: GrapeshotCrawler
User-agent: istellabot
User-agent: SeznamBot
Disallow: /
1