Extraire la racine et le nom de domaine d'une URL avec Google Sheets (+TEMPLATE) + ...+....
3 techniques pour filtrer les données Search Console sans quitter la page
Table des matiĂšres
Avant d'entrer dans le vif du sujet, je tenais Ă te signaler la sortie de mon outil gratuit XPATH4SEO.
C'est une base de données d'expressions XPath classées par catégorie : contenu, liens, microdonnées, balises meta, etc.
L'objectif : te faire gagner du temps dans l'extraction de données SEO en n'ayant plus qu'à copier/coller le bout de code correspondant à ton besoin. Bon scraping !
Toi aussi, parfois, tu aimerais pouvoir filtrer les données Search Console (clics, impressions, etc.) directement depuis l'interface de l'outil, sans passer par un export CSV ou Google Sheets qui te rajoute des clics superflus ?
Par exemple, pour isoler les requĂȘtes avec beaucoup d'impressions et peu de clics ?
Alors oui, c'est vrai, il y a des filtres dans la Search Console. Le problĂšme, c'est qu'aucun d'eux ne permet de manipuler les valeurs de clics, d'impressions, ou de position moyenne.
Du coup, comment faire ?
Et bien, je me suis penché sur la question et je te propose 3 techniques simples que tu vas pouvoir utiliser dÚs aujourd'hui.
1Ăšre solution : le plugin XPath Helper
XPath Helper est une extension que j'utilise depuis pas mal d'années maintenant et qui me fait gagner un temps fou sur toutes sortes d'opérations de scraping.
Ici, je vais l'utiliser pour surligner les données qui m'intéressent dans le rapport Search Console.
Une fois que tu as installĂ© l'add-on, appuie sur CTRL ⇧ X
pour ouvrir le layer en haut de page.
Le fonctionnement est le suivant : Ă gauche tu tapes ta requĂȘte XPath, Ă droite tu rĂ©cupĂšres les rĂ©sultats. Et en bonus, ce que tu sĂ©lectionnes avec XPath apparaĂźt en fond jaune dans la page.
Pratique, non ?
Bon. Attaquons la construction de la requĂȘte XPath.
En inspectant le DOM, on remarque que les valeurs de clics, d'impressions, de CTR et de position du rapport Performances de la Search Console sont affichées à la fois :
- dans des balises <td> (ce qu'on voit Ă l'Ă©cran)
- dans des data attributes nommés ici
data-numeric-value
(ce qu'on ne voit pas Ă l'Ă©cran)
J'ai donc le choix entre ces 2 options pour récupérer les données.
Je vais choisir l'option data attributes car les valeurs sont stockĂ©es sous forme de nombres et non de chaĂźnes de caractĂšres. Ăa va m'aider pour la suite.
Admettons que je cherche tous les mots-clés avec "moins de 10 clics, plus de 100 impressions et un ranking minimum de 10".
La requĂȘte XPath correspondante sera la suivante :
//tbody/tr[td[2][@data-numeric-value<=10] and td[3][@data-numeric-value>=100] and td[5][@data-numeric-value>=10]]
Explications :
//tbody/tr
: je cible les lignes du tableautd[2][@data-numeric-value<=10]
: dont la 2Ăšme cellule (td[2]
), celle correspondant aux clics, a un attributdata-numeric-value
ayant pour valeur un nombre inférieur ou égal à 10and td[3][@data-numeric-value>=100]
: ET dont la 3Ăšme cellule (td[3]
), celle correspondant aux impressions, a un attributdata-numeric-value
ayant pour valeur un nombre supérieur ou égal à 100and td[5][@data-numeric-value>=10]
: ET dont la 5Ăšme cellule (td[5]
), celle correspondant Ă la position moyenne, a un attributdata-numeric-value
ayant pour valeur un nombre supérieur ou égal à 10
Bien entendu, tu peux modifier les valeurs en gras selon ton besoin.
2Ăšme solution : la console Chrome
Au lieu d'utiliser un plugin, on peut Ă©galement arriver au mĂȘme rĂ©sultat en passant par la console de Google Chrome.
Je vais utiliser une petite fonction Chrome bien pratique qui permet de sélectionner des éléments correspondants à une expression XPath : $x
.
La documentation de cet utilitaire est disponible ici : https://developer.chrome.com/docs/devtools/console/utilities/#xpath-function
Il me suffit :
- d'ouvrir la console (raccourci
⌘ ⌥ I
) - d'utiliser la fonction
$x(path)
en passant en argument mon expression XPath - de boucler sur chacun des éléments HTML récupérés à l'étape 2 en leur ajoutant un background jaune
Ce qui donne :
var results = $x('//tbody/tr[td[2][@data-numeric-value<=10] and td[3][@data-numeric-value>=100] and td[5][@data-numeric-value>=10]]');
for(var i = 0; i < results.length; i++) {
results[i].style.background = "yellow"
};
3Ăšme solution : un bookmarklet
Allez, je suis sûr qu'au fond de toi tu l'attendais, ce petit bookmarklet !
Bah oui, pourquoi pas lancer un bookmarklet pour aller encore plus vite ?
PlutÎt que de surligner les éléments, je vais cette fois supprimer du DOM tous les mots-clés qui ne correspondent pas à ma recherche. L'objectif étant d'avoir un vrai effet de filtre sur la page.
Le fonctionnement du bookmarklet est le suivant :
- j'entre mes valeurs dans un
prompt
, chaque valeur Ă©tant sĂ©parĂ©e par une virgule. Par exemple, pour les requĂȘtes "Ă moins de 10 clics, plus de 100 impressions et une position moyenne supĂ©rieure Ă 10", je saisis :<10,>100,>10
- je découpe la valeur de retour et je stocke chaque donnée (clics, impressions, position) dans une variable dédiée
- je cherche dans le DOM les éléments ne correspondant pas à mon expression XPath (je génÚre ce XPath dynamiquement, en utilisant les variables déclarées précédemment)
- je stocke le résultat dans un array
- je boucle sur cet array en supprimant du DOM chacun des éléments
- je fais sauter la limite de 10 lignes pour afficher tous les résultats d'un coup
à noter qu'il faudra rafraßchir la page si tu souhaites créer un nouveau filtre.
Et hop, le petit bookmarklet qui va bien, Ă glisser dans tes favoris ↓
Extraire la racine et le nom de domaine d'une URL avec Google Sheets (+TEMPLATE)
Table des matiĂšres
Aujourd'hui, je te partage un petit tuto pour récupérer la racine et le nom de domaine (ou sous-domaine) d'une URL dans Google Sheets.
C'est toujours intéressant d'avoir ça sous le coude, notamment pour des analyses de backlinks, de domaines expirés, de SERPs, etc.
Si tu veux avoir accĂšs directement au template, c'est tout en bas ↓
Extraire la racine
Formule
Explications
Pour obtenir l'URL racine (root URL), je vais utiliser deux fonctions : LEFT
et FIND
.
En gros, l'idée c'est de sélectionner tout ce qui se trouve à gauche du 1er slash dans l'URL, sans compter les 2 slashs derriÚre le protocole HTTP.
Je cherche tout d'abord à déterminer la position du slash avec la fonction FIND
. Pour éviter de sélectionner l'un des slashs contenus dans http:// ou dans https://, je passe en 3Úme paramÚtre de FIND
le nombre de caractĂšres Ă partir duquel commencer la recherche.
https:// = 8 caractĂšres.
Il faut donc que je commence Ă 8+1 = 9.
Ce qui donne : =FIND("/";A2;9)
.
C'est bon, je connais la position du slash.
Je peux maintenant utiliser la fonction LEFT
en lui passant cette position en 2Ăšme paramĂštre. Objectif : afficher tout ce qui se trouve avant le slash.
Ce qui donne donc : =LEFT(A2;FIND("/";A2;9))
.
Si je veux supprimer le slash de fin, il suffit d'enlever 1 caractÚre au résultat de FIND
: =LEFT(A2;FIND("/";A2;9)-1)
.
Extraire le domaine ou sous-domaine
Formule
Explications
Ici c'est plutĂŽt simple : je vais remplacer la chaĂźne http://
(ou https://
) de l'URL racine par... rien.
J'utilise donc la fonction REGEXREPLACE
avec une expression réguliÚre dont la petite subtilité est de rendre le "s" optionnel avec le quantificateur ?
.
Sans oublier bien entendu d'Ă©chapper les deux points et les slashs.
Et voilĂ !
Tu peux télécharger le template Google Sheets en cliquant sur le bouton ci-dessous.
Commentaires
Enregistrer un commentaire
đ Hello,
N'hĂ©sitez pas Ă commenter ou vous exprimer si vous avez des trucs Ă dire . . .đ