web-dev-qa-db-fra.com

Prévention de l'utilisation de la bande passante élevée de Yandex

Bien que je mette une ligne pour Yandex dans mon fichier robots.txt, il arrive que Yandex indexe mon site Web de manière agressive. J'ai donc codé en dur une partie et vérifié l'agent utilisateur, et servir le fichier mis en cache si l'agent utilisateur est comme ceci: "Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)"

Mais lorsque je vérifie les journaux des compteurs de statistiques, j'ai récemment constaté que d'autres bots liés à Yandex exploraient fréquemment mon site. Ils sont similaires à suivre. J'ai pris cette information de mon journal cPanel:

Beeline (128.69.243.12)
Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; InfoPath.2)
Referer: http://yandex.ru/yandsearch?text=example.com&lr=213

Beeline (89.178.108.247)
Referer: http://yandex.ru/yandsearch?text=example.com&lr=213
Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.2)

Comment puis-je bloquer ou servir les pages en cache de ces robots?

Lorsque je vérifie $_SERVER['HTTP_USER_AGENT'], je ne peux pas voir "yandex.ru" dans le référent. Le référant est vide. Est-il possible de trouver le référant dans le journal cPanel, mais ne peut pas le prendre à partir de HTTP_USER_AGENT ??

Et moi aussi, je ne veux pas interdire les IP car il existe trop d’IP liées à ce problème et ils sont changés périodiquement. Alors, comment puis-je trouver ce bot?

Est-ce que quelqu'un a le même problème? Je vous remercie

3
trante

Utilisez un délai d'analyse robots.txt comme décrit dans la section http://help.yandex.com/search/?id=1112639

Exemple:

User-agent: Yandex
Crawl-delay: 2 # specifies a 2 second timeout

Avant de commencer à bannir ce bot, vous devez d'abord vérifier que vos journaux sont bien Yandex et non quelqu'un d'autre qui imite l'agent utilisateur pour donner l'impression qu'ils sont yandex. Une tactique utilisée par les concurrents pour vous forcer à bloquer ou à retarder un bot afin qu'ils puissent vous classer. Effectuez une recherche DNS: http://help.yandex.com/search/?id=1112029

Vous pouvez servir une copie de cache dépendant de l'agent d'utilisateur de plusieurs manières. Si vous utilisez Apache, vous pouvez le faire avec les règles mod_rewrite. Si vous utilisez PHP, vous pouvez le faire en détectant la variable $ _SERVER ['HTTP_USER_AGENT'] ou même en utilisant la fonction get_browser () . La manière dont vous construisez un cache varie également et peut être effectuée de 101 façons. Honnêtement, pour une meilleure performance, vous devriez toujours utiliser la mise en cache.

2
Anthony Hatzopoulos