web-dev-qa-db-fra.com

Comment faire en sorte que "crawl-delay" fonctionne pour tous les "user-agents" dans robots.txt ou .htaccess?

J'ai cette ligne:

Délai d'attente: 50

dans le fichier robots.txt à la racine de mon site Web.

Mais il semble que cela ne fonctionne pas du tout. Je reçois 400 visites de l'agent utilisateur Yandex en quelques minutes.

Je ne veux pas désactiver l'agent utilisateur mais le faire respecter la valeur de délai (50 dans ma situation).

Comment faire en sorte que "crawl-delay" fonctionne pour tous les "user-agents" dans robots.txt? J'ai aussi lu quelque part que cela peut être fait en . Htaccess, est-ce correct?

3
chefnelone

Je sais que vous avez précédemment demandé de bloquer les robots et maintenant vous voulez simplement les ralentir.

La seule façon de les forcer à ralentir est de ne pas leur servir de contenu s'ils vont trop vite. Le problème avec le fait de ne pas servir de contenu est que cela aura sûrement des conséquences négatives sur votre classement dans les moteurs de recherche.

Si vous décidez de bloquer certains des bots les moins importants, vous pouvez bloquer l'agent utilisateur d'un bot en utilisant la configuration d'Apache comme ceci:

SetEnvIf User-Agent BadBot GoAway=1
Order allow,deny
Allow from all
Deny from env=GoAway

Il suffit de remplacer BadBot par Yandex ou quel que soit l'agent utilisateur du bot que vous souhaitez bloquer.

Quand Apache voit l'agent utilisateur, il prétendra qu'il n'y a pas de contenu disponible.

Gardez à l'esprit que les en-têtes de l'agent utilisateur sont très faciles à modifier. Par conséquent, si Yandex modifie le leur en un autre, ce hack ne fonctionnera pas.

3
user27849