Imagen del scraper Google SearchResultados orgánicos de búsqueda

Google Search Scraper.

Repite las mismas búsquedas y mira qué sitios aparecen. Compara posiciones, títulos y descripciones para descubrir huecos en tu contenido y competidores nuevos.

Ejecutar en Apify

Cómo puedes usar este scraper.

Prueba estos ejemplos para marketing, crecimiento y análisis de la competencia.

01

Sigue las búsquedas relevantes para tus compradores

Un equipo B2B puede seguir cada semana diez búsquedas como best CRM for small teams en el mismo mercado. Anota nuevos competidores, cambios de posición y promesas de los títulos.

Mantén una revisión semanal de resultados con la posición observada de tu sitio y los movimientos de competidores.

02

Decide qué contenido investigar después

Agrupa títulos recurrentes por intención: comparaciones, precios, tutoriales o alternativas. Comprueba dónde falta tu contenido o responde a otra pregunta.

Prioriza ideas de contenido y enlaza los resultados que las motivaron.

03

Encuentra empresas de un nicho concreto

Busca una categoría específica y revisa los dominios encontrados. Comprueba los sitios y pasa la selección a Website Contacts para ampliar la investigación.

Conserva una lista de empresas con fuentes de búsqueda y sitios revisados manualmente.

DE LA PRIMERA EJECUCIÓN A UN FLUJO RECURRENTE

Tu primera ejecución, paso a paso.

  1. Abre el Actor en Apify, entra en Input y cambia al editor JSON para pegar una configuración.
  2. Sustituye la consulta de ejemplo por la tuya. Pon cada búsqueda como una cadena separada en queries. Las comillas, site: y las exclusiones funcionan como en Google; no conviertas toda una lista en una consulta larga.
  3. Define country y language explícitamente y empieza con maxItems 20 por consulta. El Actor usa el grupo de proxies GOOGLE_SERP de Apify; comprueba que tu cuenta tiene acceso antes de ejecutarlo.
  4. Inicia la ejecución y revisa el registro. Comprueba qué objetivos y filtros se interpretaron antes de concluir que no hay datos.
  5. Abre Storage → Dataset, revisa varios registros y exporta JSON para datos anidados o CSV para una primera revisión en una hoja.
Configuración inicial
{
  "queries": ["web scraping tools"],
  "country": "US",
  "language": "en",
  "maxItems": 20
}

Pégalo en el editor JSON del Actor. Cambia los ejemplos por tus propios objetivos antes de ejecutar.

Consulta el formulario actual en Apify

Elige cómo buscar.

Este scraper devuelve resultados orgánicos de Google. Usa consultas normales u operadores y mantén el país, idioma y límite constantes al comparar ejecuciones. No recopila anuncios pagados ni AI Overviews.

Método de búsquedaCuándo usarloQué cambia
Búsqueda por palabras claveCuándo usarloQuieres encontrar resultados relevantes antes de elegir objetivos concretos.Qué cambiaIntroduce búsquedas en elementos separados. Funcionan frases entre comillas, site: y términos excluidos. Una URL de Google aporta el texto, no todos sus filtros.
URLs de páginas de búsquedaCuándo usarloYa configuraste la búsqueda en el sitio de origen.Qué cambiaUna búsqueda junto a queries o en su lugar. Para varios temas usa queries y conserva el contexto de cada ranking.
Selección de mercadosCuándo usarloNecesitas datos de un país o mercado concreto.Qué cambiaMercado de búsqueda con código de dos letras o nombre. Cambia el ranking geográfico; es independiente del idioma y del país del proxy.

La diferencia importante

Máximo de resultados orgánicos por consulta, no por ejecución. Dos consultas con maxItems 20 pueden devolver 40 filas. Google sirve 10 por página.

Compara el scraper relacionado

Todos los parámetros, explicados.

Usa estos nombres exactos en JSON. En el formulario de Apify, introduce cada elemento de las listas por separado y mantén números y booleanos en su tipo correcto.

