L'outil Screaming Frog permet de crawler un site pour en extraire bon nombre de données utiles en SEO. Mais il recÚle quelques fonctionnalités peu connues et pourtant trÚs utiles et qui permettent souvent de gagner beaucoup de temps. Vous pensez bien connaßtre Screaming Frog ? Cet article va certainement vous surprendre...

 

Screaming Frog est un crawler frĂ©quemment utilisĂ© par les rĂ©fĂ©renceurs : vĂ©ritable boĂźte Ă  outil du SEO, il permet non seulement de crawler des sites Web pour effectuer des analyses poussĂ©es, mais Ă©galement de rĂ©cupĂ©rer de nombreux Ă©lĂ©ments sur les pages via des expressions rĂ©guliĂšres, des sĂ©lecteurs CSS ou le langage Xpath. Par ailleurs, il dispose de plusieurs connecteurs avec des outils externes (Google Search Console, Google Analytics, Ahrefs, etc.) afin de qualifier les URL pour permettre d’identifier rapidement les KPI liĂ©s Ă  des pages spĂ©cifiques : nombre de liens externes, clics, temps de chargement,


RĂ©guliĂšrement mis Ă  jour, cet outil se voit dotĂ© de nouvelles fonctionnalitĂ©s parfois discrĂštes et peu connues. Nous verrons dans cette sĂ©rie d’articles autour de Screaming Frog Seo Spider, la façon dont un crawl doit ĂȘtre configurĂ©, les fonctionnalitĂ©s intĂ©ressantes de l’outil, mais surtout la façon dont il faut analyser les donnĂ©es pour dĂ©ployer une stratĂ©gie d’optimisations SEO. Rappelons Ă©galement que cet outil est disponible pour 3 familles de systĂšmes d’exploitation : Windows, MacOS, et Linux (distribution Ubuntu).

Avant de lancer un crawl, il est nĂ©cessaire de configurer un certain nombre de paramĂštres : en fonction des sites, il peut ĂȘtre utile de crawler (ou non) certains Ă©lĂ©ments comme les images ou les fichiers JS et CSS, et le comportement du crawler pourrait ne pas permettre de dĂ©tecter certaines problĂ©matiques. Nous allons voir dans cet article les principaux Ă©lĂ©ments Ă  paramĂ©trer avant de lancer un crawl.

Stockage des crawls

Mode Base de données

L’outil dispose de 2 modes de stockage : « Memory Storage » et « Database Storage ». Par dĂ©faut, il permet de lancer des crawls en utilisant la mĂ©moire vive de l’ordinateur (Memory Storage), pour ensuite les enregistrer sous la forme de fichiers portant l’extension « .seospider ».

La limite de 2Go par dĂ©faut peut ĂȘtre augmentĂ©e en fonction de l’importance des crawls Ă  rĂ©aliser et des Ă©lĂ©ments rĂ©cupĂ©rĂ©s (Menu Configuration > System > Memory Allocation), mais il est inutile d’allouer plus de 50% de cette mĂ©moire, ce qui ralentirait le fonctionnement du systĂšme d’exploitation et serait contre-performant.

Augmentation de la mémoire vive utilisée pour un crawl en mode "Memory Storage"

 

L’écriture de donnĂ©es sur la mĂ©moire vive permet de crawler des sites de façon rapide et performante. Cependant, elle peut vite trouver ses limites dans le cas oĂč les sites Ă  crawler comportent plusieurs centaines de milliers d’URL.

La capacitĂ© de la mĂ©moire RAM Ă©tant limitĂ©e, il est prĂ©fĂ©rable d’utiliser un autre mode de stockage pour des sites importants et des crawls rĂ©guliers, Ă  savoir le mode « Storage Mode » (Menu Configuration > SystĂšme > Storage Mode) :

Configuration du "Storage mode"

Avec un disque SSD (recommandĂ©) qui dispose de temps d’accĂšs rapides et d’un taux de transfert Ă©levĂ©, ce mode d’enregistrement Ă©crira directement sur le disque dur l’ensemble des donnĂ©es de vos crawls. Outre cet avantage permettant de crawler des sites consĂ©quents, ce mode fera apparaĂźtre une nouvelle entrĂ©e dans le menu « File » appelĂ©e « Crawls » qui listera l’ensemble de vos crawls, et qui vous permettra de les renommer ainsi que de les organiser Ă  votre guise en fonction de vos projets :

Organisation des crawls effectués par projet

Dans ce mode, nul besoin d’enregistrer vos crawls, qui seront stockĂ©s dans une base de donnĂ©es (utile en cas de plantage de votre ordinateur, ce qui Ă©vitera de repartir de zĂ©ro). Veillez malgrĂ© tout Ă  rĂ©guliĂšrement faire le mĂ©nage pour Ă©viter de surcharger le disque dur inutilement (cf. capture ci-dessus, espace occupĂ© indiquĂ© en bas Ă  droite).

