technical SEO

Une introduction au web crawler

8 mars 2016 - 7  min de lecture - par Julien Picot
Accueil > SEO Technique > crawler un site web

Quand je parle de mon métier et qu’est-ce que le SEO, les gens comprennent assez rapidement. Une bonne structure de site, du bon contenu, des bons liens qui soutiennent le site. Parfois cela devient un peu plus technique et lorsque je commence à aborder le sujet de web crawler, je perds toute attention…

Pourquoi crawler un site web ?

Le crawl a commencé par un “mapping” du web et comment chaque site étaient connectés entre eux. Le web crawler était utilisé par les moteurs de recherche pour découvrir de nouvelles pages et les indexer. Les crawlers étaient également utilisés dans d’autres cas de figure notamment dans la sécurité pour tester si un site était vulnérable ou non.

Maintenant, on peut trouver toute sorte d’outils qui peuvent crawler votre site et vous renseigner sur son état général. Par exemple, OnCrawl vous donne des informations sur le contenu et sur votre SEO onsite, Majestic quant à lui vous permet d’avoir des informations sur les liens qui pointent vers votre site.

[Ebook] Crawlability

Assurez-vous que vos sites web répondent aux exigences des moteurs de recherche en termes de crawlabilité pour booster la performance SEO.

Les robots sont utilisés pour collecter le contenu d’une page pour ensuite la traiter, la classer et fournir des informations.

Créer son propre crawler n’est pas une tâche difficile pour qui sait coder un minimum. Par contre, si vous voulez développer un bots beaucoup plus performant, cela devient plus technique.

Comment fonctionne le crawler ?

Afin de crawler un site ou tout l’Internet, il faut un point d’entrée. Les robots ont besoin de savoir qu’un site existe pour y accéder et l’analyser. Quelques années en arrière, il fallait encore soumettre manuellement son site à un moteur de recherche afin de lui dire que votre site était en ligne. Dorénavant, il suffit de construire quelques liens et votre site sera repéré au bout d’un moment.

Une fois qu’un web crawler arrive sur votre site, il analyse son contenu ligne par ligne et suit chaque lien qu’il trouve, qu’il soit interne ou externe. Il continue ainsi de suite jusqu’à ce qu’il arrive sur une page sans lien ou s’il rencontre une erreur comme une 404, une 403 ou une 500 par exemple.

D’un point de vue technique, un web crawler fonctionne avec une liste initiale d’URL appelée “seed”. Cette liste est ensuite passée à un Fetcher qui récupère tout le contenu de chaque URL qu’il analyse. Ce contenu est ensuite redirigé vers un extracteur de lien qui récupère chaque lien de la page. Ces URLs sont d’une part stockées et d’autre part soumises à un filtre qui renvoi les URLs intéressantes à un module URL-Seen. Ce module détecte alors si l’URL envoyée a déjà été vue ou non. Si ce n’est pas le cas elle est envoyée au Fetcher qui va récupérer le contenu de la page et ainsi de suite.

Il faut garder à l’esprit que certains contenus ne peuvent pas être crawlé par des robots comme le Flash. Le Javascript quant à lui est crawlé par GoogleBot, mais il arrive que parfois il décide de ne pas crawler un contenu Javascript. Les images sont également des contenus que les robots ne peuvent pas crawler, mais Google est de plus en plus intelligent et arrive à “comprendre” de quoi elles parlent.

Si l’on ne donne pas de consigne à un robot celui-ci va crawler tout ce qu’il peut. C’est là que le fichier robots.txt devient utile. Il va spécifier aux robots (des consignes peuvent être spécifiques à chaque robots comme GoogleBot, MSN Bot – il existe toute une liste de robots existants ici) quelles pages ils ne peuvent pas crawler. Disons que vous avez une navigation à facette, vous ne voulez pas que qu’ils crawlent toutes les facettes de la navigation, car certaines n’auront pas de valeur ajoutée contrairement à d’autre. Cela va utiliser beaucoup de budget de crawl pour rien. En utilisant cette simple ligne vous déclarerez aux robots de ne pas visiter les pages que vous souhaitez:

User-agent: *
Disallow: /folder-a/
Cela spécifie aux robots de ne pas crawler le dossier A
User-agent: GoogleBot
Disallow: /repertoire-b/
Cela spécifie uniquement à GoogleBot de ne pas crawler le dossier B

Vous pouvez également spécifier aux robots que vous ne souhaitez pas qu’ils suivent les liens qui vont vers certaines pages en utilisant le rel=”nofollow”. Cependant, certains tests ont montré que le GoogleBot suivait quand même ces liens. Cela est contradictoire avec son utilisation de base, mais les liens NoFollow ont d’autres applications utiles.

