Récupération des Suggestions Google Suggest pour le SEO

Apprenez à utiliser un script Python pour récupérer automatiquement des suggestions de mots-clés depuis Google Suggest pour optimiser votre stratégie SEO.

Introduction

Ce script Python permet de récupérer automatiquement des suggestions de mots-clés depuis Google Suggest en fonction d'un mot-clé principal. Il effectue des requêtes pour différentes catégories de termes (prépositions/questions et mots-clés transactionnels) et stocke les résultats dans un DataFrame pandas.

Vous pouvez trouvez le code fonctionnel et utilisable directement depuis ce Notebook Google Colab

Bibliothèques utilisées

Le script utilise plusieurs bibliothèques :

  • requests : pour envoyer des requêtes HTTP à Google Suggest.
  • fake_useragent : pour générer des User-Agents aléatoires et éviter le blocage par Google.
  • json : pour manipuler les réponses JSON reçues de Google.
  • pandas : pour structurer et afficher les résultats sous forme de DataFrame.

Déclaration des variables

suggest = []
keyword = "extracteur de jus"
hl = "fr"
gl = "fr"
  • suggest : liste vide destinée à stocker les suggestions récupérées.
  • keyword : mot-clé principal pour lequel on cherche des suggestions.
  • hl : langue des suggestions (ici, français).
  • gl : localisation des résultats (ici, France).

Recherche de suggestions avec des prépositions et questions

asks = ["comment", "pourquoi", "laquelle", "lequel", "ou", "quand", "que", "qu'est ce", "quel", "vs", "qui", "quelle", "quoi", "avec", "pour", "sans", "comme", "contre", "et"]
  • asks : liste de prépositions et questions permettant de générer des requêtes de type questionnement.

Le script boucle ensuite sur cette liste pour récupérer les suggestions correspondantes :

for ask in asks:
  endpoint = "https://suggestqueries.google.com/complete/search?output=firefox&q=" + ask + "+*+" + keyword + "&hl=" + hl + "&gl=" + gl
  ua = UserAgent()
  headers = {"user-agent": ua.chrome}
  response = requests.get(endpoint, headers=headers, verify=True)
  suggestions = json.loads(response.text)
  for word in suggestions[1]:
    suggest.append({"source": ask, "word": word})
  • endpoint : construit l'URL de requête en insérant la préposition/question et le mot-clé principal.
  • UserAgent() : génère un User-Agent aléatoire pour chaque requête.
  • requests.get() : envoie la requête HTTP à Google Suggest.
  • json.loads(response.text) : parse la réponse JSON de Google Suggest.
  • suggest.append({...}) : ajoute chaque suggestion récupérée à la liste suggest.

Recherche de suggestions transactionnelles

asks = ["acheter", "pas cher", "comparatif", "guide d'achat", "le meilleur"]
  • asks : liste de mots-clés transactionnels permettant de récupérer des suggestions axées sur l'intention d'achat.

Le code suit le même schéma que pour les questions, en remplaçant simplement la liste des termes à tester.

Affichage des résultats

dframe = pd.DataFrame(suggest)
dframe
  • pd.DataFrame(suggest) : convertit la liste des suggestions en un DataFrame pandas.
  • dframe : affichage du DataFrame contenant toutes les suggestions et leur source (préposition/question ou terme transactionnel).

Améliorations possibles

  • Ajouter une gestion des erreurs (try-except) pour éviter les échecs en cas de problème réseau.
  • Utiliser urllib.parse.quote() pour encoder correctement les URL et éviter d'éventuels problèmes de formatage.
  • Optimiser le code en regroupant les requêtes dans une seule fonction réutilisable.
  • Enregistrer les résultats dans un fichier CSV pour une analyse ultérieure.

Ce script est utile pour le SEO, car il permet d'obtenir rapidement une liste de suggestions issues de Google, offrant ainsi des idées de contenus à créer ou des insights sur l'intention des utilisateurs.

Code Complet

Affichage des données

import requests
from fake_useragent import UserAgent
import json
import pandas as pd

data_table.enable_dataframe_formatter()

suggest = []
keyword = "extracteur de jus"
hl="fr"
gl="fr"

# Preposition / Questions
asks = ["comment","pourquoi","laquelle","lequel","ou","quand","que","qu'est ce","quel","vs","qui","quelle","quoi","avec","pour","sans","comme","contre","et"]

for ask in asks:
  endpoint = "https://suggestqueries.google.com/complete/search?output=firefox&q=" + ask + "+*+" + keyword + "&hl=" + hl + "&gl=" + gl
  ua = UserAgent()
  headers = {"user-agent": ua.chrome}
  response = requests.get(endpoint, headers=headers, verify=True)
  suggestions = json.loads(response.text)
  for word in suggestions[1]:
    suggest.append({"source": ask,"word": word})

# Mots-clés transactionnels
asks = ["acheter","pas cher","comparatif","guide d'achat","le meilleur"]

for ask in asks:
  endpoint = "https://suggestqueries.google.com/complete/search?output=firefox&q=" + ask + "+*+" + keyword + "&hl=" + hl + "&gl=" + gl
  ua = UserAgent()
  headers = {"user-agent": ua.chrome}
  response = requests.get(endpoint, headers=headers, verify=True)
  suggestions = json.loads(response.text)
  for word in suggestions[1]:
    suggest.append({"source": ask,"word": word})

# Affichage

dframe = pd.DataFrame(suggest)
dframe