Extraire des données pour le SEO avec iMacros
Quand on veut attaquer une requête, on a besoin d’indicateurs de faisabilité. Si une requête est très concurrentielle, ça ne sert à rien d’aller se casser les dents dessus si on ne se donne pas suffisamment de levier pour ranker.
Parmi les indicateurs qu’on peut exploiter, le fameux « allintitle:KW ». Le résultat retourné permet de connaitre le nombre de pages dont la balise title contient la requête visée.
Mais comment faire si on doit ressortir cet indicateur pour 300 requêtes ? On passe des heures sur Excel pour fournir un joli tableau au client ? On sous-traite et on casse sa marge ? Non ! On utilise simplement le petit script qui va suivre 🙂
[toc]
Gagner du temps avec iMacros
Pour automatiser la récolte des résultats de « allintitle:KW » dans un fichier CSV, on va utiliser un plug-in compatible avec Firefox et chrome, appelé iMacros. Vous pouvez le télécharger en cliquant ici, pour Firefox, et pour chrome, c’est là.
Quand vous avez installé le plug-in, jetez un coup d’œil à votre dossier utilisateur sur votre session Windows (désolé pour les gens qui sont sous Mac, il va falloir vous adapter) : vous devez normalement y trouver un dossier « iMacros », qui contiendra trois sous dossier :
- Datasources
- Downloads
- Macros
« Datasources », c’est le dossier qui contiendra notre fichier CSV source, « Downloads », c’est là qu’on trouvera le résultat des extractions, et « Macros », c’est simplement le dossier qui contiendra notre script.
Utiliser le keyword planner de Adwords pour récolter les mots-clés
Pour récolter une liste de mots-clés associés à la requête que vous auditez, vous pouvez utiliser le keyword planner de Google Adwords. La première chose qu’on va faire, c’est renseigner la requête qu’on va auditer, grâce au menu « Rechercher de nouveaux mots clés et obtenir des données sur le volume de recherche ».
Dans notre cas, on va faire un test sur la requête « agence SEO ».

Google va alors nous sortir une liste de mots-clés associés à cette requête, avec divers indicateurs. Pour l’instant, on s’en fout, la seule chose qui compte, c’est le bouton télécharger pour récupérer ces données au format CSV. On récupère le fichier, et ensuite on va faire un petit tour sur Excel…
Traiter les données sur Excel
La chose qu’on va faire, c’est supprimer les colonnes qui ne nous intéressent pas. À savoir, on peut supprimer :
- Ad group
- Currency
- Impr. Share
- Organic impr. Share
- Organic avg. position
- In account ?
- In plan ?
- Extracted From
Puis, on va créer un tableau en gardant une colonne vide à droite : on insère un tableau en gardant bien coché « mon tableau comporte des en-têtes », puis on nomme la colonne vide tout à droite « allintitle ».
Ensuite, à vous de voir ce que vous conservez comme mot-clé, parce qu’il y aura toujours un peu de mots-clés totalement inutiles. Vous pouvez maintenant déconnecter votre compte Google, parce qu’on va quand même pinger GG en mode violent, et il va pas trop aimer.
Protéger son adresse IP avec VyprVPN
Si vous utilisez pas mal de plugin sur votre navigateur, comme RDS SEO toolbar ou autre plugin assimilé, à chaque fois que vous faites une recherche sur Google, votre browser envoie pas mal de requêtes supplémentaires. Et ça, Google, il aime pas. Pour filtrer le trafic des robots, il peut être amené à vous envoyer un captcha à résoudre. Et ici, on va vraiment lui faire du mal, donc pensez à protéger votre IP courante grâce à un proxy par exemple.
Perso, je suis sur VyprVPN. Ca me permet d’épargner un peu mon IP « standard » quand je procède à ce genre de recherches.
Créer la liste d’adresses à scraper
Pour l’instant, on a juste une liste de mots-clés. Si on veut transformer ça en liste d’adresses à scrapper, on doit ajouter « https://www.google.fr/?client=firefox-b#q=allintitle: » et quelque chose à chaque ligne. Vous noterez ici que la variable « client » dans mon exemple correspond au profil de mon navigateur (Firefox), à vous d’adapter en fonction du browser que vous utilisez.
Pour créer cette liste d’URL, on va simplement utiliser Notepad++ et une expression régulière. D’abord, copiez toute la colonne « keyword » de votre tableau Excel. Collez-la sur Notepad ++. Ensuite, faites « CTRL + H » pour entrer en mode « chercher / remplacer ».
Cliquez bien sur le petit bouton radio « Expression régulière » situé tout en bas de la boite de dialogue, sinon, la suite ne marchera pas.
Ce qu’on va chercher ici, c’est « toutes les lignes », « tout leur contenu », et on va remplacer ça par « https://www.google.fr/?client=votre-user-agent#q=allintitle:mon-mot-clé ».
Sur le champ « Recherche », entrez :
^(.+)$
Sur le champ « Remplacer par », entrez :
https://www.google.fr/?client=firefox-b#q=allintitle:\1

