Illustration de l’extracteur Google SearchRésultats de recherche organiques

Extracteur Google Search.

Répétez les mêmes recherches et observez les sites présents. Comparez positions, titres et extraits pour repérer des lacunes dans vos contenus et de nouveaux concurrents.

Lancer sur Apify

Comment utiliser cet extracteur.

Essayez ces exemples pour le marketing, la croissance et l’analyse concurrentielle.

01

Suivez les recherches importantes pour vos acheteurs

Une équipe B2B peut suivre chaque semaine dix requêtes comme best CRM for small teams sur le même marché. Notez nouveaux concurrents, changements de position et promesses des titres.

Gardez une revue hebdomadaire des résultats avec la position observée de votre site et les mouvements concurrents.

02

Choisissez les prochains contenus à étudier

Regroupez les titres récurrents par intention : comparaisons, prix, tutoriels ou alternatives. Repérez où votre contenu manque ou répond à une autre question.

Priorisez les idées de contenu avec les résultats qui les ont inspirées.

03

Trouvez des entreprises dans un créneau précis

Recherchez une catégorie précise et examinez les domaines trouvés. Vérifiez les sites, puis envoyez la sélection à Website Contacts pour approfondir l’étude.

Gardez une liste d’entreprises avec les sources de recherche et les sites vérifiés manuellement.

DU PREMIER ESSAI AU FLUX RÉCURRENT

Votre premier essai, pas à pas.

  1. Ouvrez l’Actor sur Apify, choisissez Input et passez à l’éditeur JSON pour coller une configuration.
  2. Remplacez la requête exemple par la vôtre. Placez chaque recherche dans une chaîne distincte de queries. Les guillemets, site: et les exclusions fonctionnent comme dans Google ; évitez de réunir toute une liste dans une seule requête.
  3. Définissez country et language, puis commencez avec maxItems 20 par requête. L’Actor utilise le groupe de proxies GOOGLE_SERP d’Apify ; vérifiez que votre compte y a accès avant de lancer la collecte.
  4. Lancez l’exécution et consultez le journal. Vérifiez les cibles et filtres retenus avant de conclure qu’aucun résultat n’existe.
  5. Ouvrez Storage → Dataset, vérifiez quelques lignes et exportez en JSON pour les données imbriquées ou en CSV pour un premier examen dans un tableur.
Configuration de départ
{
  "queries": ["web scraping tools"],
  "country": "US",
  "language": "en",
  "maxItems": 20
}

Collez ceci dans l’éditeur JSON de l’Actor. Remplacez les cibles d’exemple avant de lancer.

Voir le formulaire actuel sur Apify

Choisissez votre mode de recherche.

Ce scraper renvoie les résultats organiques de Google. Utilisez des requêtes classiques ou des opérateurs, et gardez le pays, la langue et la limite identiques pour comparer les collectes. Il ne collecte ni les annonces payantes ni les AI Overviews.

Méthode de rechercheQuand l’utiliserCe qui change
Recherche par mots-clésQuand l’utiliserVous cherchez des résultats pertinents avant de choisir des cibles précises.Ce qui changeSaisissez les recherches séparément. Guillemets, site: et exclusions fonctionnent. Un lien Google fournit le texte recherché, pas tous ses filtres.
URL de pages de rechercheQuand l’utiliserVous avez déjà configuré la recherche sur le site source.Ce qui changeUne recherche en complément ou à la place de queries. Pour plusieurs thèmes, utilisez queries afin de conserver le contexte de chaque classement.
Choix des marchésQuand l’utiliserVous voulez une vue d’un pays ou d’un marché précis.Ce qui changeMarché de recherche sous forme de code à deux lettres ou de nom. Modifie le classement géographique ; distinct de la langue et du pays du proxy.

La différence à retenir

Maximum de résultats naturels par recherche, pas par run. Deux recherches avec maxItems 20 peuvent renvoyer 40 lignes. Google en fournit 10 par page.

Comparer le scraper associé

Tous les paramètres, expliqués.

Utilisez les noms exacts ci-dessous en JSON. Dans le formulaire Apify, saisissez les éléments des listes séparément et respectez les types numériques et booléens.

