e83db60c20f7003ecd0b470de7444e90fe76e6dc18b8194294f1c6_640_programming

Identifier les mots clés à optimiser avec R

R est très pratique pour le traitement de données, nous allons voir un premier exemple de manipulation de données. Dans cet article nous verrons comment charger, filtrer et croiser des données.

C’est parti, on attaque le côté pratique :  le but de cet article est de vous montrer un exemple de ce qu’on peut faire pour travailler son SEO avec R.

Nous allons chercher à identifier les mots clés à optimiser en priorité pour le site http://www.jaime-jardiner.com/.

L’analyse

Nous allons partir d’un suivi de position réalisé avec semrush afin de déterminer l’impact d’un gain de position éventuel sur ces mots clés : c’est la technique du potentiel immédiat

L’objectif est donc de générer une liste des mots clés sur lesquels le gain de position serait le plus profitable en terme de trafic.

Cette liste permettra d’identifier les pages à optimiser en priorité.

Charger les librairies

Les librairies sont une des choses que j’apprécie énormément sur R : elles sont nombreuses utiles et gratuites.

Si je devais en choisir une ce serait DPLYR car elle permet de manipuler les données de la même manière que sur une base de données relationnelle.

A la différence près qu’on peut directement manipuler des fichiers, ce qui évite de devoir créer des tables et des  relations.

library("dplyr")

 

Charger les données issues de Semrush

Nous allons commencer par charger les données dans un dataframe.

# Je charge le fichier de suivi de positions
keywords <- read.csv(file="C:/Users/greg/Documents/data/jaime jardiner/jaime-jardiner.com-domain_organic-fr.csv", header=TRUE, sep=";",encoding = "UTF-8")

# Je garde les colonnes qui m'intéressent 
keywords <- keywords[,c(1,2,4)]

# Je renomme les colonnes
colnames(keywords) = c("keyword","position","searchvolume")
  • Le chargement d’un fichier s’effectue avec la fonction read.csv. Elle possède plusieurs paramètres permettant de définir le format de fichier, l’encodage, les lignes à omettre,…
  • Ensuite on filtre les colonnes qui nous intéressent en spécifiant les numéros des colonnes à conserver
  • La fonction colnames permet de renommer les colonnes

Nettoyer les données

  • Nous allons retirer les mots clés contenant la marque
  • Nous allons également filtrer les mots clés pour ne conserver que ceux qui figurent dans les 15 premiers résultats Google
# Je retire les requêtes marque
keywords <- filter(keywords,!grepl("aime",keywords$keyword))

# Je filtre sur les expressions sous la 15ème position
keywords <- filter(keywords,keywords$position <=15)
  • La fonction filter permet de filtrer les données, soit avec des conditions, soit avec des expressions régulières lorsqu’elle est appelée avec la fonction grepl

Estimer le trafic

Nous allons charger un fichier dans lequel j’ai spécifié le CTR associé à chaque position et nous appliqueront ce CTR pour chaque mot clé pour déterminer le trafic qu’il peut apporter

# Je charge mon fichier de CTR
ctr <- read.csv(file="C:/Users/greg/Documents/data/CTR.txt", header=TRUE, sep="\t",encoding = "UTF-8")

# J'estime le trafic
trafic <- inner_join(keywords,ctr, by="position")

trafic$trafic <- trafic$searchvolume * trafic$ctr 
  • Ce coup çi j’ai chargé un fichier qui avait une tabulation comme séparateur
  • La fonction inner_join me permet de faire une jointure (bref de croiser) mes 2 fichiers.
  • Le paramètre by= me permet de spécifier le ou les champs à croiser
  • Je crée un nouveau champ qui correspond à la multiplication du volume et du CTR

Définir les mots clés à potentiel

Ici nous allons simuler un gain de 2 positions.

D’abord, je fais gagner une position à toutes les requêtes situées en 2ème position. Puis j’en fais gagner 2 aux autres mots clés.

Enfin je regroupe les 2 fichiers

potentiel <- keywords

