SEO

#SEO Créer votre maillage interne sémantique avec @visiblis et #R – Tutorial sur #Starwars – Partie 2


banniere data seo labs

Voici comme promis mon second article sur la mise en place d’un maillage interne sémantique spécial Star Wars. Nous avons vu comment choisir les pages supports, désormais nous allons déterminer les pages objectifs et associer des mots clés à partir de Visiblis.

logo star wars

Étude de cas
Je vais utiliser le site d’un ami fan de Science Fiction qui a de nombreux articles dédiés à Star Wars : Scifi-universe.com
Voici un aperçu du site : http://www.similarweb.com/website/scifi-universe.com#overview

Google connait très bien son contenu d’actualité mais ses pages dédiées à Star Wars ont beaucoup de mal à se positionner malgré son expertise sur le sujet.
Je vais créer un outil sur mesure qui l’aidera à mettre un maillage interne sémantique dédié à Star Wars.

Episode 2 : Choix des pages objectifs
Commencez  par identifier un ensemble de pages de qualité qui répondent aux besoins des internautes :
On cherche les pages les plus proches sémantiquement avec :

  • le moteur de recherche interne
  • Google

Utilisons le moteur de recherche du site pour commencer :
http://www.scifi-universe.com/recherche?searchterm=star+wars

Vous pouvez extraire les urls avec le plugin chrome Xpath Helper et la requête xpath suivante : //h3/a/@href

xpath href

Utilisons désormais Google avec la requête suivante :
site:scifi-universe.com « star wars »
On procède de la même façon avec la requête xpath suivante : //h3[@class=’r’]/a/@href

Screen Shot 12-14-15 at 11.07 PM

Voici donc la liste que l’on obtient en quelques minutes.
Screen Shot 12-14-15 at 10.59 PM

Pour mesurer rapidement si vos pages objectifs sont optimisées, vous pouvez utiliser Visiblis. Il ne sert à rien de chercher la suroptimisation, cherchez simplement à montrer votre expertise sur le sujet.

Visiblis est un suite de logiciels sémantiques qui permet de mieux écrire ses contenus et ses titres tout en optimisant son maillage et page rank sémantique. Je trouve qu’il s’agit du meilleur outil SEO sémantique du moment pour ceux qui débutent ou qui n’ont pas de besoins trop complexes ( site avec plus de 100 000 urls à analyser, contenus trop long, encodage spécial , pages en anglais, sites en javascript… )  : http://www.visiblis.com

Il faut bien entendu retirer tous les doublons, si vous n’utilisez pas R, un simple tri alphabétique dans Excell vous permet de les identifier rapidement.

Avec Visiblis, vous avez TitrAlyser et TextAlyser.
Vous devez juste indiquer votre titre et la requête ( ici : star wars )

titranalyser star wars

Si vous avez de nombreuses pages objectifs, je vous conseille d’utiliser l’API qui reste très simple d’utilisation mais limitée à son adresse IP pour des raisons de sécurité.

Voici ma fonction pour analyser chacune des pages objectifs.

visiblisKey <- "MY_KEY"

visiblisGetInfoUrl <- function(u,req,lang) {
 u <- url_encode(u)
 url <- paste("http://api.visiblis.com/v2/affinite.php?key=",visiblisKey,"&req=",req,"&url=",u,"&lng=",lang,"&fmt=json",sep="")
 req <-getURL(
 url,
 httpheader = c(
 "accept-encoding" = "gzip"
 ) 
 );
 result <- fromJSON(req)
 return(result)
}

##conf
site <- "http://www.scifi-universe.com"
idAnalytics <- "144342"
path_csv <- "./liste-page-objectifs.csv"
#get all data
result_all <- read.csv(path_csv, header=TRUE, sep = ";", encoding='UTF-8')
for (row in 1:nrow(result_all)) { 
 current <- toString(result_all$Url[row]) 
 print(current)
 visiblis <- visiblisGetInfoUrl(current,"star wars","fr")
 result_all$Quality_Title[row] <- visiblis$as_titre
 result_all$Quality_Page[row] <- visiblis$as_page
 #result_all$Organic_Searches[row] <- analyticsGetOrganicSearchesbyUrl(site,current,idAnalytics,"2015-07-01","2015-11-27")
 #result_all$ScoreMobileFriendly[row] <- getScoreMobileFriendly(current)
}
write.table(result_all, file = "./results-page-objectif.csv", sep = ";")

