Comment suivre les positions d’une liste de mots clés stratégiques gratuitement grâce à Google Apps Script ?

Comment suivre les positions d’une liste de mots clés stratégiques gratuitement grâce à Google Apps Script ?

Partagez sur vos réseaux sociaux !

Le suivi des positions d’une liste de mots clés stratégiques est un grand classique de l’analyse SEO, c’est même un indispensable, mais faire ce suivi manuellement, à partir de la Google Search Console, est sans aucun doute assez fastidieux.

En effet, si vous vous lancez dans cette tâche, il vous faudra d’abord sélectionner les dates de la période d’analyse et celles de la période de comparaison, puis il faudra faire un export de toutes les données, et pour terminer il faudra utiliser une feuille Excel ou une Google Sheets pour matcher ces données avec votre liste de mots clés stratégiques…

Résultat des courses, pour faire ce travail chronophage, un bon nombre d’entre nous préfèrent investir dans un outil de suivi de mots clés.

En plus d’être pratiques, ces outils présentent l’avantage de vous permettre de suivre les positions de vos concurrents.

Par contre, ils ont deux inconvénients : premièrement, ils ne sont pas gratuits, et deuxièmement, ils se basent le plus souvent sur des estimations plus ou moins justes pour évaluer le trafic des mots clés, plutôt que sur les données « réelles » que peuvent fournir les outils d’analytics.

Bonne nouvelle : grâce à Google Apps Script, vous allez pouvoir récupérer automatiquement, dans une Google Sheets, les données « réelles » de la Search Console pour suivre l’évolution de vos mots clés stratégiques ! Et cela, sans débourser un seul euro 🙂

Je vous explique comment faire dans cet article.

Et comme d’habitude, on va utiliser la méthode que je transmets dans la formation Construire des Dashboards SEO automatisés avec Google Apps Script :

  1. Design du dashboard
  2. Récupération des données via APIs
  3. Mise en forme des données
  4. Affichage des données

Étape 1 : Design du dashboard

La première étape va, comme d’habitude, consister à ouvrir une Google Sheets vierge et à établir le design du dashboard qu’on veut obtenir.

Le dashboard devra permettre de sélectionner les dates d’une période d’analyse et d’une période de comparaison, et il affichera les informations suivantes :

  • Clicks
  • Impressions
  • CTR (%)
  • Position moyenne

Il faudra aussi afficher les évolutions de ces indicateurs en pourcentage (ou en valeur absolue pour la Position moyenne).

On pourra donc construire un dashboard qui ressemblera à ça :

Dashboard Google Search Console  - Google Apps Script - Mots clés stratégiques

Dans la colonne C, on pourra coller les mots clés stratégiques qu’on souhaite analyser, et ensuite il suffira de cliquer sur le bouton « METTRE À JOUR » pour lancer le script de récupération des données.

Vous noterez aussi qu’on pourra utiliser à notre avantage la mise en forme conditionnelle des cellules de la Google Sheets afin de faire mieux apparaître les URLs qui ont des problèmes d’indexation. L’accès à cette fonctionnalité se trouve dans le menu principal : Format >>> Mise en forme conditionnelle.

Étape 2 : Récupération des données via APIs

On passe ensuite à la récupération des données via l’API de la Google Search Console. Cette connexion à la GSC nécessite de passer par le protocole d’autorisation OAuth 2.0, et cela demande de passer 5 minutes à effectuer des paramétrages dans la Google Cloud Platform et Google Apps Script.

Je vous invite donc à jeter un œil à mon article précédent où cette procédure de configuration est décrite en détail.

Maintenant que cette configuration initiale a été effectuée, on va pouvoir commencer à coder notre fonction de récupération des données de la GSC.

Pour ce faire, vous pouvez coller le code suivant dans votre projet Google Apps Script :

function get_GSC_Keywords_Data(property, startDate, endDate, keyword) {
  const oauthToken = ScriptApp.getOAuthToken();
  const siteUrl = encodeURIComponent(property);
  Logger.log(siteUrl);
  const url = 'https://www.googleapis.com/webmasters/v3/sites/'+ siteUrl + '/searchAnalytics/query';
  
  const payload = {
    startDate: startDate,
    endDate: endDate,
    dimensions: [],
    dimensionFilterGroups: [
    {
      groupType: "and",
      filters: [
        {
          dimension: "query",
          operator: "equals",
          expression: keyword
        }
      ]
    }
  ],
  }
  const headers = {
    'Authorization': 'Bearer ' + oauthToken,
    'Content-Type': 'application/json'
  }
  const options = {
    headers: headers,
    method: 'POST',
    payload: JSON.stringify(payload)
  }
  const response = UrlFetchApp.fetch(url, options).getContentText()
  const json = JSON.parse(response)

  Logger.log(json);

  return json
}