Comportement du crawl

User-agent

Avant de paramĂ©trer les multiples options liĂ©es au comportement du crawler, il est indispensable de paramĂ©trer son identitĂ© ainsi que sa vitesse. En effet, Screaming Frog envoie son identitĂ© aux serveurs qu’il visite via son « User-Agent », de la mĂȘme maniĂšre que le fait un navigateur ou un robot. Ce user-agent spĂ©cifique par dĂ©faut (« Screaming Frog Seo Spider » pouvant ĂȘtre bloquĂ© par dĂ©faut sur certains serveurs, il est prĂ©fĂ©rable de le modifier via le menu « Configuration  > User-agent ».

Paramétrage du user-agent

Il faut Ă©galement garder Ă  l’esprit que certains sites disposent d’une URL dĂ©diĂ©e pour leur version mobile (m.monsite.com), ou encore renvoient du contenu diffĂ©rent en fonction de l’appareil utilisĂ© (dynamic serving).

Google utilisant depuis 2018 l’index mobile dans son moteur, une mauvaise configuration du user-agent pourrait dĂ©livrer une version erronĂ©e du site Ă  analyser (le mieux est de regarder dans les paramĂštres de la Search Console pour votre site quelle est la version de Googlebot utilisĂ©e : Desktop ou Mobile et de configurer votre crawl en consĂ©quence).

Par ailleurs, certains sites effectuant du rendu JS via du SSR (Server Side Rendering), la configuration du user-agent avec « Googlebot (Smartphone) » vous permettra d’ĂȘtre au plus proche du contenu dĂ©livrĂ© Ă  Google, tout en accĂ©lĂ©rant le crawl dans le cas du SSR, le rendu JS du crawler Ă©tant particuliĂšrement gourmand.

Javascript

Screaming Frog a la capacitĂ© d’effectuer un rendu JS des pages crawlĂ©es. Cette option est utile quand des sites utilisent des frameworks Javascript sans paramĂ©trage de SSR. Vous trouverez les Ă©lĂ©ments relatifs au rendu JS dans la fenĂȘtre Configuration > Spider (onglet Rendering).

Option de rendu JS

Il vous sera possible de crawler des sites en React, Angular, Ember ou tout autre framework, mais pas exactement Ă  la façon de Google,  dans la mesure oĂč le moteur de rendu de Screaming Frog n’est pas le mĂȘme que celui de Google. En effet Googlebot Evergreen utilise le moteur de rendu rĂ©cent de Chrome, tandis ce que Screaming Frog utilise une version plus ancienne :

Moteur de rendu utilisé par l'outil

Vitesse

La vitesse du crawler utilise par dĂ©faut 5 threads, ce qui Ă©quivaut Ă  l’équivalent de 5 onglets Chrome ouverts en simultanĂ© pour faire une analogie. En fonction de la configuration de sites (cache, serveur, etc.), cela peut provoquer des surcharges dans certains cas (voire mĂȘme un blacklistage temporaire). Il est donc possible de limiter le crawl Ă  un certain nombre d’URL par seconde.

Vitesse du crawl

Quoi qu’il en soit, il est toujours prĂ©fĂ©rable de contacter le responsable de l’hĂ©bergement du site pour crawler dans une plage horaire plutĂŽt creuse afin d’éviter de charger le serveur inutilement.

Le fait de fournir le user-agent utilisĂ© ainsi que l’adresse IP de la machine effectuant le crawl pourra permettre un ajout Ă  la withelist Ă  l’hĂ©bergeur pour prĂ©venir tout blacklistage ultĂ©rieur.

Programmation du crawl

Dans le cas oĂč il serait nĂ©cessaire de lancer le crawl en pleine nuit oĂč Ă  un moment spĂ©cifique, sachez qu’il est possible de programmer les crawls, et ce de façon rĂ©guliĂšre Ă©galement. En ouvrant la fenĂȘtre « Scheduling » du menu « File », vous pourrez ainsi lancer le crawl de façon automatisĂ©e. Celui-ci pourra ĂȘtre lancĂ© de façon unique, quotidienne, hebdomadaire ou encore mensuelle, avec la gĂ©nĂ©ration d’exports si besoin est, ou encore la gĂ©nĂ©ration de fichiers Sitemap automatisĂ©e.

En cas de programmation d’un crawl, l’ordinateur devra cependant rester allumĂ© (attention au mode Veille). Il existe Ă©galement la possibilitĂ© de lancer Screaming Frog en mode CLI (Command Line Interface) sans interface graphique, ce qui sera particuliĂšrement utile pour les serveurs exĂ©cutant l’application.

Programmation du crawl

A noter que ce mode est uniquement disponible que l’outil est paramĂ©trĂ© en « Storage mode ».

Configuration du crawl et éléments à parcourir

Screaming Frog dispose de nombreuses options dans sa fenĂȘtre de configuration (Menu Configuration > Spider). Parmi les options les plus utiles, on pourrait citer les fonctions suivantes :

FĂȘnetre de configuration du crawler

  • Conserver ou non les relations entre les fichiers via les cases Ă  cocher « Store », sachant que ne pas les enregistrer limitera drastiquement le poids du crawl, mais ne permettra pas de retrouver l’origine des URL dĂ©couvertes ;
  • RĂ©cupĂ©rer les fichiers sitemaps XML mentionnĂ©s dans le robots.txt (ou ajout manuel des sitemaps), via l’option « XML Sitemaps » en bas de l’onglet Crawl. Cela permettra aprĂšs le crawl de dĂ©tecter les URL orphelines (URL ne recevant pas de liens mais prĂ©sentes dans le sitemap) pour ainsi mettre en avant un dĂ©faut de maillage interne.
  • Respecter ou non la balise noindex (Onglet Advanced), ce qui signifiera que toutes les URL contenant un noindex ne seront pas reportĂ©es dans le rĂ©sultat du crawl. Cela peut ĂȘtre intĂ©ressant dans le cas oĂč un site disposerait d’un nombre important d’URL en noindex (ex : moteur Ă  facettes accessible via des liens non bloquĂ©s dans le robots.txt).
  • Respecter ou non la balise Canonical (Onglet Advanced, ce qui peut permettre d’y voir plus clair dans la duplication de balises <title>. En effet, il arrive souvent que le nombre de balises <title> dupliquĂ©es soit relatif avec des URL canoniques vs URL non canoniques.

Eléments à récupérer

Scraping d’élĂ©ments On-page (onglet Extraction)

Plusieurs Ă©lĂ©ments peuvent ĂȘtre rĂ©cupĂ©rĂ©s pour chaque URL crawlĂ©e par l’outil

Microdonnées

L’utilisation des microdonnĂ©es est un vrai plus sur un site Web afin de donner encore plus de contexte Ă  Google sur les entitĂ©s de recherche, mais Ă©galement pour bĂ©nĂ©ficier de rĂ©sultats enrichis. On notera l’intĂ©rĂȘt particulier de rĂ©cupĂ©rer les microdonnĂ©es (onglet « Extraction » de la fĂȘnetre de configuration) dans cet outil afin de dĂ©bugger celle qui peuvent ĂȘtre dĂ©tectĂ©es (format Microdata, JSON-LD, RDFa) dans les pages. Les erreurs seront ensuite reportĂ©es dans l’onglet de dĂ©tail de chaque URL :

Analyse des microdonnées au format JSON-LD

Code HTML

D’autres Ă©lĂ©ments peuvent ĂȘtre enregistrĂ©s comme l’intĂ©gralitĂ© du code HTML brut, ou encore le code HTML rendu (aprĂšs l’exĂ©cution du Javascript). Ces 2 options qui se trouvent dans l’onglet « Extraction » de la fenĂȘtre « Configuration > Spider » permettront de faire des nuages de mots-clĂ©s relatif aux occurrences les plus frĂ©quentes dans une page de façon ultĂ©rieure, ou encore de comparer les diffĂ©rences entre le HTML brut et le HTML rendu :

 Analyser les différences entre le HTML brut et le rendu JS

Scraping

L’une des fonctions les plus intĂ©ressantes de Screaming Frog est relative Ă  la rĂ©cupĂ©ration d’élĂ©ments spĂ©cifiques dans le contenu des pages. Dans le menu « Configuration > Custom », il sera possible de rĂ©cupĂ©rer des Ă©lĂ©ments dans les pages via les sĂ©lĂ©cteurs CSS, Xpath ou encore les expressions rĂ©guliĂšres.

Custom extraction

Parmi les diverses utilisations de cette fonction, on pourra citer :

  • L’ extraction du fil d’Ariane pour chaque page ;
  • La prĂ©sence de code tracking pour s’assurer que toutes les pages sont bien tagguĂ©es ;
  • Le nombre d’avis/commentaires des produits sur un site de e-commerce ;
  • La date de publication et/ou l’auteur des articles ;
  • Le type de page (Ă©dito, listing, galerie, etc.) via les classes CSS ;
  • Le nombre de produits dans une liste ;
  • Etc.

Emplacement des liens

Une fonctionnalitĂ© rĂ©cente permet d’identifier la position d’un lien par rapport aux balises HTML qui l’englobe. On pourra ainsi vĂ©rifier pour le maillage d’une page, l’emplacement des liens vers cette derniĂšre. Cela s’avĂšrera utile pour mettre en avant des pages maillĂ©es uniquement via le menu, le footer, ou encore le contenu central d’une page.

Emplacement des liens relatifs Ă  une URL

Il est possible de configurer en fonction des sites les emplacements des liens par rapport à des balises spécifiques (Menu Configuration > Custom > Link position) :

Paramétrage de la fonction "Link position"

Pour cibler un <div> ayant une classe particuliùre (ex : <div class=mobile-menu>), il est possible d’utiliser directement le nom de la class dans la configuration. Attention, les termes de recherche permettent un classement par ordre d’affichage, il faut donc veiller à utiliser les ciblages les plus larges en bas du tableau (et les plus stricts en haut).

Attention, cette fonctionnalitĂ© Ă©tant gourmande en ressources lors du crawl, elle peut ĂȘtre dĂ©sactivĂ©e si besoin.

Connexions aux API

Contrairement aux paramĂ©trages qui viennent d’ĂȘtre Ă©voquĂ©s, les connexions aux diffĂ©rentes API comme la Search Console ou Google Analytics par exemple, peuvent ĂȘtre configurĂ©es aprĂšs le crawl si nĂ©cessaire. En effet, l’onglet API de la colonne de droite de l’outil permet de requĂȘter les API en fonction des URL crawlĂ©es a posteriori :

Les résultats se retrouveront ensuite dans des onglets spécifiques :

Onglets relatifs aux API

Restrictions liées aux URL

Respect ou non du robots.txt

En respectant le fichier robots.txt, certaines URL qui ne sont pas encore restreintes dans ce dernier peuvent complexifier le crawl. On peut donc dans ce cas forcer un robots.txt spĂ©cifique afin de simuler une configuration future (ou encore Ă©craser le robots.txt d’un site de prĂ©prod qui serait en « Disallow:/ ») :

Surcharge du robots.txt

A l’inverse, cette fonction permettra Ă©galement de rendre crawlable des URL initialement bloquĂ©es pour faire des projections sur l’ouverture d’un moteur Ă  facette par exemple.

RĂ©Ă©criture d’URL

Pour aller plus loin dans la manipulation des URL Ă  crawler, notez qu’il est Ă©galement possible de rĂ©Ă©crire des URL Ă  la volĂ©e. On pourra supprimer certains paramĂštres d’URL (ex : URL de tracking interne pour combiner les signaux relatifs au nombre de liens entrants), et effectuer des modifications via des expressions rĂ©guliĂšres (sur un site de prĂ©prod avec des liens vers le site de prod, cela peut s’avĂ©rer trĂšs pratique).

URL Rewriting

Par exemple, pour un site qui contiendrait encore de nombreux liens de la version HTTP vers HTTPS, les redirections 301 de HTTP vers HTTPS pourrait fausser l’interprĂ©tation des rĂ©sultats relatifs aux codes rĂ©ponse (avec de nombreuses 301 liĂ©es Ă  la version HTTP). Vous pourrez donc ainsi faire abstraction de cette problĂ©matique (exemple : si les liens sont en cours de modification par les dĂ©veloppeurs) en rĂ©Ă©crivant les URL Ă  la volĂ©e (Menu Configuration > URL Rewriting > Onglet Regexp Replace) :

 

On remplace ainsi toutes les URL dĂ©couvertes en HTTP par des URL en HTTPS , ce qui permettra d’avoir une bonne vision des codes rĂ©ponses hormis cette problĂ©matique.

Dans le cas d’un crawl avec rendu JS, toutes les URL contenant un # seront crawlĂ©es. Les moteurs ne tenant pas compte du hash (#), il sera recommandĂ© dans ce cas de ne pas les crawler pour regrouper les diffĂ©rents signaux Exemple : /url-a#content et /url-a#top pourront ĂȘtre considĂ©rĂ©s comme une seule et mĂȘme URL « /url-a » :

Suppression du hash dans les URL

Sauvegarde de la configuration

Comme vous avez pu le constater, la configuration d’un crawl peut parfois s’avĂ©rer complexe, et demande de nombreux rĂ©glages prĂ©alables. Cette tĂąche pouvant ĂȘtre fastidieuse, il est heureusement possible de sauvegarder la configuration :

Sauvegarde de la configuration d'un crawl

 

Avec tout cela, vous devriez maintenant avoir un outil de crawl trĂšs bien configurĂ© par rapport Ă  vos besoins. Nous verrons dans le prochain article, le mois prochain, l’utilisation de fonctions d’analyses spĂ©cifiques, ainsi que la façon dont les rĂ©sultats doivent ĂȘtre exploitĂ©s : l’outil ne fait pas tout, il faut bien savoir interprĂ©ter les donnĂ©es ! À trĂšs bientĂŽt et bon crawl !

 

Aymeric Bouillat, Consultant SEO senior chez Novalem (https://www.novalem.fr/)

 

Â