# Je simule un gain de position

potentielP2 <- filter(potentiel, potentiel$position == 2)
potentielP2$position <- potentielP2$position -1

potentielAutre <- filter(potentiel, potentiel$position > 2)
potentielAutre$position <- potentielAutre$position -2

# Je regroupe mes fichiers
potentiel <- rbind(potentielP2,potentielAutre)
  • La fonction Rbind permet de regrouper 2 dataFrames contenant les mêmes colonnes

Estimer le trafic potentiel

Même exercice que tout à l’heure.

# Je calcule le trafic potentiel
traficPotentiel <- inner_join(potentiel,ctr, by="position")

traficPotentiel$trafic <- traficPotentiel$searchvolume* traficPotentiel$ctr 

Identifier les mots clés à potentiel

Il ne me reste qu’à croiser mes 2 dataFrames et à calculer le gain de trafic pour chaque mot clé.

# Je calcule les top mots clés à optimiser
top <- inner_join(trafic,traficPotentiel,by="keyword")
top$delta <- top$trafic.y - top$trafic.x 

top <- arrange(top, desc(delta))
  • arrange me permet de trier les données

Résultats

Voici le top 5 des mots clés sur lesquels un gain de 2 positions apporterait le plus de trafic.

result

Conclusion

Cette analyse est surtout un prétexte pour vous montrer qu’avec quelques commandes, on peut faire beaucoup de choses.

Certes Excel permettrait de faire à peu près la même chose.

Mais :

  • R permet de faire cette analyse sur une bas d’un million de mots clés. Là ou Excel risque de tousser un peu.
  • Si vous voulez relancer ce traitement sur un autre site ou dans 6 mois, il vous suffit de modifier une ligne de ce script

Et puis ce n’est qu’un point de départ…

On pourrait ensuite optimiser ce script pour crawler les pages d’attérissage pour s’assurer que :

  • Ces pages ne sont pas trop profondes
  • Ces mots clés sont bien présents en H1 et Title
  • La sémantique de la page est optimale
  • ….

Le script complet


library("dplyr")


# Je charge le fichier de suivi de positions
keywords <- read.csv(file="C:/Users/greg/Documents/data/jaime jardiner/jaime-jardiner.com-domain_organic-fr.csv", header=TRUE, sep=";",encoding = "UTF-8")

# Je garde les colonnes qui m'intéressent 
keywords <- keywords[,c(1,2,4)]

# Je renomme les colonnes
colnames(keywords) = c("keyword","position","searchvolume")

# Je retire les requêtes marque
keywords <- filter(keywords,!grepl("aime",keywords$keyword))

# Je filtre sur les expressions sous la 15ème position
keywords <- filter(keywords,keywords$position <=15)

# Je charge mon fichier de CTR
ctr <- read.csv(file="C:/Users/greg/Documents/data/CTR.txt", header=TRUE, sep="\t",encoding = "UTF-8")

# J'estime le trafic
trafic <- inner_join(keywords,ctr, by="position")

trafic$trafic <- trafic$searchvolume * trafic$ctr 

potentiel <- keywords

# Je simule un gain de position

potentielP2 <- filter(potentiel, potentiel$position == 2)
potentielP2$position <- potentielP2$position -1

potentielAutre <- filter(potentiel, potentiel$position > 2)
potentielAutre$position <- potentielAutre$position -2

# Je regroupe mes fichiers
potentiel <- rbind(potentielP2,potentielAutre)


# Je calcule le trafic potentiel
traficPotentiel <- inner_join(potentiel,ctr, by="position")

traficPotentiel$trafic <- traficPotentiel$searchvolume* traficPotentiel$ctr 

# Je calcule les top mots clés à optimiser
top <- inner_join(trafic,traficPotentiel,by="keyword")
top$delta <- top$trafic.y - top$trafic.x 

#Je trie les données
top <- arrange(top, desc(delta))

 

 

4 réflexions au sujet de « Identifier les mots clés à optimiser avec R »

Laisser un commentaire

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