Depuis l'été 2007, Google a considérablement amélioré son système de crawl : non seulement le moteur semble arriver à indexer les très nombreuses pages créées chaque jour sur le web, mais il n'est plus rare de voir des pages indexées en quelques minutes à peine ! Voici quelques explications issues d'un brevet de Google qui décrit les différents types de crawlers et leurs rôles respectifs.
Commençons par le système de crawl (récupération des documents web) et d'indexation (analyse des documents web) par Google.
Le crawl
Google a mis en place un logiciel de type crawler, dénommé GoogleBot. Il s'agit d'un robot d'indexation des pages web (et maintenant d'autres types). Son principe est simple (mais pas sa mise en œuvre !) : quand il lit une page pour l'indexer, il rajoute à sa liste de pages à visiter toutes celles liées à la page en cours de traitement.
Théoriquement, il devrait donc être capable de connaître la plupart des pages du web, c'est-à-dire toutes celles qui ne sont pas orphelines (une page est dite orpheline si aucune autre ne pointe vers elle). Le volume des données à traiter étant considérable, ce robot est un programme réparti sur des centaines de serveurs.
Outre la connaissance du plus grand nombre de pages, Google cherche aussi à les indexer régulièrement, car une bonne partie des pages sont mises à jour de temps en temps. D'ailleurs la fréquence de visite de GoogleBot sur une page web dépend de son PageRank : plus il est grand, plus il l'indexera souvent. D'un passage à l'autre, GoogleBot peut détecter une page devenue inexistante ("erreur 404").
L'indexation
Cette masse colossale d'informations, Google va l'analyser, la décortiquer jusque dans les moindres détails. A chaque mot ou phrase est en effet associé son type, basé sur le langage HTML. C'est ainsi qu'un mot contenu dans le titre sera jugé plus important que dans le corps du texte. Une échelle de valeurs classe les types de mots (titre de la page, titre de paragraphe H1 à H6, gras, italique, etc.). Ce pré-traitement, associé à d'autres critères dont celui du PageRank, permet de fournir les résultats les plus pertinents en premier.
Rappel des systèmes de crawl et d'indexation
Il est déjà loin le temps où Google ne mettait à jour son index qu'une fois par mois ! C'était la période mythique de la Google Dance pendant laquelle les résultats oscillaient entre l'ancien et le nouvel index, selon le data center de Google utilisé pour répondre à la requête de l'internaute.
Ensuite, Google a mis en place ce qu'on a appelé l'everflux, c'est-à-dire la mise à jour permanente de son index (et a fortiori des résultats).
Le système de crawl de Google
Découverte d'URL et niveaux de crawl
Google peut découvrir des nouvelles URL de 3 façons :
Google calcule pour chaque page un score de crawl, qui lui sert à déterminer à quelle couche elle sera associée. Certaines thématiques sont traitées de façon spécifique, comme par exemple l'actualité.
Gestion des redirections
Quand le crawler détecte une redirection (code HTTP sous la forme 3XX), il réagit différemment selon le type de redirection :
Quand le crawler récupère une page, son contenu et les liens sont ensuite analysés. Un log des liens trouvés sur la page est envoyé par le crawler à d'autres programmes en charge de ces analyses plus poussées. Parmi ces analyses, on trouve :
<p>Pour voir une photo du Mont Everest, <a href="page-B.html">cliquez ici</a></p>
Même si ce lien n'est pas optimal pour le positionnement de la page B (car l'anchor text ne contient pas de mot-clé stratégique), Google peut tenir compte du fait qu'il y a des mots-clés juste à côté du lien. Cette information est stockée dans ce que les auteurs du brevet appellent la carte des ancres (Anchor Map). C'est peut-être rassurant mais il est indéniable qu'il vaut mieux avoir un ou plusieurs mots ciblés dans l'anchor text...
Conclusion
Les informations décrites ici sont issues d'un brevet, il n'est donc pas garanti que le système décrit ici soit en place. Par ailleurs, ce brevet Anchor tag indexing in a web crawler system est très vieux (il a été déposé en juillet 2003 et accepté fin 2007) et Google a sans doute adapté son système depuis...
Pour en savoir plus au sujet de ce brevet :
Commençons par le système de crawl (récupération des documents web) et d'indexation (analyse des documents web) par Google.
Le crawl
Google a mis en place un logiciel de type crawler, dénommé GoogleBot. Il s'agit d'un robot d'indexation des pages web (et maintenant d'autres types). Son principe est simple (mais pas sa mise en œuvre !) : quand il lit une page pour l'indexer, il rajoute à sa liste de pages à visiter toutes celles liées à la page en cours de traitement.
Théoriquement, il devrait donc être capable de connaître la plupart des pages du web, c'est-à-dire toutes celles qui ne sont pas orphelines (une page est dite orpheline si aucune autre ne pointe vers elle). Le volume des données à traiter étant considérable, ce robot est un programme réparti sur des centaines de serveurs.
Outre la connaissance du plus grand nombre de pages, Google cherche aussi à les indexer régulièrement, car une bonne partie des pages sont mises à jour de temps en temps. D'ailleurs la fréquence de visite de GoogleBot sur une page web dépend de son PageRank : plus il est grand, plus il l'indexera souvent. D'un passage à l'autre, GoogleBot peut détecter une page devenue inexistante ("erreur 404").
L'indexation
Cette masse colossale d'informations, Google va l'analyser, la décortiquer jusque dans les moindres détails. A chaque mot ou phrase est en effet associé son type, basé sur le langage HTML. C'est ainsi qu'un mot contenu dans le titre sera jugé plus important que dans le corps du texte. Une échelle de valeurs classe les types de mots (titre de la page, titre de paragraphe H1 à H6, gras, italique, etc.). Ce pré-traitement, associé à d'autres critères dont celui du PageRank, permet de fournir les résultats les plus pertinents en premier.
Rappel des systèmes de crawl et d'indexation
Il est déjà loin le temps où Google ne mettait à jour son index qu'une fois par mois ! C'était la période mythique de la Google Dance pendant laquelle les résultats oscillaient entre l'ancien et le nouvel index, selon le data center de Google utilisé pour répondre à la requête de l'internaute.
Ensuite, Google a mis en place ce qu'on a appelé l'everflux, c'est-à-dire la mise à jour permanente de son index (et a fortiori des résultats).
Le système de crawl de Google
Découverte d'URL et niveaux de crawl
Google peut découvrir des nouvelles URL de 3 façons :
- soumission directe dans le formulaire adéquat
- crawl et analyse des liens sur les pages
- soumission de listings (RSS, fichiers sitemaps, et autres formes de syndication)
- la couche de base contient la plupart des pages du web. Elles sont crawlées régulièrement, à une fréquence liée à la fréquence de mise à jour du contenu sur ces pages ainsi qu'à leur PageRank.
- la couche quotidienne contient un petit nombre de pages (en comparaison avec la couche de base) qui sont crawlées de façon quotidienne.
- la couche temps réel contient un nombre de pages encore plus restreint, qui sont crawlées en temps réel (avec une fréquence de l'ordre de la minute ou de l'heure).
Google calcule pour chaque page un score de crawl, qui lui sert à déterminer à quelle couche elle sera associée. Certaines thématiques sont traitées de façon spécifique, comme par exemple l'actualité.
Gestion des redirections
Quand le crawler détecte une redirection (code HTTP sous la forme 3XX), il réagit différemment selon le type de redirection :
- pour une redirection temporaire (302), le robot crawle immédiatement la page vers laquelle il est redirigé
- pour une redirection permanente (301), le robot transmet l'information à d'autres systèmes et reviendra crawler plus tard la page vers laquelle il est redirigé. On peut imaginer que dans ce cas, un traitement plus complexe est mis en œuvre, afin de transférer tout ce qui était connu à propos de l'ancienne URL vers la nouvelle (avec fusion des informations si l'URL finale était déjà connue).
Quand le crawler récupère une page, son contenu et les liens sont ensuite analysés. Un log des liens trouvés sur la page est envoyé par le crawler à d'autres programmes en charge de ces analyses plus poussées. Parmi ces analyses, on trouve :
- l'analyse du contenu de la page
- le calcul d'une signature à partir de l'URL de la page, pour servir à la détection de contenus dupliqués
- le calcul d'une signature à partir du contenu de la page, pour servir à la détection de contenus dupliqués
- l'analyse du texte des liens et même du texte autour des liens (c'est utilisé pour l'analyse off page)
- la détection de contenu dupliqué au niveau d'une page
- la détection de contenu dupliqué au niveau d'un site
<p>Pour voir une photo du Mont Everest, <a href="page-B.html">cliquez ici</a></p>
Même si ce lien n'est pas optimal pour le positionnement de la page B (car l'anchor text ne contient pas de mot-clé stratégique), Google peut tenir compte du fait qu'il y a des mots-clés juste à côté du lien. Cette information est stockée dans ce que les auteurs du brevet appellent la carte des ancres (Anchor Map). C'est peut-être rassurant mais il est indéniable qu'il vaut mieux avoir un ou plusieurs mots ciblés dans l'anchor text...
Conclusion
Les informations décrites ici sont issues d'un brevet, il n'est donc pas garanti que le système décrit ici soit en place. Par ailleurs, ce brevet Anchor tag indexing in a web crawler system est très vieux (il a été déposé en juillet 2003 et accepté fin 2007) et Google a sans doute adapté son système depuis...
Pour en savoir plus au sujet de ce brevet :
- auteurs : Huican Zhu, Jeffrey Dean, Sanjay Ghemawat, Bwolen Po-Jen Yang, and Anurag Acharya
- attribué à Google sous le numéro 7,308,643
- déposé le 3 juillet 2003 et attribué le 11 décembre 2007
- les détails : sur le site uspto.gov ou dans l'excellente analyse de Bill Slawski