Valeur par défaut et préremplissage sont différents. La valeur par défaut s’applique si vous omettez un réglage ; le préremplissage est un exemple déjà saisi dans le formulaire Apify. Vérifiez cibles et limites avant chaque collecte. Certains réglages n’ont pas de valeur par défaut dans le schéma. Indiquez au moins une cible prise en charge.

Cibles et recherches2
queries
ListeExemple prérempli : ["web scraping tools"]

Saisissez les recherches séparément. Guillemets, site: et exclusions fonctionnent. Un lien Google fournit le texte recherché, pas tous ses filtres.

query
Texte

Une recherche en complément ou à la place de queries. Pour plusieurs thèmes, utilisez queries afin de conserver le contexte de chaque classement.

Marchés, dates et filtres4
country
Texte

Marché de recherche sous forme de code à deux lettres ou de nom. Modifie le classement géographique ; distinct de la langue et du pays du proxy.

language
TextePar défaut : en

Langue de l’interface Google, avec un code comme en, de ou pt-BR. Ne garantit pas la langue de toutes les pages retournées.

timeRange
TextePar défaut : any

Filtre la période de récence Google : hour, day, week, month, year ou any. Ne reconstitue pas les classements passés ni une SERP historique.

Valeurs JSON proposées
any hour day week month year
safeSearch
Vrai ou fauxPar défaut : false

Active SafeSearch de Google. Gardez ce réglage stable entre les runs pour ne pas confondre filtrage et changements de classement.

Limites, détails et proxys5
maxItems
EntierPar défaut : 10

Maximum de résultats naturels par recherche, pas par run. Deux recherches avec maxItems 20 peuvent renvoyer 40 lignes. Google en fournit 10 par page.

maxConcurrency
EntierPar défaut : 3

De 1 à 10 recherches en parallèle. Les pages d’une recherche restent séquentielles. Commencez à 3 avec peu de résultats par recherche.

delayMs
EntierPar défaut : 800

Pause entre requêtes de pages, en millisecondes. Augmentez-la en cas de limitation ; la réduire ne supprime ni la latence ni les limites de la source.

maxPagesPerQuery
Entier

Plafond de pages par recherche. Une page contient 10 résultats. maxItems 100 avec maxPagesPerQuery 2 donne au maximum environ 20 résultats par recherche.

proxyConfiguration
ObjetPar défaut : {"useApifyProxy":true,"apifyProxyGroups":["GOOGLE_SERP"]}

Cet Actor impose GOOGLE_SERP d’Apify ; les autres groupes ne donnent pas de résultats utilisables. Seul le pays du proxy est pris en compte. Votre plan doit autoriser ce groupe.

Réglages avancés et reprise4
proxyRotations
EntierPar défaut : 3

Réessaie les requêtes refusées avec une nouvelle session proxy. Davantage d’essais peut surmonter des blocages temporaires, mais ajoute du temps et du trafic. Gardez le réglage par défaut sauf indication du journal.

resume
Vrai ou fauxPar défaut : true

Sauvegarde la progression environ toutes les 30 secondes pour reprendre après un redémarrage ou une migration Apify. Laissez-le activé.

continueFromLastRun
Vrai ou fauxPar défaut : false

Poursuit le travail inachevé du run précédent avec la même entrée. Les résultats précédents restent dans son dataset. Gardez false pour une collecte nouvelle ou régulière.

impersonate
TextePar défaut : chrome131

Identité du navigateur utilisée pour les requêtes. Gardez la valeur par défaut sauf pour diagnostiquer un blocage immédiat. Elle modifie l’empreinte des requêtes, pas les données demandées.

Cette référence reprend les paramètres de l’Actor. Vérifiez le formulaire actuel avant de modifier un flux de production. Voir le formulaire actuel sur Apify.

Des configurations à copier.

Chaque exemple est une exécution distincte. Commencez petit, vérifiez les résultats, puis élargissez. Adaptez les cibles, pays et dates à votre recherche.

Contrôle régulier de visibilité dans la recherche

Trois requêtes avec maxItems 20 peuvent renvoyer jusqu’à 60 lignes. Relancez la même configuration chaque semaine et conservez requête, position et date. Utilisez une collecte séparée avec un autre pays pour comparer les marchés.