Default y prefill son distintos. El valor por defecto se aplica si omites un ajuste; el prellenado es un ejemplo introducido en el formulario de Apify. Revisa objetivos y límites antes de cada ejecución. Algunos ajustes no tienen valor por defecto en el esquema. Debes indicar al menos un objetivo admitido.

Objetivos y búsquedas2
queries
ListaEjemplo precargado: ["web scraping tools"]

Introduce búsquedas en elementos separados. Funcionan frases entre comillas, site: y términos excluidos. Una URL de Google aporta el texto, no todos sus filtros.

query
Texto

Una búsqueda junto a queries o en su lugar. Para varios temas usa queries y conserva el contexto de cada ranking.

Mercados, fechas y filtros4
country
Texto

Mercado de búsqueda con código de dos letras o nombre. Cambia el ranking geográfico; es independiente del idioma y del país del proxy.

language
TextoPor defecto: en

Idioma de la interfaz de Google con códigos como en, de o pt-BR. No garantiza que todas las páginas estén en ese idioma.

timeRange
TextoPor defecto: any

Filtra la ventana de actualidad de Google: hour, day, week, month, year o any. No reconstruye rankings pasados ni crea una SERP histórica.

Valores JSON sugeridos
any hour day week month year
safeSearch
Verdadero o falsoPor defecto: false

Activa SafeSearch de Google. Mantén el mismo ajuste entre ejecuciones para no confundir cambios de filtrado con cambios de ranking.

Límites, detalles y proxies5
maxItems
EnteroPor defecto: 10

Máximo de resultados orgánicos por consulta, no por ejecución. Dos consultas con maxItems 20 pueden devolver 40 filas. Google sirve 10 por página.

maxConcurrency
EnteroPor defecto: 3

Entre 1 y 10 consultas paralelas. Las páginas de cada consulta siguen siendo secuenciales. Empieza con 3 y pocos resultados por búsqueda.

delayMs
EnteroPor defecto: 800

Pausa entre solicitudes de páginas, en milisegundos. Auméntala si la fuente limita solicitudes; reducirla no elimina la latencia ni sus límites.

maxPagesPerQuery
Entero

Límite de páginas por consulta. Cada página contiene 10 resultados. maxItems 100 y maxPagesPerQuery 2 permite como máximo unos 20 por búsqueda.

proxyConfiguration
ObjetoPor defecto: {"useApifyProxy":true,"apifyProxyGroups":["GOOGLE_SERP"]}

Este Actor utiliza siempre GOOGLE_SERP de Apify; otros grupos no devuelven resultados utilizables. Solo respeta el país del proxy. Tu plan debe incluir acceso al grupo.

Ajustes avanzados y recuperación4
proxyRotations
EnteroPor defecto: 3

Reintenta solicitudes rechazadas con una sesión proxy nueva. Más intentos pueden superar bloqueos temporales, pero añaden tiempo y tráfico. Mantén el valor predeterminado salvo que el registro indique un motivo para cambiarlo.

resume
Verdadero o falsoPor defecto: true

Guarda el progreso aproximadamente cada 30 segundos para continuar tras un reinicio o migración. Déjalo activado.

continueFromLastRun
Verdadero o falsoPor defecto: false

Continúa el trabajo pendiente de la ejecución anterior con la misma entrada. Los resultados anteriores quedan en su dataset. Usa false para una colección nueva o periódica.

impersonate
TextoPor defecto: chrome131

Identidad de navegador utilizada en las solicitudes. Conserva el valor predeterminado salvo que investigues bloqueos inmediatos. Cambia la huella de la solicitud, no los datos solicitados.

Esta referencia sigue los campos del Actor. Revisa el formulario actual antes de cambiar un flujo de producción. Consulta el formulario actual en Apify.

Configuraciones listas para copiar.

Cada ejemplo es una ejecución independiente. Empieza con poco, revisa los resultados y amplía después. Adapta objetivos, países y fechas a tu pregunta.

Comprobación repetible de visibilidad