Qu’est-ce que le budget de crawl ?

Votre site a récemment été découvert par un moteur de recherche. Les robots viennent souvent pour mettre à jour leurs données et voir si vous avez fait des modifications ou si vous avez créé de nouvelles pages. Chaque site a son propre budget de crawl. Le quota dépend notamment du nombre total de pages de votre site et de la bonne santé de votre site (notamment s’il y a beaucoup d’erreurs ou non). Vous pouvez avoir un bon aperçu de votre budget de crawl en vous connectant à votre Search Console.

Il fixe le nombre de pages que le robot va crawler à chaque passage. Il est proportionnellement lié au nombre total de vos pages et le nombre de pages qu’il a déjà crawlé. Certaines pages sont plus fréquemment crawlées que d’autres, en particulier si elles sont mises à jour de manière régulière ou si elles reçoivent des liens de pages importantes.

Par exemple, votre page d’accueil est un point d’entrée de votre site qui sera fréquemment crawlé. Une page de catégorie sera également régulièrement crawlée si elle est liée directement depuis la navigation principale. Un blog quant à lui sera souvent crawlé, car son contenu est régulièrement mis à jour. Un article de blog, lui, sera aussi souvent crawlé au début quand il aura été publié, mais après quelques mois il ne sera probablement plus mis à jour et de ce fait moins crawlé.

Plus une page est crawlée par un robot, plus elle est considérée comme importante à ses yeux par rapport à d’autres pages. C’est à ce moment que vous devez vous pencher sur l’optimisation de votre budget de crawl.

Comment optimiser son budget de crawl

Pour optimiser son budget de crawl et s’assurer que vos pages importantes reçoivent l’attention qu’elles méritent, vous pouvez analyser vos logs serveur et voir comment un robot crawle votre site :

  • À quelle fréquence sont crawlées vos pages importantes ?
  • Des pages moins importantes sont-elles crawlées plus qu’elles ne le devraient ?
  • Les robots rencontrent-ils fréquemment des erreurs 4xx ou 5xx lors de leur crawl ?
  • Les robots se heurtent-ils à des « spider traps » ? (Matthew Henry a écrit un très bon article à ce sujet)

Avec un analyseur de logs vous pourrez voir si des pages que vous considérez comme peu importantes sont visitées fréquemment et donc crawlées. Il faudra alors creuser dans votre structure de maillage interne. Si une page est souvent crawlée, c’est qu’elle doit recevoir beaucoup de liens.

Vous pouvez également résoudre les erreurs (4xx ou 5xx), en utilisant OnCrawl notamment, afin d’aider à améliorer la crawlabilité de votre site ainsi que l’expérience utilisateur.

Web Crawler VS Scrap

Crawler et scraper sont deux choses distinctes à des fins différentes. Crawler un site, c’est arriver sur une page, extraire tous les liens et les suivre.

Scraper a pour objectif de récupérer un contenu spécifique d’une page: balise title, meta description, balise h1 ou une partie plus précise comment une liste de prix. Un scraper aura plutôt tendance à se faire passer pour un humain, ignorer les règles du robots.txt, remplir et soumettre des formulaires et utiliser le user-agent d’un navigateur pour ne pas être détecté.

Les crawlers des moteurs de recherche agissent comme des scrapers dans le sens où ils ont également besoin de récupérer le contenu d’un site afin de le traiter via l’algorithme de ranking. Contrairement aux scrapers, ils ne cherchent pas un contenu spécifique, mais bien tout le contenu à disposition et même plus (le temps de chargement d’une page par exemple). Les robots des moteurs de recherche s’identifient toujours en tant que robot pour permettre au propriétaire du site de savoir quel robot est passé et à quel moment. Cela devient utile lorsque vous souhaitez suivre toutes interactions sur votre site.

Maintenant que vous en savez plus sur le crawl, son fonctionnement et son importance, il ne vous reste plus qu’à commencer à analyser vos propres logs et croiser vos données de logs avec le crawl Oncrawl. Vous pourrez vérifier la crawlabilité de votre site. Cela vous donnera des précisions sur l’interaction des robots avec votre site, quelles pages sont considérées comme importantes et quelles sont les erreurs rencontrées lors du crawl.

Pour ceux qui veulent pousser un peu plus loin sur l’histoire des web crawlers, je vous recommande “A Brief History of Web Crawlers”

Julien est un consultant SEO basé à Londres qui travaille sur différentes problématiques dont le SEO international et le SEO mobile. Suivez-le sur Twitter: @VtZ_
Sujets en lien :