Exploitez les données de l’API Search Console avec R

La Google Search Console est sans doute l’un des outils les plus puissants pour évaluer la visibilité de vos contenus sur le web. Je ne vais pas vous faire un exposé sur ses fonctionnalités, mais plutôt vous guider sur l’utilisation que nous pouvons en tirer pour analyser le positionnement SEO de nos pages. Pour cela, nous allons exploiter les possibilités du langage R avec RStudio et le package searchConsoleR de Mark Edmonson.

Pourquoi exploiter l’API Search Console avec R ?

Tout simplement car, même en étant un outil puissant pour mesurer sa visibilité, la Search Console ne nous permet pas d’évaluer de manière exhaustive la visibilité de nos pages sur un ensemble de requêtes. Recouper ces données nous permettra ainsi de mieux évaluer sur quelles pages performent les requêtes que nous souhaitons cibler et quelles sont leurs indicateurs d’impression, de clics et de position moyenne.

Nous allons donc nous concentrer sur deux dimensions principales: les pages et les requêtes. Notez qu’il est également possible d’ajouter les dimensions type de device (desktop ou mobile) ainsi que la zone de géographique.

Voici comment nous allons procéder.

#1 – Installation et appel de la librairie searchConsoleR

Ce script se base principalement sur le package searchConsoleR créé par Mark Edmonson. Je vous invite d’ailleurs vivement à consulter ses travaux.

La première étape consistera à installer et appeler la librairie searchConsoleR. Pour cela, notre script devra dans un premier temps vérifier si le package est installé, l’installer si ce n’est pas le cas puis l’appeler.

# Appel des libraries et installation des libraries nécessaires
librairies <- c("searchConsoleR")
newLibrairies <- librairies[!(librairies %in% installed.packages()[,"Package"])]
if(length(newLibrairies)) install.packages(newLibrairies)
require(searchConsoleR)

#2 – Authentification de l’API

La librairie searchConsoleR vous permet de vous authentifier à l’API Search Console de multiples manières: par une clé de service .json, avec des identifiants ou grâce à une connexion oauth en ouvrant votre navigateur. Afin de pouvoir tester rapidement ce script, nous allons opter pour cette solution.

# Déclaration des scopes
options(googleAuthR.scopes.selected = "https://www.googleapis.com/auth/webmasters")
googleAuthR::gar_auth()

Cette commande ouvre votre navigateur et vous donne accès à un code. Copiez-collez celui-ci dans votre console R.

#3 – Paramétrage de l’appel de l’API Search Console

Nous allons définir une multitude de variables qui vont nous permettre de cadrer les requêtes que nous allons extraire de la Google Search Console

  • Le site web que nous allons analyser: dans ce cas, Roads Hiking, mon site de conseils et guides de randonnée pédestre.
  • Début et fin de la période d’analyse : on va se baser sur une période de 90 jours. Notez que la période de fin ne peut être inférieure à 3 jours.
  • Les dimensions que nous pouvons extraire: ici les pages et les requêtes liées à chacune.
  • Le type de recherche: dans notre cas, nous allons nous concentrer sur les recherches de type desktop… mais vous pouvez aussi ajouter les recherches mobile.
# Déclaration du site web
searchConsole_Website <- "https://www.roads-hiking.fr/"

# Données accessibles à J-3 minimum
start <- Sys.Date() - 93 # on démarre 93 jours avant (prise en compte du délai de 3 jours)
end   <- Sys.Date() - 3

# Dimensions à télécharger: data, query, page, device, country
searchConsole_Dimensions <- c('page', 'query')

# Type de recherche à la search console
searchConsole_Type <- c('web')

#4 – Lancement de la requête et traitement des données

Une fois vos données renseignée, vous n’avez plus qu’à lancer la fonction search_analytics de searchConsoleR. Cette dernière ira consulter l’API Search Console afin de vous renvoyer vos données de visibilité. Cette fonction vous retourne un data frame que nous allons stocker dans notre environnement global sous le nom df_searchConsole.

# Requête à l'API Search Console
df_searchConsole <- search_analytics(siteURL = searchConsole_Website,
	startDate = start,
	endDate = end,
	dimensions = searchConsole_Dimensions,
	searchType = searchConsole_Type,
	rowLimit = 5000) # Cette mention est nécessaire pour pouvoir dépasser la limite des 1000 résultats par requête

Vous obtenez un data frame contenant toute les données de visibilité.

Data frame search console API

L’ensemble des données collectées par l’API Search Console se présente sous la forme d’un data frame.

A vous désormais d’exploiter ces données, d’affiner vos requêtes et d’y apporter la granularité nécessaire pour développer vos analyses. Je vous invite également à imaginer toutes les possibilités que vous pourriez identifier en recoupant ces données de visibilités avec d’autres metrics: trafic, qualité web, crawl rate des bots, pagerank interne… a vous d’identifier désormais toutes les possibilités qui s’ouvrent à vous.