Tres consultas con maxItems 20 pueden devolver hasta 60 filas. Ejecuta la misma configuración cada semana y guarda consulta, posición y fecha. Usa otra ejecución con distinto país para comparar mercados.

Comprobación repetible de visibilidad
{
  "queries": [
    "web scraping tools",
    "competitor ad tracking",
    "marketing data pipeline"
  ],
  "country": "US",
  "language": "en",
  "maxItems": 20,
  "safeSearch": false
}

Investiga contenido de un dominio

Usa site: y frases entre comillas para encontrar páginas indexadas de un dominio. Los resultados reflejan el índice de Google, no un rastreo completo del sitio. Cambia apify.com y las frases por tus objetivos.

Investiga contenido de un dominio
{
  "queries": ["site:apify.com \"ad library\"", "site:apify.com \"google search\""],
  "country": "GB",
  "language": "en",
  "maxItems": 10
}

Encuentra contenido indexado recientemente

Usa el filtro week para encontrar material reciente para revisar contenido. Filtra la actualidad del índice; no recrea posiciones de la semana pasada ni demuestra la fecha de publicación original.

Encuentra contenido indexado recientemente
{
  "queries": ["dbt BigQuery tutorial", "marketing analytics SQL"],
  "country": "US",
  "language": "en",
  "timeRange": "week",
  "maxItems": 20
}

Ejecuta, revisa, exporta y repite.

Cada fila corresponde a una consulta y posición. Una URL puede reconstruirse desde las rutas visibles de Google; revisa url_is_exact y verifica direcciones dudosas antes de rastrear o unir páginas. Guarda muestras por fecha. No hay volumen de búsqueda, anuncios pagados ni posiciones históricas.

  1. Revisa el dataset y el registro SUMMARY. Compara el total con tu límite, revisa entradas fallidas u omitidas y verifica algunos enlaces originales.
  2. Conserva los IDs originales y añade collected_at y run_id al guardar. Usa CSV para columnas planas y JSON para arrays o detalles anidados.
  3. Guarda la configuración probada como Apify Task y prográmala. Para capturas periódicas, deja continueFromLastRun en false. Elimina duplicados por ID conservando la fecha de cada observación.
  4. En Make o n8n, espera una ejecución correcta, obtiene el dataset y mapea campos a Sheets o tu almacén. Alimenta Looker Studio mediante una tabla de informes y usa dbt para transformar y validar modelos.
  5. El mismo JSON sirve con la API de Actors de Apify. En Claude con Apify MCP, indica este Actor, pide que revise el esquema y define objetivos, mercados y límites antes de ejecutar.

Reanudar no es obtener una captura nueva

resume protege la ejecución actual si Apify la reinicia. continueFromLastRun continúa una anterior con la misma configuración; sus registros siguen en el dataset anterior. Une ambos datasets y aumenta un límite ya alcanzado. Empieza de nuevo si quieres ver qué ha cambiado hoy.

Sigue las guías para Sheets, Claude, Looker y BigQuery
Ejecuta este Actor con la API

Guarda una configuración anterior como input.json. Define APIFY_TOKEN con tu token de Apify en la terminal y envía el archivo como cuerpo de la solicitud.

Inicia la ejecución
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 respuesta contiene un ID de ejecución y defaultDatasetId, no resultados finales. Espera a que termine con éxito, define DATASET_ID con ese ID y recupera los elementos. Para datasets grandes, usa limit y offset para paginar.

Recupera el dataset
curl --fail-with-body \
  --url "https://api.apify.com/v2/datasets/$DATASET_ID/items?format=json" \
  --header "Authorization: Bearer $APIFY_TOKEN"

Referencia de la API de ejecución y exportación de Apify
Opciones de exportación del dataset

Cuando los resultados no cuadran.

Cambia un ajuste cada vez, mantén un límite bajo y revisa el resumen antes de ampliar.

La fuente devuelve páginas vacías o errores de acceso.

