BigQuery

Consultas útiles para BigQuery y Google Search Console: Todo lo que puedes extraer

Search Console + BigQuery rompe los límites de la interface de Google: consultas sin muestreo, históricos ilimitados, cruces con otras tablas. 10 consultas SQL útiles.

Search Console es la herramienta gratuita más potente del SEO pero su interfaz tiene límites absurdos: solo 1.000 filas por consulta, muestreo de datos cuando supera cierto volumen, filtros combinados imposibles. La solución: exportar todos los datos a BigQuery (gratis hasta cierto volumen) y lanzar consultas SQL sin limitaciones. Aquí las 10 consultas más útiles para auditar SEO con datos reales, sin humo y sin herramientas de pago.

Requisitos previos

(1) Search Console verificada sobre tu dominio. (2) Cuenta Google Cloud activada (tarjeta de crédito para verificar, pero capa gratuita amplia). (3) Configurar export diario Search Console → BigQuery en Ajustes de la propiedad. Tarda 1-2 días en empezar a recibir datos. Luego cada día se cargan automáticamente.

Qué puedes extraer de Search Console vía BigQuery

10 consultas SQL imprescindibles

1. Top 50 keywords con más impresiones último mes

SELECT query, SUM(impressions) AS impressions, SUM(clicks) AS clicks
FROM `tu-proyecto.searchconsole.searchdata_site_impression`
WHERE data_date BETWEEN '2026-03-01' AND '2026-03-31'
GROUP BY query
ORDER BY impressions DESC
LIMIT 50

2. URLs con más impresiones pero CTR bajo (oportunidad de mejora)

SELECT url, SUM(impressions) AS impressions, SUM(clicks) AS clicks,
  SAFE_DIVIDE(SUM(clicks), SUM(impressions)) AS ctr
FROM `tu-proyecto.searchconsole.searchdata_url_impression`
WHERE data_date BETWEEN '2026-03-01' AND '2026-03-31'
GROUP BY url
HAVING impressions > 1000 AND ctr < 0.02
ORDER BY impressions DESC

3. Keywords donde apareces en páginas 2-3 (empuje fácil)

SELECT query, AVG(position) AS avg_pos, SUM(impressions) AS impr
FROM `tu-proyecto.searchconsole.searchdata_site_impression`
WHERE data_date BETWEEN '2026-03-01' AND '2026-03-31'
GROUP BY query
HAVING avg_pos BETWEEN 11 AND 25 AND impr > 200
ORDER BY impr DESC
LIMIT 50

4. Comparativa de impresiones mes a mes

SELECT
  FORMAT_DATE('%Y-%m', data_date) AS month,
  SUM(impressions) AS total_impressions,
  SUM(clicks) AS total_clicks
FROM `tu-proyecto.searchconsole.searchdata_site_impression`
GROUP BY month
ORDER BY month DESC

5. URLs con caída de clics > 30 % mes vs mes anterior

WITH current AS (
  SELECT url, SUM(clicks) AS clicks_current
  FROM `tu-proyecto.searchconsole.searchdata_url_impression`
  WHERE data_date BETWEEN '2026-03-01' AND '2026-03-31'
  GROUP BY url
),
previous AS (
  SELECT url, SUM(clicks) AS clicks_previous
  FROM `tu-proyecto.searchconsole.searchdata_url_impression`
  WHERE data_date BETWEEN '2026-02-01' AND '2026-02-28'
  GROUP BY url
)
SELECT c.url, p.clicks_previous, c.clicks_current,
  SAFE_DIVIDE(c.clicks_current - p.clicks_previous, p.clicks_previous) AS change
FROM current c
JOIN previous p ON c.url = p.url
WHERE p.clicks_previous > 50 AND c.clicks_current < p.clicks_previous * 0.7
ORDER BY change ASC

6. Keywords con Zero Click (impresiones pero 0 clicks)

SELECT query, SUM(impressions) AS impressions
FROM `tu-proyecto.searchconsole.searchdata_site_impression`
WHERE data_date BETWEEN '2026-03-01' AND '2026-03-31'
GROUP BY query
HAVING SUM(clicks) = 0 AND SUM(impressions) > 100
ORDER BY impressions DESC

7. Tráfico por país (internacional)

SELECT country, SUM(clicks) AS clicks, SUM(impressions) AS impressions
FROM `tu-proyecto.searchconsole.searchdata_site_impression`
WHERE data_date BETWEEN '2026-03-01' AND '2026-03-31'
GROUP BY country
ORDER BY clicks DESC

8. Móvil vs Desktop performance

SELECT device, SUM(clicks) AS clicks, SUM(impressions) AS impressions,
  AVG(position) AS avg_pos,
  SAFE_DIVIDE(SUM(clicks), SUM(impressions)) AS ctr