N’oubliez pas de remplacer « firefox-b » par le user-agent de votre navigateur (faites une recherche vite fait sur Google et regardez ce que vous avez dans la variable « client » dans l’URL).
Cliquez sur « Remplacer tout », et c’est presque terminé : il faut encore remplacer les espaces par des « + ». Sélectionnez un espace entre deux mots, faites CTRL + H, et dans le champ « Remplacer par », mettez « + », puis cliquez sur « Remplacer tout ».
On a terminé le travail sur Notepad++. Maintenant, on va placer tout ça dans un nouveau fichier CSV, qu’on va enregistrer dans notre sous-dossier « Datasources », dans notre dossier « iMacros » (sur votre compte utilisateur). On passe maintenant à la récolte !
Scraper comme un ouf !
La partie la plus jouissive : on va collecter nos 300 résultats en quelques minutes, en mode violent, en mode « j’ai pas de temps à perdre avec ces conneries ». Pour ça, on va créer une nouvelle macro sur iMacros. Ouvrez un fichier texte, et collez le script suivant :
VERSION BUILD=8810214 RECORDER=FX SET !DATASOURCE agenceseo.csv SET !DATASOURCE_COLUMNS 1 SET !TIMEOUT_STEP 0 SET !ERRORIGNORE YES SET !EXTRACT_TEST_POPUP NO SET !LOOP 1 SET rndSecWait EVAL("3 + Math.floor(Math.random()*5)") TAB T=1 URL GOTO={{!COL1}} TAG POS=1 TYPE=DIV ATTR=ID:resultStats EXTRACT=TXT SAVEAS TYPE=EXTRACT FOLDER=* FILE=+{{!NOW:ddmmyyyy}}.csv WAIT SECONDS={{rndSecWait}}
Ici, vous trouverez bien le fichier CSV dans lequel on a collé notre liste d’URL à scrapper à la deuxième ligne, celle qui dit « SET !DATASOURCE agenceseo.csv », à la ligne 2. Adaptez cette ligne en fonction du nom que vous avez donné à votre fichier CSV dans le dossier « Datasources ». Enregistrez le script au format .iim, dans le dossier « iMacros/Macros ».
Vous êtes maintenant prêt pour violer Google et vous épargner des heures de travail ingrat !
Un petit complément d’explication sur la ligne 8, qui permet de définir un laps de temps entre chaque opération : Google détecte les scraps de la SERP. Si on scrap toujours de façon très régulière, il ne va pas aimer, et va vous envoyer un captcha. Ça n’est pas un problème, mais, du coup, vous devez rester à côté de la machine le temps que les données soient extraites. C’est pas bien long, mais c’est nécessaire.
Si vous n’avez pas envie de résoudre les captchas, il faudra mettre un laps de temps largement supérieur à celui qu’on indiqué à la ligne huit (ici, on a défini un laps de temps aléatoire entre trois et huit secondes).
Notez également à la ligne 11, la directive pour extraire le contenu au format texte de la div qui a l’ID « resultStats ». Ça devrait vous inspirer pour adapter le script et faire pleins d’autres choses…
Bref, enregistrez votre script dans le dossier « iMacros/Macros » (dans mon exemple, je l’ai appelé « agenceseo.iim ») ouvrez votre onglet iMacros sur votre navigateur, trouvez le script que vous avez enregistré dans le dossier « Macros », puis indiquez le nombre de recherches que vous voulez effectuer dans l’onglet « Jouer », section « Rejouer la Macro », en définissant le champ « Max ».
N’oubliez pas d’adapter le script en fonction du nom de votre fichier CSV, et du délai que vous souhaitez mettre entre chaque recherche 🙂
Cliquez sur « Jouer (Répéter) », et patientez le temps que le script fasse son taf 🙂
Si un Captcha pop, vous avez quelques secondes pour le résoudre. Si vous ne le faites pas, vous aurez une ligne vide dans votre fichier de destination.
Bref, quand le script a fini de tourner, ouvrez votre dossier « iMacros/Downloads » : vous y trouverez un fichier CSV qui s’appellera « extractddmmyyyy.csv ». C’est lui qui contiendra les résultats collectés. Vous n’avez plus qu’à copier tous les résultats, et à les coller dans votre colonne « Allintitle » sur le tout premier fichier Excel qu’on a créé dans le tuto.
Vous pouvez mettre un petit coup de nettoyage pour que ce soit plus joli, et vous avez maintenant de quoi ausculter avec précision le nombre de recherche mensuelle, l’indice de compétition, les enchères suggérées, et le nombre de pages qui sont optimisées avec le mot-clé dans la balise title, pour la niche que vous souhaitez attaquer 🙂
La version « Pro » du script, avec rotation de proxy
Suite au commentaire de Cédric Guérin, Consultant SEO à Rennes, je me suis dit qu’on pouvait certainement améliorer un peu le script. En effet, ici, sur un gros volume, les requêtes de type « allintitle:KW » génèrent fatalement un captcha (y a vraiment que les SEO qui utilisent ce genre d’opérateur, et Dieu sait que Google ne nous porte pas dans son coeur).
La solution, c’est de mettre en place une rotation de proxies pour changer d’IP à chaque fois qu’on va effectuer une requête. Vous pouvez donc lâcher le VPN si c’est la solution que vous utilisiez, ici, on va avoir beaucoup plus d’IP disponibles 🙂
Bref, la nouvelle macro est ci-dessous :
VERSION BUILD=8810214 RECORDER=FX SET !DATASOURCE agenceseo.csv SET !DATASOURCE_COLUMNS 2 SET !TIMEOUT_STEP 0 SET !ERRORIGNORE YES SET !EXTRACT_TEST_POPUP NO SET !LOOP 1 SET rndSecWait EVAL("3 + Math.floor(Math.random()*5)") TAB T=1 PROXY ADDRESS={{!COL2}} WAIT SECONDS=5 URL GOTO={{!COL1}} TAG POS=1 TYPE=DIV ATTR=ID:resultStats EXTRACT=TXT SAVEAS TYPE=EXTRACT FOLDER=* FILE=+{{!NOW:ddmmyyyy}}.csv WAIT SECONDS={{rndSecWait}}
Un bémol toutefois : il va falloir utiliser des proxies privés ou semi-privés.
Récupérer des proxies
Je récupère les miens chez Buyproxies, ils ne sont pas trop chers et font bien le taf. Vous recevez les proxies au format suivant « ip.ip.ip.ip:port:user:mot-de-passe ». Le souci, c’est que iMacros n’accepte pas ce format. On va donc « whitelister » notre IP chez Buyproxies, grâce à l’onglet prévu pour ça, ainsi plus besoin de préciser le couple user:mot-de-passe 🙂