Este Actor utiliza siempre GOOGLE_SERP de Apify; otros grupos no devuelven resultados utilizables. Solo respeta el país del proxy. Tu plan debe incluir acceso al grupo.

¿Puedo tratar cada URL como la dirección exacta de una página?

Cada fila corresponde a una consulta y posición. Una URL puede reconstruirse desde las rutas visibles de Google; revisa url_is_exact y verifica direcciones dudosas antes de rastrear o unir páginas. Guarda muestras por fecha. No hay volumen de búsqueda, anuncios pagados ni posiciones históricas.

El país seleccionado no devuelve resultados útiles.

Mercado de búsqueda con código de dos letras o nombre. Cambia el ranking geográfico; es independiente del idioma y del país del proxy.

La ejecución terminó sin resultados

El éxito indica que el Actor terminó, no que la fuente devolviera datos. Revisa SUMMARY.inputProblem, SUMMARY.problem y el registro: pueden faltar objetivos, haber filtros inválidos o solicitudes rechazadas. Prueba un objetivo conocido con menos filtros.

Menos registros de lo esperado

Revisa límites globales, por búsqueda y por página, cobertura y duplicados. Varias búsquedas pueden encontrar el mismo registro. El total de la fuente puede incluir datos no disponibles públicamente. Revisa los trabajos pendientes antes de dar el dataset por completo.

Usa los resultados en tus herramientas.

Google Sheets

Añade query, position, title, url, url_is_exact y collected_at. Extrae el dominio a otra columna y filtra por tu sitio o competidores recurrentes.

Leer la guía
Claude + MCP

Pide a Claude que agrupe intenciones y compare temas de títulos citando consulta y posición. Para juzgar el contenido completo o la calidad de una página necesita más que resultados de búsqueda.

Leer la guía
Looker Studio

Sigue tu posición y la frecuencia de aparición de competidores en una hoja con fechas. Mantén el país y el idioma entre ejecuciones.

Leer la guía
BigQuery + dbt

Particiona observaciones por fecha y conserva query, país e idioma. Compara posiciones de dominios verificados con SQL. Comprueba las URL reconstruidas antes de usarlas como ID exactos de página.

Leer la guía
Copiar un prompt para Claude
Prompt para Claude + Apify MCP
Comprueba jmlp/google-search-scraper y recopila hasta 20 resultados orgánicos para best CRM for small teams en inglés de US. Agrupa temas de títulos y dominios recurrentes, cita query y position, marca URL reconstruidas y propone preguntas de contenido. No inventes volúmenes de búsqueda.

Los campos que obtendrás.

Conserva la hora de recopilación y los ID originales. Los necesitarás para comprobar el origen de un resultado o compararlo con otra ejecución.

Antes de sacar conclusiones

El scraper devuelve resultados orgánicos. El volumen y los datos de palabras clave de pago requieren otra fuente. Los resultados varían por mercado y fecha. Algunas URL se reconstruyen: comprueba url_is_exact y valida enlaces antes de rastrearlos o unir datos por página.

query / position
Consulta y posición orgánica, empezando por uno.
title / snippet
Título y descripción mostrados en el resultado.
url
URL derivada del resultado mostrado.
url_is_exact
Indica si la URL era exacta o se reconstruyó desde la ruta de navegación.
displayed_url
URL o ruta de navegación original mostrada por Google.

Preguntas frecuentes.

¿Devuelve volumen de búsqueda o dificultad de palabras clave?

No. Devuelve resultados orgánicos, posición, título, URL y descripción. Usa otra fuente para volumen de búsqueda o dificultad.

¿Todas las URL son exactas?

No. Si Google muestra una ruta de navegación, el scraper puede reconstruirla. El campo url_is_exact indica esta diferencia.

Fuente y detalles actuales del producto: Actor Google Search de JMLP en Apify.

Otros scrapers
que podrían servirte.

Hablemos de
tu proyecto.

Cuéntame qué necesitas recopilar o entender. Puedo ayudarte con un scraper a medida, un pipeline o el análisis.

Hablemos de tu proyecto