Comment vérifier automatiquement le crawl et l’indexation de vos URLs stratégiques grâce à Google Apps Script ?

Partagez sur vos réseaux sociaux !

Avez-vous déjà essayé de vérifier, dans la Google Search Console, la dernière date de crawl et la présence dans l’index de Google de dizaines d’URLs qui sont stratégiques pour votre site ?

Si c’est le cas, je pense qu’on sera d’accord pour dire que cette tâche est extrêmement chronophage, voire quasiment impossible à effectuer si on a des centaines d’URLs à tester.

Alors, dans l’article suivant, je vais vous montrer comment vous allez pouvoir récupérer toutes ces informations, en un seul clic, dans une Google Sheets, grâce à Google Apps Script.

Pour ce faire, on va, comme d’habitude, 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

On va commencer par ouvrir une Google Sheets vierge et à établir le design du dashboard qu’on veut obtenir.

En l’occurrence, les informations d’inspection des URLs que l’on peut obtenir via l’API de la Google Search Console sont les suivantes :

  • Coverage State
  • Robots.txt State
  • Indexing State
  • Canonical URL
  • Fetch State
  • Last Crawl Date
  • Crawled As (Device)

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

Google Search Console - Inspection des URLs - Google Sheets

Dans la colonne C, on pourra coller les URLs 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 d’inspection des URLs.

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

function GSC_Inspect_URL(url_to_inspect) {
  const oauthToken = ScriptApp.getOAuthToken();
  const url = 'https://searchconsole.googleapis.com/v1/urlInspection/index:inspect';
  
  const payload = {
    "inspectionUrl": url_to_inspect,
    "siteUrl": "https://www.alpha-keita.com/",
    "languageCode": "fr-FR"
  }
  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()
  var json = JSON.parse(response);
  return json;
  
}

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.

É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 :

[
     ['URL', 'Coverage State', 'Robots.txt State'],
     ['https://www.alpha-keita.com/', 'Envoyée et indexée', 'ALLOWED']
]

Le code suivant va utiliser l’objet JSON obtenu grâce à la fonction de l’étape précédente pour afficher les informations d’indexation d’une URL, sur une ligne de notre Google Sheets :

function Shape_GSC_Inspection_Data(json) {

  var line_result = [];
  if (json.inspectionResult.indexStatusResult) {
    json = json.inspectionResult.indexStatusResult;
    line_result = [
      json.coverageState, 
      json.robotsTxtState, 
      json.indexingState, 
      json.googleCanonical,
      json.pageFetchState,  
      (json.lastCrawlTime ? json.lastCrawlTime.split('T')[0] : ''), 
      json.crawledAs
    ];
  } 
  Logger.log(line_result);
  return line_result;
}

É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 URLs stratégiques à analyser,
  2. Afficher dans la Google Sheets les informations d’indexation pour chacune de ces URLs.

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 Display_GSC_URLs_Inspection() {

  const sheet_inspectURLs = SpreadsheetApp.openById(spreadsheetID).getSheetByName('6');
  var urls = sheet_inspectURLs.getRange('C5:C'+ sheet_inspectURLs.getLastRow()).getValues();
  urls = urls.filter(elem => elem[0] !== '');
  Logger.log(urls);

  sheet_inspectURLs.getRange('D5:J'+ sheet_inspectURLs.getLastRow()).clearContent();

  var inspection_results = [];

  for (var i = 0; i < urls.length; i++) {
    var result_line = Shape_GSC_Inspection_Data(GSC_Inspect_URL(urls[i][0]));
    inspection_results.push(result_line);
    var lineNum = 5 + i;
    sheet_inspectURLs.getRange('D'+ lineNum + ':J'+ lineNum).setValues([inspection_results[i]]);
  }

}

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 ajouter à ce dashboard les KPIs principaux de la GSC pour chaque URL (Clicks, Impressions, CTR, Position). On pourrait aussi mettre en place un système de déclenchement automatique de ce script pour pouvoir analyser un grand nombre d’URLs, mais ce sera peut-être l’objet d’un prochain article 😉

Si le sujet des dashboards créés avec Google Apps Script vous intéresse ou pourrait intéresser les développeurs qui travaillent avec vous, 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 !