Un nouveau cycle va commencer pour moi en Août où je rejoins les équipes d’OnCrawl à Bordeaux en tant que Directeur Produit. C’est un changement qui me permettra de garder la data science comme élément de mon quotidien.
Pour la communauté SEO, je viens de créer un nouveau projet Open Source sous la forme d’un package R fraichement nommé « oncrawlR » qui permet de récupérer toutes les données enrichies des logs et des crawls par OnCrawl.
Mon objectif est d’écrire une série d’articles pour vous dévoiler l’utilisation de la Data-SEO avec tous les produits OnCrawl.
OnCrawl propose de nombreux produits:
- Un crawler sémantique en mode SaaS qui visite et analyse toutes les pages de votre site pour vous fournir des informations enrichies sur le contenu, l’indexation, le maillage interne, la performance, l’architecture, les images, et beaucoup d’autres sujets du SEO technique.
- Un analyseur de logs qui permet de comprendre comment Google se comporte sur chacune des pages d’un site.
- Une Data Platform qui permet de croiser des données tierces (logs, backlinks, analytics, csv, search console) avec les données de crawl pour comprendre leurs impacts sur le trafic d’un site. Elle comprend également les outils pour interroger et analyser l’ensemble des données brutes, comme le Data Explorer que je vais citer plus loin.
- OnCrawl Developer : un accès à toutes les données enrichies d’OnCrawl via une API, sans restriction afin de construire vos propres analyses et visualisations des données ou intégrer les données dans votre Datamart SEO.
4 articles pour booster votre SEO
- Dans le premier article, nous allons donc utiliser ce nouveau package OncrawlR qui permet de récupérer des métriques très intéressantes et voir comment faire du sur-mesure.
- Ensuite dans un second article, je vais vous proposer plusieurs méthodes pour clustériser vos URLs.
- Puis dans un troisième article, nous étudierons comment utiliser la data science pour prioriser de façon très efficace.
- Enfin dans le dernier article, ça sera très opérationnel car nous verrons comment produire un PowerPoint ou un Word avec tous les éléments précédents.
Un peu de R ?
R est un langage dédié aux statistiques et à la science des données.
Les datascientists l’utilisent tous les jours pour réaliser des traitements complexes sur de gros volumes de données.
C’est un langage informatique dont la prise en main nécessite peu de temps. Sur mes formations DATA MARKETING LABS, les débutants deviennent autonomes en une journée. (modification et lancement de scripts SEO, lecture et écriture de fichiers, utilisation de packages, …)
Pour les puristes du Python, ne vous inquiétez pas, je vais tout refaire aussi en Python.
Installation du Package
Il faut écrire ces deux lignes de code dans la console de RStudio
library(devtools)
devtools::install_github("voltek62/oncrawlR")
Le package est désormais installé sur votre machine ou serveur et prêt à l’emploi.
Utilisation
Pour commencer à récupérer des données OnCrawl via l’API, il vous faut 4 éléments :
- Un abonnement à Oncrawl Business, avec l’option payante d’accès à l’API.
- Votre clé d’API : c’est un identifiant unique qui vous permet de vous authentifier auprès de l’API OnCrawl. Dans la partie suivante, vous allez voir comment la récupérer.
- Le langage R et le logiciel R Studio installés sur votre ordinateur.
- Le package R oncrawlR : là aussi, tout sera détaillé dans les étapes suivantes.
Où récupérer sa clé d’API OnCrawl ?
Une fois que vous avez votre compte OnCrawl Business, allez sur
la page https://app.oncrawl.com/account/access-tokens et cliquez sur le bouton « ADD API ACCESS TOKEN ».
Une page s’ouvre avec votre clé d’API OnCrawl. Elle sera à utiliser avec le package oncrawlR ci-dessous.
Voilà ! Vous êtes prêt à récupérer toutes les données enrichis via l’API de OnCrawl.
Utiliser l’API de OnCrawl avec le package R
Il suffit de charger le package avec la ligne suivante puis de créer un fichier texte nommé « oncrawl_configuration.txt » à la racine de votre projet.
library(oncrawlR)
key = VOTRECLE
debug = FALSE
api = https://app.oncrawl.com/api/v2/
oncrawlR comporte pour le moment 4 fonctions dont initAPI, listProjects, listPages, listLogs
- initAPI
Cette fonction permet de tester et initialiser l’API. Elle retourne « ok » si votre clé est correcte.
initAPI("oncrawl_configuration.txt")
- listProjects
Cette fonction permet de récupérer toutes vos projets mais surtout les ID des derniers crawls.
listProjects <- listProjects()
- listPages
Cette fonction permet de récupérer toutes les pages crawlées. Il faut passer un argument qui représente l’identifiant du crawl.
pages <- listPages(crawlId)
pages_fetched <- filter(pages,fetched=="True")
- listLogs
Cette fonction permet de récupérer toutes les données dans les logs. Il faut passer un argument qui représente l’identifiant du projet. Il est important de s’assurer de la bonne réception des logs pour pouvoir utiliser cette fonction.
logs <- listLogs(projectId)
Voici le code complet pour tester le package R
library(jsonlite)
library(RCurl)
library(dplyr)
# init API
initAPI("oncrawl_configuration.txt")
# list projects
listProjects <- listProjects()
# select specific lists
projects <- lapply(
listProjects,
function(x) c(x['id'],x['name'],x['domain'],x['last_crawl_id']
,x['log_monitoring_data_ready'],x['log_monitoring_processing_enabled'],x['log_monitoring_ready'])
)$projects
projects <- as.data.frame(projects, stringsAsFactors = F)
# get one of your last crawl with log monitoring
projectId <- projects$id[1]
crawlId <- projects$last_crawl_id[1]
# get your crawled pages
pages <- listPages(crawlId)
pages_fetched <- filter(pages,fetched=="True")
Utiliser DataExplorer
Dans le domaine de la data-science, on peut passer 80 % du temps à préparer les données. Ce qui est complétement faux, quand nous avons les bons outils comme le package R « DataExplorer » si peu connu mais si utile ou le Data Explorer d’OnCrawl qui est intégré à la plateforme.
Le Data Explorer d’OnCrawl permet d’accéder à la donnée brute pour faire des analyses pointues dans l’application. Si vous souhaitez vous documenter sur cette feature, vous pouvez consulter l’aide de l’application (en anglais), regarder le tutoriel (en anglais) ou lire la présentation de la feature.
Revenons désormais au package R « DataExplorer ».
Je l’utilise dans toutes les analyses de données que j’effectue et en quelques minutes, on peut analyser et préparer une base de données avec 100 millions de lignes pour 150 colonnes.
DataExplorer permet de faire cela
avec quelques fonctions.
Sans rien savoir des données, mes trois premières tâches sont presque toujours
:
library(DataExplorer)
## Découvrir les valeurs manquantes
plot_missing(pages_fetched)
## Analyser chaque variable discrète et de catégorie
plot_bar(pages_fetched)
## Analyser chaque variable continue
plot_histogram(pages_fetched)
Chaque site n’a pas l’utilité de toutes les variables donc vous allez rapidement identifier ce qui n’est pas pertinent. Ensuite, vous pouvez aussi avoir un rapide état des lieux.
Pour rappel, il y a trois grands types de variable : les variables continues qui sont des variables numériques ayant un nombre infini de valeurs entre deux valeurs.
Alors que les variables discrètes sont des variables numériques avec des valeurs dénombrables entre deux valeurs.
Après, il y a aussi les variables de catégorie plus simple à comprendre car elles ont un nombre fini de catégories ou de groupes distincts.
Avec les 3 fonctions précédentes, vous allez identifier les données manquantes et connaitre la distribution des variables discrètes, de catégorie et continues.
Après examen, la variable status_code est discrète, et je veux la retransformer en valeur discrète avec un as.factor
pages_fetched$status_code <- as.factor(pages_fetched$status_code)
OnCrawl propose déjà beaucoup de variables discrètes mais vous pouvez en créer des nouvelles. Il suffit d’utiliser la fonction cut_interval qui divise en autant de groupes que vous le souhaitez.
for (col in c("num_h2"))
pages_fetched[[paste0(col, "_d")]] <- as.factor(ggplot2::cut_interval(pages_fetched[[col]], 2))
Ici pour le nombre de H2, nous coupons le groupe en 2.
Je vais avoir les URLs avec de 0 à 5 H2 et les URLs avec plus de 5 H2 mais les URLs en NA, c’est à dire sans H2
plot_bar(pages_fetched$num_h2_d)
À ce stade, nous comprenons beaucoup mieux la distribution des données.
On peut aussi comparer la variable load_time_range à toutes les autres variables afin de construire un modèle pour la prévoir. Mais nous allons voir une méthode beaucoup plus efficace dans l’article 3.
plot_boxplot(pages_fetched, by = "load_time_range")
Mission accomplie
Désormais vous avez un package pour récupérer les données enrichies de l’API Oncrawl et un package pour travailler vos données. Dans l’article suivant, vous allez découvrir plusieurs méthodes pour clustériser vos URLs car il est important de suivre l’intégrité de ces données par rapport aux catégories qui convertissent le plus.