Étapes 3 : Mise en forme des données

La prochaine étape consiste à mettre en forme les données qu’on a obtenues dans l’étape précédente au format qu’utilise Apps Script pour remplir les cellules d’une Google Sheets.

Il s’agit d’un tableau de tableaux (array of arrays), par exemple :

[
     ['Mot clé stratégique', 'Clicks', 'Avg. Position'],
     ['vtt electrique', 3792, 5.2]
]

Le code suivant va utiliser l’objet JSON obtenu grâce à la fonction de l’étape précédente pour afficher les KPIs principaux ainsi que leurs évolutions, sur une ligne de notre Google Sheets :

function shape_GSC_Keywords_Data (property, current_startDate, current_endDate, previous_startDate, previous_endDate, keywords) {
  var all_results = [];

  for (var i = 0; i < keywords.length; i++) {
    try {
      var curData = get_GSC_Keywords_Data(property, current_startDate, current_endDate, keywords[i][0]).rows[0];
      var prevData = get_GSC_Keywords_Data(property, previous_startDate, previous_endDate, keywords[i][0]).rows[0];

      all_results.push([
        curData.clicks,
        pct(curData.clicks, prevData.clicks),
        curData.impressions,
        pct(curData.impressions, prevData.impressions),
        curData.ctr,
        pct(curData.ctr, prevData.ctr),
        curData.position,
        curData.position - prevData.position,
      ]);
    }
    catch(e) {
      all_results.push(["-", "-", "-", "-", "-", "-", "-", "-",]);
    }
  }
  Logger.log(all_results);
  return all_results;
}

Étape 4 : Affichage des données

Pour terminer, il ne nous reste plus qu’à écrire une fonction qui va :

  1. « Lire », depuis la Google Sheets, les mots clés stratégiques à analyser,
  2. Afficher dans la Google Sheets les valeurs des KPIs principaux et de leurs évolutions pour chacun de ces mots clés.

Si vous avez créé dans l’étape n°1 le même dashboard que moi, avec ses différents éléments au niveau des mêmes cellules, vous pourrez utiliser le code suivant :

function update_GSC_Keywords_Dashboard() {
  var sheet = SpreadsheetApp.openById(spreadsheetID).getSheetByName('7');

  var property = "https://www.alpha-keita.com/";

  var lastrow = sheet.getLastRow();
  
  var keywords = sheet.getRange('C11:C'+ lastrow).getValues();

  Logger.log(keywords);

  sheet.getRange('F11:M'+ lastrow).clearContent();
  
  var current_startDate = get_Text_Date(sheet, 'H6');
  var current_endDate = get_Text_Date(sheet, 'H7');
  var previous_startDate = get_Text_Date(sheet, 'L6');
  var previous_endDate = get_Text_Date(sheet, 'L7');

  var all_results = shape_GSC_Keywords_Data(property, current_startDate, current_endDate, previous_startDate, previous_endDate, keywords);

  sheet.getRange('F11:M' + (10 + all_results.length)).setValues(all_results);

}

Bien sûr, il vous faudra modifier la ligne « siteUrl »: « https://www.alpha-keita.com/ » avec le nom de la propriété GSC que vous souhaitez analyser.

Pour lancer l’exécution du script qui mettra à jour les données du dashboard, il ne reste plus qu’à assigner la fonction écrite ci-dessus au bouton « METTRE À JOUR » que nous avons créé dans l’étape n°1.

Pour ce faire :

  1. Faites un clic droit sur le bouton,
  2. Cliquez sur les « trois petits points » en haut à droite du bouton,
  3. Sélectionnez « Assigner un script »
  4. Renseignez le nom de la fonction à exécuter :

 Et voilà ! Votre dashboard est terminé !

Pour aller plus loin…

Pour aller plus loin, on pourrait éventuellement :

  • Afficher des charts avec l’évolution journalière des KPIs pour chaque mot clé stratégique,
  • Permettre de sélectionner un mot clé pour afficher les URLs sur lesquelles il se positionne,
  • Compléter ces données avec les données d’outils de suivi de mots clés (SEMRush, Monitorank, etc…) pour afficher les positions des concurrents,
  • Paramétrer l’envoi d’un email lorsque la position d’un mot clé atteint un certain seuil,
  • Etc…

Concrètement, les possibilités sont infinies 🙂

Si vous voulez apprendre à créer ce genre de dashboards ou si vous voulez que des développeurs qui travaillent avec vous soient formés à l’utilisation de Google Apps Script pour le SEO, je vous invite à jeter un œil à ma formation : Construire des Dashboards SEO automatisés avec Google Apps Script.

Et si vous souhaitez m’engager pour concevoir et construire vos dashboards personnalisés, n’hésitez pas à me contacter.

À très vite !


Partagez sur vos réseaux sociaux !