Ensuite, une fois ce premier tri effectué, je vous conseiller de croiser avec les volumes SEO et l’indice Mobile Friendly.
J’ai mis en commentaire ces fonctions qui restent du « nice to have »

En R, j’obtiens le tableau suivant que je sauvegarde dans :  results-page-objectif.csv
Dans l’idéal, il vous faut des pages des scores supérieurs à 80 pour chacun des facteurs, si cela n’est pas le cas, il faut revoir :

  • le titre
  • la balise H1
  • le texte

etude top pages

Désormais, j’ai une bonne idée des pages que je vais sélectionner et des pages qu’il va falloir retravailler à partir du corpus que j’aborde ci-dessous.

Choix des ancres texte
Là, j’ai utilisé le corpus « star wars » généré par Visiblis

corpus starwars

Si vous observez rapidement le corpus, il existe pas mal de bruit ( mots clés sans intérêt, … )  donc j’utilise souvent TreeTager pour filtrer les expressions. Treetager est un outil qui permet d’annoter un texte avec des informations de type : noms, verbes, infinitifs et particules mais aussi des informations de lemmatisation.  Je ne vais pas détailler son installation, mais si vous me le demandez en commentaires, cela peut faire l’objet d’un nouvel article. Il est important en SEO de savoir lemmatiser ses expressions.

Désormais il faut associer les mots clés avec nos pages objectifs.

Je définis une liste de stopwords qui ont peu d’intérêt.
stopwords <- c(« star », »populaires », »top », »derniers », »staff », »jeux », »jeu », »top staff », »the »)

Ensuite, je vais générer plusieurs fois les résultats et ajouter progressivement les stopwords pour avoir des ancres cohérentes avec le contenu de la page objectif

result_all <- read.csv("liste-page-objectifs.csv", header=TRUE, sep = ";", encoding='UTF-8') %>%
 mutate(Anchor1="",Anchor2="",Anchor3="")

for (row in 1:nrow(result_all)) { 
 current <- toString(result_all$Url[row]) 
 
 #on retire les mots clés qui apporte peu d'informations ou trop fréquent
 stopwords <- c("star","populaires","top","derniers","staff","jeux","jeu","top staff","the",
 "bande","acheter","hauts","nouvel","of","super")
 
 keywords <- visiblisGetInfo(current,"fr",stopwords)

 if (length(keywords)>=1)
 result_all$Anchor1[row] <- keywords[1]
 if (length(keywords)>=2)
 result_all$Anchor2[row] <- keywords[2]
 if (length(keywords)>=3) 
 result_all$Anchor3[row] <- keywords[3]
}
write.table(result_all, file = "results-page-objectifs2-anchortext.csv", sep = ";")

Je vous donne aussi ma fonction qui interroge l’API Visiblis et qui retire les stopwords.
J’ai limité aussi à une requête toutes les deux secondes pour éviter de trop solliciter le serveur.

# get keywords
visiblisGetInfo <- function(url,lang,stopwords) {
 u <- url_encode(url)
 Sys.sleep(2)
 url <- paste("http://api.visiblis.com/v2/affinite.php?key=",visiblisKey,"&url=",url,"&lng=",lang,"&fmt=",visiblisFormat,sep="")
 
 req <-getURL(
 url,
 httpheader = c(
 "accept-encoding" = "gzip"
 ) 
 );
 
 result <- fromJSON(req)$keywords
 result <- do.call(rbind.data.frame, result)
 colnames(result) <- c("importance")
 result$keyword <- rownames(result)
 
 for (row in 1:length(stopwords)) { 
 result <- filter(result, !grepl(stopwords[row],keyword))
 }
 
 return(result$keyword)
}

Vous devez arriver à ce résultat.

page objectif star wars

Conclusion
C’est la fin de l’épisode 2 et normalement, vous devez avoir votre liste de pages objectifs associées à des mots clés.

Visiblis permet de faire gagner beaucoup de temps en générant un corpus selon les mots clés définis.
J’ai détecté que certaines urls utilisés proviennent de Wikipedia mais vous pouvez aussi générer votre propre corpus en indiquant vos urls et là je pense que le résultat peut être encore meilleur.

Dans le prochain épisode, vous allez découvrir comment répartir ces liens sur l’ensemble de vos pages support avec différents algorithmes en R, je vais aussi aborder la mise à jour de ce maillage et comment visualiser le maillage interne sémantique.

logo star wars

Que la force soit avec vous ! La suite au prochain épisode

Crédits photo : Starwars

 

Laisser un commentaire

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