Huawei teste son propre moteur de recherche sur mobile depuis plusieurs mois. Jusque là rien à redire mais vous allez voir que le robot de crawl est extrêmement agressif et peut faire planter votre site web 🙁 Comme n’importe quel moteur de recherche, celui de Huawei doit analyser chaque site pour l’indexer. C’est par le biais d’un programme appelé « robot« , qu’il va analyser le contenu de votre site. Cette action est appelée « crawl » et le programme « crawler« . Ces anglicismes sont communément utilisé en SEO (un autre anglicismes ;-)).
Comment fonctionne le robot crawler ?
Pour analyser votre site, le robot va analyser le contenu de la page d’accueil, et suivre tous les liens pour analyser tout votre site. Et c’est là que le problème intervient. Les robots comme Google, Bing ou Qwant, analysent votre site sans le faire planter car ils mettent un délai entre chaque requête vers votre serveur, un peu comme un utilisateur qui navigue sur votre site. Tout ceci afin de ne pas surcharger votre serveur avec des centaines de requêtes en simultanées, ce qui équivaudrait à des milliers d’internautes sur votre site. Ah vous aimeriez bien hein, mais quand c’est un programme qui fait planter votre site, vous aimez déjà beaucoup moins.
Quelles erreurs le robot peut-il provoquer ?
La plus courante est l’erreur 500, dans certains cas c’est la limite de connexion à la base de données qui provoque une erreur mySQL “Too many connections”. Ces limites interviennent le plus souvent sur un hébergement mutualisé ou les ressources sont limitées par l’hébergeur. Heureusement nous avons la solution pour vous 😉
Comment éviter au robot de Huawei de planter mon site ?
La solution la plus simple est de bloquer le robot de Huawei, mais cela pourra vous servir également pour bloquer d’autres robots que vous ne souhaitez pas (concurrents, outils SEO…). Pour bloquer le robot, on va utiliser des règles de filtrage basés sur l’en-tête http du robot. Ces règles reposent sur les réécritures d’url et nécessite d’avoir “mod_rewrite” installé sur votre serveur web .
Notez que cette technique n’aura aucun effet si le robot utilise un en-tête de navigateur connu. Dans ce cas il simule un navigateur, type FireFox, Chrome ou Safari.
Il est possible également d’utiliser les techniques du fichier robots.txt pour bloquer les robots, mais cette technique repose sur le fait que le crawler respecte vos règles décrites dans ce fichier. Hélas ce n’est pas le cas de tous. Google lui même indique, que le fait de donner des restrictions dans le fichier robots.txt n’empêche pas Google d’analyser les liens :-(;
Bloquer le robot dans .htaccess
Le robot de Huawei a comme signature d’en-tête AspiegelBot. Il suffit donc d’ajouter un filtre qui va bloquer, interdire l’accès (erreur http 403).
Ajoutez ces quelques lignes pour bloquer AspiegelBot :
RewriteEngine on # Bloquer le robot de Huawei RewriteCond %{HTTP_USER_AGENT} ^.*(AspiegelBot).*$ [NC] RewriteRule .* - [F,L]
un autre exemple avec plusieurs robots / signatures et pas de user agent :
RewriteEngine on # Bloquer les robots RewriteCond %{HTTP_USER_AGENT} ^.*(AspiegelBot|SemrushBot|BlackWidow).*$ [NC,OR] # et ceux qui n'ont pas de user agent RewriteCond %{HTTP_USER_AGENT} ^-?$ RewriteRule .* - [F,L]