SEO

OnCrawl : Segmentation avancée d’un site Web


Nous venons de voir comment récupérer les données des logs et des crawls avec un guide complet de l’API OnCrawl en R. Maintenant, nous allons voir comment travailler ses données sur les segments qui convertissent le plus. Il existe déjà de l’aide sur comment personnaliser sa segmentation avec OnCrawl, l’article est complet et donne de nombreux moyens pour le faire.

Cette segmentation par URL est très importante car elle va s’appliquer à tous vos rapports (Crawl Reports, Logs Monitoring, SEO Impact Reports, Ranking Reports…). Elle permet de comprendre comment chaque groupe de pages se comporte et de focaliser vos analyses SEO sur les groupes comprenant les pages qui convertissent le plus. Par défaut, OnCrawl vous propose même une segmentation automatique sur vos premiers niveaux d’URLs les plus représentatifs.

Avec ce nouveau package R, vous allez pouvoir créer une segmentation avancée multi-niveaux et en moins de 1 minute.

Configurer sa segmentation avec OnCrawl

Il existe trois façons pour le faire :

  • From existing or import : très pratique pour partager une segmentation entre les projets ou pour importer une segmentation
  • From field automatically : il s’agit de la méthode par fréquence qui peut se limiter au premier niveau
  • From scratch : méthode manuelle
segmentation OnCrawl

Il est très important de construire la segmentation la plus complète possible et l’actualiser à chaque lancement de nouveaux contenus. L’avantage des segmentations est qu’elles évoluent avec le nombre de pages crawlées. Nous allons utiliser la méthode « From existing » qui permet d’importer un fichier JSON qui sera généré par le package R « oncrawlR ».

Il existe trois grandes approches pour segmenter ses URLs

  • Si les URLs du site sont bien construites, une approche par fréquence fonctionne très bien
  • Si les URLs du site sont mal construites, une récupération des fils d’Ariane par page peut suffire.
  • Si le site a toutes ses pages à la racine de l’URL sans aucune logique, un regroupement par similarité sémantique sera la seule solution.

Nous allons nous concentrer sur la première méthode.

Clusterisation par fréquence

La première étape est de récupérer toutes les URLs d’un crawl.

Solution 1

Nous avons vu la méthode avec le package OnCrawl qui permet de le faire en 1 seule ligne de code

pages <- listPages(crawlId)

Solution 2

Mais vous pouvez le faire aussi sans l’API avec un simple export à récupérer à cette adresse.

Ensuite, il faut exécuter le code R suivant pour mettre vos données dans le format attendu, attention n’oubliez pas de remplacer le nom du fichier CSV (export-5acbcdefghi01399752c-custom_query.csv) par le nom de votre fichier CSV.

library(stringr)
library(dplyr)
library(readr)

export_custom_query <- read_delim("export-5acbcdefghi01399752c-custom_query.csv", ";", escape_double = FALSE, trim_ws = TRUE)

pages <- export_custom_query %>%
select(url) %>%
rename(urlpath = url ) %>%
mutate(urlpath= gsub("https://www.scifi-universe.com", "", urlpath))

Décliner toutes les URLs

Mon objectif est de décliner toutes les URLs dans toutes leurs variantes possibles.

Par exemple :
/livres/parutions/mai-2019
devient
– /livres/parutions/mai-2019
– /livres/parutions/
– /livres/

Ainsi les segments les plus fréquents vont souvent se répéter. Parfois, il y aura des segments qui n’existent pas mais ils seront rares et donc n’ont pris en compte dans notre top 15.

Afin de simplifier l’utilisation, j’ai créé la fonction oncrawlSplitURL avec une limite que vous pouvez fixer. Il est important de choisir la limite où vous allez arrêter votre classement. (Ici, par exemple, nous gardons les 25 premiers.)

top <- oncrawlSplitURL(logs$urlpath, 25)
Voici le résultat en 1 ligne de code pour un site avec plus de 300 000 URLs

Désormais, il faut transférer ce résultat au format JSON pour OnCrawl en tenant de conditions complexes. Par exemple ici, le segment « /le-site » ne contient pas le segment « /le-site/equipe » qui est détecté comme un segment à part.

Export JSON vers Oncrawl

Dans le package R, il existe désormais une fonction qui va générer un fichier JSON directement utilisable par OnCrawl. Pour des raisons d’affichage, OnCrawl se limite à 15 segments maximum. Mon code filtre donc votre classement sur les 15 premiers.
Avec la ligne suivants, vous allez créer un fichier nommé « oncrawl_frequency.json » à la racine de votre projet :

oncrawlCreateSegmentation(top$url,"oncrawl_frequency.json")

Il existe ensuite 2 méthodes pour l’intégrer dans OnCrawl

Solution 1 : Upload du fichier JSON généré

Lorsque vous créez votre segmentation, vous cliquez sur « From existing set or import ». Ensuite, il faut choisir « Upload File » et faire un cliquer-déposer du fichier « oncrawl_frequency.json » dans la zone dédiée.

Interface pour uploader votre fichier json

Solution 2 : Copier/coller du code JSON

Lorsque vous créez votre segmentation, vous cliquez sur « From existing set or import ». Ensuite, il faut choisir « Paste JSON » et copier-coller la totalisé du code JSON de « oncrawl_frequency.json » dans la zone dédiée. Attention, à ne pas oublier des accolades ou crochets, sinon cela ne fonctionnera pas.

Pour chaque solution, vous allez pouvoir visionner instantanément le résultat et ça sera directement prêt à l’emploi pour tous vos dashboards.

Interface pour tester votre fichier JSON

Mission accomplie

La configuration est prête !

L’objectif de ce nouveau package R est de vous faire gagner un temps précieux dans vos analyses et surtout d’avoir une segmentation multi-niveaux. Si vous souhaitez aller encore plus loin, vous pouvez tenir compte aussi du nombre de conversions générés par vos pages pour votre classement.

Désormais, nous avons tous les éléments pour faire du Machine Learning et découvrir toutes les métriques à surveiller et à travailler pour augmenter le crawl des bots de Google. Ça sera pour la prochaine fois.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *