Retrouvez motrech sur son nouveau site http://motre.ch/

17 déc. 2005

J2J2 Liens morts-vivants: Ca diverge dur!

Comme suggéré par Jean Véronis, suite à un long commentaire que j'ai laissé sur son billet "Moteurs: Liens morts-vivants", voici un billet sur le sujet des liens morts. Ce billet reprend en substance le commentaire que j'ai laissé chez aixtal, et le complète avec quelques chiffres supplémentaires.

L'art du compromis

Le crawling, est un art délicat de compromis:
  1. Compromis de politesse: ne pas lancer trop de requêtes simultanées vers un même serveur, et respecter un temps minimum entre chaque salve de requêtes (sans quoi votre téléphone va très rapidement se mettre à sonner).
  2. Compromis de planification: Adapter la fréquence de crawl d'un site en fonction de sa fréquence de mise à jour, sans pour autant ne repasser qu'une fois tous les ans sur un site qui est rarement modifié.
  3. Compromis de défense: Eviter les pièges (redirections infinies, fichiers de taille infinies, liens infinis), tout en ne passant pas à côté de choses "intéressantes"
  4. [Compromis de correction d'erreur: Viennent ensuite de nombreux autres compromis permettant de pallier à la fois la mauvaise configuration des serveurs HTTP (et ils sont nombreux) afin de tout simplement détecter le type d'un fichier par exemple (ce qui permet d'appeler le parseur adéquate), etc... mais ce n'est plus une affaire de crawling...]
Bref, un moteur de recherche, d'un point de vue technologique, ce n'est pas si simple qu'on veut le croire. Même les fonctions de base.
Ainsi, les chiffres donnés par Jean me semblent plutôt honorables.

Les chiffres de Jean

Sans remettre en cause la qualité du travail de Jean, il me semblait qu'il manquait deux informations essentielles dans son billet:

  • 1. La répartition des liens morts de chaque moteur en fonction de code de retour HTTP (4xx, 5xx).
  • 2. Une "légende" mentionnant quels sont les codes de retour comptabilisés comme des erreurs.


Mes résultats

J'ai ainsi lancé une série de 1828 recherches (sur des domaines très variés) sur Google et récupéré les dix premiers résultats de chaque recherche. Il en a résulté 18000 requêtes vers des documents. Les résultats des status HTTP se répartissent donc comme suit:

Status HTTPSignificationNombre de liensPourcentage
200OK1683693,53
301Moved Permanently360,2
302Found10335,74
304Not Modified10,005
401Unauthorized10,005
403Forbidden110,06
404Not Found660,37
500Internal Server Error80,04
502Bad Gateway20,01
503Service Unavailable40,02
504Gateway Timeout20,01

Ainsi, si l'on considère que les codes d'erreurs sont ceux des classes 4xx et 5xx, alors le taux de liens morts est seulement de 0,52%, ce qui est largement inférieur aux 3,7% annoncé par Jean. La raison? Je pense tout simplement que l'outil de Jean considère les status HTTP autres que 200 comme des erreurs. Ainsi, les redirections (codes de classe 3xx) sont très certainement comptés comme erreurs, alors qu'elles ne devraient pas, puisqu'une redirection va être suivie de manière transparente par le navigateur de l'utilisateur et potentiellement délivrer un document. Pour être encore plus précis, j'ai donc également examiné ce qu'il y avait derrière ces redirections: Sur l'ensemble des 1070 liens ayant retourné un status HTTP 3xx, seuls 5 liens ont retourné un erreur, ce qui finalement n'est pas significatif ici.

Le taux de liens morts de Google serait donc de l'ordre de 0,5%, ce qui admettons le est très faible!

Dans un prochain billet, j'effectuerais ces mêmes mesures sur les moteurs étudiés par Jean, afin d'avoir une vision précise des liens morts de chaque moteur. J'aimerais égalemement trouver le temps d'étudier l'évolution du taux de liens morts en fonction des pages de résultats. Ce taux est-il constant, ou bien augmente t'il de page en page?

Les liens morts-vivants

Enfin il est à noter également que dans les liens non-morts se glissent un certain nombre de liens que l'ont peut réellement nommés mort-vivants.
Ce sont des pages ne contenant qu'un simple message "Cette page n'existe pas", ou bien "Ressource non trouvée"mais qui ont la mauvaise idée de ne pas être associé à un code d'erreur 404, mais à un code de succès 200. Dans une telle situation le crawler ne peut rien faire. C'est indétectable d'un point de vue protocolaire. Mais d'un point de vue de l'utilisateur ce sont bien des liens morts et qui pourtant sont bel et bien vivants.

TAGS : , ,


4 commentaires:

Jean Véronis a dit…

Bizarre, bizarre! A priori j'ai compté comme erreurs les 4xx et 5xx. Je n'ai pas compté les 3xx (sauf bug idiot, bien sur: je suis en deplacement et je vais verifier tout ca soigneusement en rentrant).

Autres possibilites de divergence: 1) nos reglages: j'ai regle sur francais avec safesearch 2) le type de requete: j'avais beaucoup de requetes a plusieurs termes.

A suivre. Contre-enquete tres interessante, en tous cas!

J2J2 a dit…

J'ai également réfléchi de mon côté aux source possibles de divergences. Ce qui me vient à l'idée:

1. Nos client HTTP n'utilisent pas une valeur de timeout identique
2. Nous passons par des proxy différents et donc peut être que le tiens a un timeout inférieur au miens, ou bien qu'il est moins disponible.
3. Comme tu le précises, nous utilisons des options différentes: Et c'est bien le cas. Moi, j'étais en safesearch off et pas de langue spécifiée.
4. Concernant les requêtes, j'ai également pas mal de requêtes à plusieurs termes (max 3).

A suivre en effet.
Je vais lancer prochainement le test sur MSN (je voulais le lancer hier soir, mais MSN était totalement mort...)

Jean Véronis a dit…

Je suis en train de vérifier les URL incriminées, et --surprise, la plus grande partie des erreurs provient de www.amazon.fr : 17 erreurs sur les 26 comptabilisées concernant Google! Si l'on ne compte pas Amazon, le taux d'erreur tombe à 1,3%, et nous avons donc des chiffres du même ordre.

Et Amazon est aussi la source d'erreurs la plus frequente pour les autres moteurs... Pas loin du tiers des erreurs. C'est très intéressant! Un seul site peut completement changer le paysage...

Jean Véronis a dit…

Voilà: étude révisée avec quelques réflexions ici. Un grand merci, Jérôme.

Enregistrer un commentaire