Contrôle régulier de visibilité dans la recherche
{
  "queries": [
    "web scraping tools",
    "competitor ad tracking",
    "marketing data pipeline"
  ],
  "country": "US",
  "language": "en",
  "maxItems": 20,
  "safeSearch": false
}

Étudier le contenu d’un domaine

Utilisez site: et des expressions entre guillemets pour trouver les pages indexées d’un domaine. Les résultats reflètent l’index de Google, pas une exploration complète du site. Remplacez apify.com et les expressions par vos cibles.

Étudier le contenu d’un domaine
{
  "queries": ["site:apify.com \"ad library\"", "site:apify.com \"google search\""],
  "country": "GB",
  "language": "en",
  "maxItems": 10
}

Trouver du contenu récemment indexé

Utilisez le filtre week pour trouver du contenu récent à examiner. Il filtre la récence dans l’index ; il ne reconstitue pas les positions de la semaine passée et ne prouve pas la date de publication initiale.

Trouver du contenu récemment indexé
{
  "queries": ["dbt BigQuery tutorial", "marketing analytics SQL"],
  "country": "US",
  "language": "en",
  "timeRange": "week",
  "maxItems": 20
}

Exécutez, vérifiez, exportez, recommencez.

Chaque ligne correspond à une requête et une position. Une URL peut être reconstruite depuis le fil d’Ariane affiché par Google ; vérifiez url_is_exact et les adresses incertaines avant exploration ou jointure. Gardez un relevé daté. Le jeu ne contient ni volume de recherche, ni annonces payantes, ni positions historiques.

  1. Consultez le dataset et le record SUMMARY. Comparez le total à votre limite, vérifiez les entrées ignorées ou échouées et contrôlez quelques liens sources.
  2. Conservez les identifiants et ajoutez collected_at et run_id à l’enregistrement. Utilisez CSV pour les colonnes simples et JSON pour les listes ou détails imbriqués.
  3. Enregistrez la configuration testée comme Apify Task et programmez-la. Pour des observations régulières, laissez continueFromLastRun à false. Dédupliquez par identifiant en conservant chaque date d’observation.
  4. Dans Make ou n8n, attendez la fin du run, récupérez son dataset et mappez les champs vers Sheets ou votre entrepôt. Alimentez Looker Studio avec une table de reporting et utilisez dbt pour transformer et tester les modèles.
  5. Le même JSON fonctionne avec l’API Actors d’Apify. Dans Claude avec Apify MCP, nommez cet Actor, demandez la lecture du schéma et précisez cibles, marchés et limites avant l’exécution.

Reprendre ne crée pas une nouvelle observation

resume protège le run actuel si Apify le redémarre. continueFromLastRun poursuit un ancien run avec la même configuration ; ses données restent dans son dataset. Réunissez les deux datasets et augmentez une limite déjà atteinte. Relancez de zéro pour observer les changements d’aujourd’hui.

Suivre les guides Sheets, Claude, Looker et BigQuery
Lancer cet Actor par l’API

Enregistrez une configuration ci-dessus dans input.json. Définissez APIFY_TOKEN avec votre jeton Apify dans le terminal, puis envoyez le fichier comme corps de requête.

Démarrer la collecte
curl --fail-with-body --request POST \
  --url "https://api.apify.com/v2/actors/jmlp~google-search-scraper/runs" \
  --header "Authorization: Bearer $APIFY_TOKEN" \
  --header "Content-Type: application/json" \
  --data-binary @input.json

La réponse contient un identifiant de collecte et defaultDatasetId, pas les résultats finaux. Attendez la réussite, définissez DATASET_ID avec cet identifiant et récupérez les lignes. Pour les gros jeux, utilisez limit et offset pour paginer.

Récupérer les données
curl --fail-with-body \
  --url "https://api.apify.com/v2/datasets/$DATASET_ID/items?format=json" \
  --header "Authorization: Bearer $APIFY_TOKEN"

Référence API de lancement et d’export d’Apify
Options d’export des données

Si les résultats vous surprennent.

Modifiez un réglage à la fois, gardez une petite limite et consultez le résumé avant d’élargir.

La source renvoie des pages vides ou des erreurs d’accès.