FROM `tu-proyecto.searchconsole.searchdata_site_impression`
WHERE data_date BETWEEN '2026-03-01' AND '2026-03-31'
GROUP BY device

9. URLs que han empezado a recibir tráfico este mes (nuevas en ranking)

SELECT url, SUM(clicks) AS clicks_march
FROM `tu-proyecto.searchconsole.searchdata_url_impression`
WHERE data_date BETWEEN '2026-03-01' AND '2026-03-31'
  AND url NOT IN (
    SELECT DISTINCT url
    FROM `tu-proyecto.searchconsole.searchdata_url_impression`
    WHERE data_date BETWEEN '2026-02-01' AND '2026-02-28'
  )
GROUP BY url
ORDER BY clicks_march DESC

10. Keywords donde pierdes CTR vs la media esperada por posición

WITH agg AS (
  SELECT query, AVG(position) AS pos,
    SAFE_DIVIDE(SUM(clicks), SUM(impressions)) AS actual_ctr,
    SUM(impressions) AS impr
  FROM `tu-proyecto.searchconsole.searchdata_site_impression`
  WHERE data_date BETWEEN '2026-03-01' AND '2026-03-31'
  GROUP BY query
)
SELECT query, pos, actual_ctr, impr,
  CASE
    WHEN pos BETWEEN 1 AND 3 THEN 0.25
    WHEN pos BETWEEN 4 AND 10 THEN 0.05
    WHEN pos BETWEEN 11 AND 20 THEN 0.015
    ELSE 0.005
  END AS expected_ctr
FROM agg
WHERE impr > 200
ORDER BY (expected_ctr - actual_ctr) DESC
BigQuery + Search Console es el combo gratuito más potente del SEO para sites medianos-grandes. Información que Ahrefs y SEMrush cobran cientos al mes, tú la tienes con SQL si la sabes mirar.

¿Cuánto cuesta BigQuery realmente?

Capa gratuita de BigQuery: primeros 1 TB de consultas mensuales + 10 GB de almacenamiento gratis. Para la mayoría de webs pequeñas y medianas, esto es sobradamente suficiente y el coste mensual real es 0 €. Webs con millones de URLs pueden superar capa gratuita pero seguir pagando < 20 €/mes.

Preguntas frecuentes

Sí, SQL básico sí. Las 10 consultas de arriba son SQL estándar que puedes copiar y adaptar cambiando fechas y dominio. Si nunca has visto SQL, dedica 2-3 horas a tutorial básico (W3Schools SQL) antes. La curva no es pronunciada.

Sí. GA4 también exporta a BigQuery (propiedad estándar tiene exportación gratuita). Con ambas tablas en el mismo proyecto, puedes hacer JOIN por URL para cruzar las posiciones de tus keywords con conversiones reales del negocio. Muy potente.

Looker Studio visualiza datos con límites de Search Console interface (muestreo, 1.000 filas). BigQuery da acceso a todos los datos sin límites. Luego puedes conectar Looker Studio a BigQuery para visualizar — combo óptimo.

Primera carga: 1-2 días tras activar export. Desde ahí, actualización diaria (datos del día anterior). Los datos históricos NO se cargan retroactivamente — solo desde el momento de activación. Por eso conviene activarlo lo antes posible, aunque no lo uses todavía.

Sí. BigQuery tiene integración nativa con Google Sheets: desde el editor de consultas, botón «Explorar datos» → «Exportar a Sheets». Puedes programar consultas recurrentes con Data Studio o scripts.

Lo siguiente

  1. 30 minutos: activa Google Cloud + proyecto nuevo + export Search Console → BigQuery en ajustes de propiedad.
  2. Pasados 2 días: primera consulta de prueba (la #1 de arriba, top 50 keywords).
  3. Primera semana: adapta las 10 consultas a tu dominio y fechas. Guarda las que te aporten información útil.
  4. Mensual: revisión basada en estas consultas, mucho más profunda que la interface estándar de Search Console.

Para SEO serio con datos reales, BigQuery + Search Console cambia la forma en que entiendes tu tráfico. Es una de las piezas más rentables de cualquier estrategia de SEO técnico y cuesta 0 € para la mayoría de negocios.

Paul Cris
Paul Cris Consultor SEO freelance · Valencia

Llevo diez años posicionando webs, ahora también para las IAs generativas. Trabajo con pocos clientes a la vez, sin agencia en medio y sin permanencia.

Saber cómo trabajo →

¿Te suena algo de esto en tu web?

Cuéntame qué está pasando y te digo —sin compromiso— qué haría yo en tu caso.

Cuéntame qué está pasando →