Mettre à jour le fichier CSV dans Datasources
Une fois que vous avez ajouté votre IP à la whitelist, vous pouvez éditer la macro, et ajouter le couple ip:port de vos proxies au fichier CSV du dossier « Datasources ». En gros, on ajoute simplement une colonne, dans laquelle il faudra faire quelques copier-coller pour assigner un proxy différent à chaque URL scrappée.
Attention, votre fichier CSV a probablement le point-virgule comme séparateur, et ici, il faut un format Américain. Donc, une fois votre colonne avec les proxies complétées, fermez Excel, ré-ouvrez le fichier CSV avec Notepad++, et remplacez tous les « points-virgule » par des « virgules ». Et après, y a plus qu’à faire tourner la macro 🙂
La macro de vérif (bonus)
Ci-dessous, un petit script supplémentaire pour vérifier que votre rotation de proxies est bien effective :
VERSION BUILD=8810214 RECORDER=FX SET !DATASOURCE checkip.csv SET !DATASOURCE_COLUMNS 2 SET !TIMEOUT_STEP 0 SET !ERRORIGNORE YES SET !EXTRACT_TEST_POPUP NO SET !LOOP 1 TAB T=1 PROXY ADDRESS={{!COL2}} WAIT SECONDS=5 URL GOTO={{!COL1}} WAIT SECONDS=4
Pas grand chose de compliqué ici, on scrappe juste http://whatismyipaddress.com/fr/ en jouant la rotation de proxies pour être sur que ça fonctionne bien.
Et ci-dessous, le gros bouton pour télécharger les fichiers qui m’ont servi pour le tuto 🙂
Vraiment sympa ce tutoriel Charles ! Et merci pour la macro clé en main.
Par contre pour scraper les données pour 300 requêtes, avec un VPN et donc un IP unique, tu es certain que ça ne prend que quelques minutes ? Car comme tu le précises, Google va caler un captcha très rapidement (au bout d’une poignée de requêtes, particulièrement si la requête contient une commande type allintitle). Et automatiser la récupération des données mais entrer les captchas à la main n’a pas vraiment d’intérêt finalement.
Tu as fait le test ? Quel délai entre chaque requête te semble raisonnable ?
Utiliser une dizaine de proxies permettrait aussi certainement d’être plus efficace. J’imagine que c’est faisable avec iMacros.
Bonjour Cédric, effectivement, tu mets le doigts sur LE point qui coince sur le tuto, à savoir les captchas. En moyenne, toutes les 10-15 requêtes, GG envoie un captcha à résoudre. Tout dépend aussi du délai entre chaque requête.
Perso, j’ai testé pas mal de configurations, et le meilleur compromis, ça reste de mettre un délai court entre chaque requête, et gérer les captchas à la main. J’ai fait pas mal d’audits la semaine dernière, pour 300 requêtes, je passais en moyenne 20 minutes par export (en regardant France-Roumanie). Après l’export, il restait quelques lignes vides –> Réorganisation du tableur avec les fonctions de tri, nouveau scrap, et trois minutes plus tard, le fichier excel est complet.
Reste qu’effectivement, avec une dizaine de proxies, y aurait pas de captcha, mais je n’ai pas encore cherché le moyen de rentrer la rotation de proxies dans iMacros.
EDIT : Article mis à jour avec la rotation de proxies 🙂
Belle réactivité 🙂
Merci pour la mise à jour de la macro. Ça doit éviter une grosse partie des captchas je pense.
Bonjour,
Est-ce que iMacros permettrait de réaliser des recherches de mots clé et ensuite de mot pour ensuite cliquer dessus ?
Est-ce que cela permettrait de faire remonter un site Web en 1iere page ?
Exemple :
Rechercher : portail alu avec Firefox ou Google
Rechercher : CETAL dans la page
cliquez sur le lien comme un internaute ?
Qu’en pensez-vous ?
Merci pour votre aide.
Bonjour, oui, on peut faire une macro pour faire des recherches, et ensuite cliquer sur le bon lien.
MAIS (forcément…) ça va être vraiment galère, puisqu’il faudra, pour passer « sous le radar » changer d’IP à chaque fois, vider le cache (pour les cookies), changer de user-agent etc etc. Et pour qu’il y a un impact dans la SERP, il faudra plusieurs centaines de clics par jour.
Moz avait fait un test comme ça il y a quelques mois, et effectivement, ça avait marché. Maintenant, y a d’autres outils pour ça, comme PandabotNetwork, mais vu le faible volume de participants sur Google Francophone, ça ne vaut pas le coup. Sachant qu’en outre, l’impact du CTR dans le calcul de position est minime, ça ne vaut pas vraiment le coup de se pencher sur la question.
Ca sera plus intéressant, plus rapide et plus sur de bien bosser son optimisation on-page, et d’aller chercher des backlinks.
D’autant qu’à mon avis, le fait de spam clic uniquement vers la même page est contre productif puisque Google prend forcément en compte le taux de rebond (qui va être infâme si tu cliques et que tu pars direct) ^^
Super tutoriel, je vais essayer tout ça ce soir 🙂
Salut Thomas, euh, pas sur de comprendre ce que tu veux dire ici, mais comme ton site est mortel, je valide le com’ pour que tu aies le « free backlink » !