Menu

Récupérer les mots-clés de la Google Search Console

Publié le 17 septembre 2016

Se connecter à l’api search console (ancien webmaster tools) présente de nombreux avantages pour monitorer votre référencement. J’ai rencontré certaines difficultés à utiliser cette API et j’ai trouvé peu de documentation française clair sur le sujet . Je vous accompagne, pas à pas, au travers de cet article, aucune connaissance en programmation n’est requise.

La première restriction dans le fait de passer par l’interface web de search console est d’être limité à 90 jours de données. Donc si vous souhaitez archiver pour voir au-delà, il faudra penser à faire des exports réguliers et ne pas oublier ! Dans le cadre d’une application php comme dans notre cas, vous n’avez qu’à programmer l’exécution tous les jours et pour archiver toutes les données sans vous en soucier !

Il y a un second intérêt à passer par l’API, celui de pouvoir associer chaque mot-clé à une url. Si vous allez sur l’interface web, vous pouvez voir vos données soient par mot clé, soit par url, mais il est difficile de savoir quelle url est liée à quel mot-clé.

Il faut, pour cela, filtrer sur un mot-clé précis, puis se mettre en vue « page ». Le problème est qu’il faudrait le faire pour chaque mot-clé. Sur 1 000 mots-clés, le terme « chronophage » serait un doux euphémisme !

Alors qu’en utilisant l’api, il suffit de faire une boucle et le tour est joué ! Le script que je vous propose en téléchargement plus bas vous fera un export csv avec une colonne keyword et une colonne page puis les métriques.

Si vous êtes convaincu de l’intérêt, c’est parti !

Création d’une application sur Google Cloud

Il va d’abord falloir créer une application sur Google cloud et la paramétrer pour avoir toutes les autorisations nécessaires pour extraire vos données en php. Pour cela rendez-vous ici : https://console.cloud.google.com/ .

Créer un projet pour déclarer votre première application.

1-cloud-search-console

Ensuite, donnez le nom de votre choix à cette application.

2-cloud-search-console

Une fois le projet créé, vous pouvez cliquer sur activer et gérer des APIs. Ensuite, recherchez l’api de la search console (Google Search Console API) puis activer la.

3-cloud-search-console
5-cloud-search-console6-cloud-search-console

Votre application a désormais le droit d’utiliser l’api search console, cependant pour pouvoir se connecter à cette application, il faut créer un identifiant.

Pour cela, cliquez sur Créer des identifiants et sélectionner clé de compte de service

7-cloud-search-console
8-cloud-search-console

Veillez à paramétrer votre compte de la même manière que sur l’image ci-dessus. En cliquant sur Créer , cela devrait générer le téléchargement d’un fichier en .p12.  Il s’agira d’une clé d’authentification que nous allons envoyer à chaque requête sur Google Cloud, indispensable pour s’authentifier. Garder précieusement cette clé de côté, elle nous servira par la suite.

Garder aussi de côté l’email généré par la création de cet utilisateur, il devrait être sous ce format-ci :  testsearchconsole@testsearchconsole-143716.iam.gserviceaccount.com.

Autoriser votre identifiant à se connecter à votre compte search console

Pour résumer : jusqu’ici nous avons créé une application Google Cloud, nous avons autorisé celle-ci à utiliser l’api Search Console. Ensuite ,nous avons créé un utilisateur de cette application de manière à pouvoir utiliser l’application depuis notre script php.

Maintenant il faut que cet utilisateur ait le droit d’accéder à votre domaine sur la search console. Pour ce faire : connectez-vous tout simplement à votre compte ici : https://www.google.com/webmasters/tools

Une fois connecté à votre compte Search Console (anciennement webmaster tools), ajoutez l’identifiant de votre application en tant qu’utilisateur (voir Screenshot ci-dessous) :

Cliquez sur l’icone paramètre puis Utilisateurs et propriétaires

searchconsole-1
searchconsole-2

Cliquez sur Ajouter.

Télécharger et configurer le script php