Cet Actor impose GOOGLE_SERP d’Apify ; les autres groupes ne donnent pas de résultats utilisables. Seul le pays du proxy est pris en compte. Votre plan doit autoriser ce groupe.

Puis-je considérer chaque URL comme l’adresse exacte d’une page ?

Chaque ligne correspond à une requête et une position. Une URL peut être reconstruite depuis le fil d’Ariane affiché par Google ; vérifiez url_is_exact et les adresses incertaines avant exploration ou jointure. Gardez un relevé daté. Le jeu ne contient ni volume de recherche, ni annonces payantes, ni positions historiques.

Le pays choisi ne renvoie aucun résultat utile.

Marché de recherche sous forme de code à deux lettres ou de nom. Modifie le classement géographique ; distinct de la langue et du pays du proxy.

Le run a réussi, mais reste vide

Un succès indique que l’Actor a terminé, pas que la source a fourni des données. Consultez SUMMARY.inputProblem, SUMMARY.problem et le journal : cible manquante, filtre non pris en charge ou requête refusée. Essayez une cible connue avec moins de filtres.

Moins de lignes que prévu

Vérifiez les limites globales, par recherche et par page, la couverture et les doublons. Plusieurs recherches peuvent trouver la même ligne. Le total annoncé par la source peut inclure des données non accessibles publiquement. Vérifiez les tâches inachevées avant de considérer le dataset complet.

Utilisez les résultats dans vos outils.

Google Sheets

Ajoutez query, position, title, url, url_is_exact et collected_at. Isolez le domaine dans une colonne puis filtrez votre site ou les concurrents récurrents.

Lire le guide
Claude + MCP

Demandez à Claude de regrouper les intentions et comparer les thèmes des titres en citant requête et position. Les seuls résultats ne suffisent pas pour juger le contenu complet ou la qualité d’une page.

Lire le guide
Looker Studio

Suivez votre position et la fréquence d’apparition des concurrents dans un tableau daté. Gardez pays et langue identiques entre les exécutions.

Lire le guide
BigQuery + dbt

Partitionnez les observations par date et gardez requête, pays et langue. Comparez les positions des domaines vérifiés en SQL. Vérifiez les URL reconstruites avant de les utiliser comme identifiants exacts.

Lire le guide
Copier une consigne pour Claude
Consigne pour Claude + Apify MCP
Vérifie jmlp/google-search-scraper et collecte jusqu’à 20 résultats organiques pour best CRM for small teams en anglais US. Regroupe thèmes des titres et domaines récurrents, cite query et position, signale les URL reconstruites et propose des questions de contenu. N’invente pas de volumes de recherche.

Les champs disponibles.

Conservez la date de collecte et les identifiants d’origine pour vérifier la provenance d’un résultat ou le comparer à une exécution ultérieure.

Avant de tirer des conclusions

L’extracteur fournit des résultats organiques. Les volumes et données de mots-clés payants nécessitent une autre source. Les résultats varient selon marché et date. Certaines URL sont reconstruites : vérifiez url_is_exact et les liens avant de les parcourir ou de joindre les données par page.

query / position
Requête et position organique, à partir de un.
title / snippet
Titre et description affichés dans le résultat.
url
URL dérivée du résultat affiché.
url_is_exact
Indique si l’URL était exacte ou reconstruite depuis le fil d’Ariane.
displayed_url
URL ou fil d’Ariane d’origine affiché par Google.

Questions fréquentes.

Fournit-il le volume de recherche ou la difficulté des mots-clés ?

Non. Il fournit résultats organiques, position, titre, URL et extrait. Utilisez une autre source pour les volumes ou la difficulté.

Toutes les URL sont-elles exactes ?

Non. Si Google affiche un fil d’Ariane, l’extracteur peut reconstruire l’URL. Le champ url_is_exact indique cette différence.

Source et informations actuelles : Actor Google Search de JMLP sur Apify.

D’autres extracteurs
qui pourraient vous être utiles.

Parlons de
votre projet.

Dites-moi ce que vous devez collecter ou comprendre. Je peux vous aider avec un extracteur sur mesure, un pipeline ou l’analyse.

Parlons de votre projet