Toute la partie paramétrage est maintenant terminée, la suite sera bien plus simple puisque je vous livre un script php clé en main pour extraire vos données : Lien de téléchargement ci-dessous :

Maintenant, vous n’avez plus qu’à placer ce script dans le dossier de votre choix. Placer votre clé d’api (le fichier p12) dans le même dossier que le fichier searchconsole.php comme ci-dessous :

fichiers

Ensuite, ouvrez le fichier searchconsole.php

Modifiez ces lignes en mettant le nom de votre application pour la variable name, insérer l’email identifiant dans la variable service_account_email et enfin le nom de la clé p12 dans la variable key_file_location.

php-1

Modifier les variables date_start et date_end pour sélectionner la période que vous souhaitez cibler.

Ensuite, au bas du fichier remplacez domain.tld par le nom de domaine que vous avez associé à cet identifiant.

php-2

Exécuter votre fichier php

Vous n’avez plus qu’à exécuter votre fichier php, celui-ci vous ressortira un fichier export.csv dans le même dossier.

Exemple avec l’invit de commande windows :

cmd_php

Si vous êtes sur Windows : vous pouvez installer wamp et ajouter la variable d’environnement php à windows de manière à exécuter des lignes de commande en php. Si vous ne savez pas comment procéder, je vous encourage à suivre ce petit tutoriel : http://blog.emmanuelgautier.fr/configurer-la-ligne-de-commande-php-sous-windows.html .

Utiliser des tâches automatisées pour aller plus loin

Un des intérêts de l’api est de programmer à l’avance la création d’export. Imaginons que vous souhaitez récupérer chaque jour les données de la veille :

Initialiser les variables date_start et date_end la date sous ce format-ci  juste après function __construct() {

$this->date_start = date("Y-m-d",time()-24*60*60);
$this->date_end = date("Y-m-d",time()-24*60*60);

De cette manière, chaque jour le script prendra automatique la date de la veille.

Ensuite, à la toute fin du fichier, vous pouvez rendre dynamique le nom du fichier de sortie sur la même logique…

Remplacez
file_put_contents( dirname( __FILE__ ) . '/export.csv', $results );
Par
file_put_contents( dirname( __FILE__ ) . '/export_'.date("Y-m-d",time()-24*60*60).'.csv', $results );

Ainsi chaque jour vous aurez un fichier sous le format : export_2016-09-17.csv.

Néanmoins, si vous vous y connaissez un tant soit peu en php, je ne peux que vous conseiller d’intégrer ces données en base de données plutôt qu’en CSV.

Pour programmer une exécution tous les jours à telle heure, vous n’avez plus qu’à vous renseigner sur la gestion des tâches automatisées (tâche cron ou crontab sur linux) auprès de votre hébergeur.

EDIT DU 19/09/2016 :

Je me suis rendu compte d’une petite coquille dans le fichier sur la déclaration des dates, je viens de le mettre à jour, si vous êtes confronté à un parse error, n’hésitez pas à télécharger une nouvelle fois le fichier mis à jour.

  • Jaffaar Saleh

    Excellent article :)

  • Aymeric Bouillat

    bravo pour le tuto et merci pour le partage!

  • http://twitter.com/leGouter/ S.deCampou

    Merci parfait pour attaquer la semaine; déroulement limpide

  • MitsuC

    Merci pour vos commentaires, n’hésitez pas à me poser des questions si vous rencontrer quelques difficultés.

  • dereferencement

    Pour ceux qui ont un serveur récalcitrant au moment de l’ouverture du CSV, remplacez la dernière ligne (file_put_contents( dirname( __FILE__ ) . ‘/export.csv’, $results );) par ceci:

    header(« Content-type: application/vnd.ms-excel »);
    header(« Content-disposition: attachment; filename=keywords » . date(« Ymd »). ».csv »);
    echo $results;

  • Laurent Ruellet

    Un grand merci a toi vraiment super pratique

  • So GrAfisan

    Merci pour le partage :) Je teste

  • fyher

    hi j’ia un 403 quota normal ?

    merci

Mentions légales - Webmaster freelance