Comparativa de posiciones GSC con tasa de conversión GA4
Analiza la relación entre la posición media en Google y la tasa de conversión por URL. Permite identificar si mejorar posiciones en determinadas páginas tendría un impacto real en conversiones.
-- Relación entre posición media en GSC y tasa de conversión en GA4
-- Agrupa por rangos de posición para ver la tendencia
WITH gsc_posiciones AS (
SELECT
url,
SUM(clicks) AS clics_gsc,
SUM(impressions) AS impresiones,
ROUND(SUM(sum_top_position + impressions) / SUM(impressions), 2) AS posicion_media
FROM
`your-project.searchconsole.searchdata_url_impression`
WHERE
data_date BETWEEN DATE_SUB(CURRENT_DATE(), INTERVAL 28 DAY) AND CURRENT_DATE()
AND search_type = 'WEB'
GROUP BY
url
HAVING
clics_gsc >= 10
),
ga4_conv AS (
SELECT
REGEXP_EXTRACT(
(SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'page_location'),
r'(https?://[^?#]+)'
) AS url_normalizada,
COUNT(
DISTINCT CONCAT(
user_pseudo_id, '.',
CAST(
(SELECT value.int_value FROM UNNEST(event_params) WHERE key = 'ga_session_id')
AS STRING)
)
) AS sesiones,
COUNTIF(
event_name IN ('generate_lead', 'purchase', 'sign_up')
) AS conversiones
FROM
`your-project.analytics_XXXXXXXXX.events_*`
WHERE
_TABLE_SUFFIX BETWEEN FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 28 DAY))
AND FORMAT_DATE('%Y%m%d', CURRENT_DATE())
AND traffic_source.medium = 'organic'
GROUP BY
url_normalizada
)
SELECT
CASE
WHEN g.posicion_media <= 3 THEN '01. Top 3'
WHEN g.posicion_media <= 5 THEN '02. Pos 4-5'
WHEN g.posicion_media <= 10 THEN '03. Pos 6-10'
WHEN g.posicion_media <= 20 THEN '04. Pos 11-20'
ELSE '05. Pos 21+'
END AS rango_posicion,
COUNT(*) AS urls,
SUM(g.clics_gsc) AS clics_totales,
SUM(IFNULL(c.conversiones, 0)) AS conversiones_totales,
ROUND(SAFE_DIVIDE(
SUM(IFNULL(c.conversiones, 0)),
SUM(g.clics_gsc)
) * 100, 2) AS tasa_conversion_global
FROM
gsc_posiciones g
LEFT JOIN ga4_conv c ON g.url = c.url_normalizada
GROUP BY
rango_posicion
ORDER BY
rango_posicion ASC
Explicación paso a paso
- 3 El CTE gsc_posiciones calcula la posición media de cada URL con al menos 10 clics.
- 19 El CTE ga4_conv cuenta sesiones y conversiones orgánicas por URL desde GA4.
- 46 Clasifica las URLs en rangos de posición (Top 3, 4-5, 6-10, 11-20, 21+) para analizar la tendencia.
- 52 Cuenta el número de URLs en cada rango para contextualizar los datos.
- 55 Calcula la tasa de conversión global por rango dividiendo conversiones totales entre clics totales.
- 61 LEFT JOIN para incluir URLs sin conversiones en el análisis.
Ejemplo de resultado esperado
| rango_posicion | urls | clics_totales | conversiones_totales | tasa_conversion_global |
|---|---|---|---|---|
| 01. Top 3 | 45 | 12340 | 456 | 3.70 |
| 02. Pos 4-5 | 67 | 5678 | 187 | 3.29 |
| 03. Pos 6-10 | 123 | 3456 | 87 | 2.52 |
| 04. Pos 11-20 | 234 | 1234 | 23 | 1.86 |
| 05. Pos 21+ | 345 | 456 | 5 | 1.10 |
Variaciones y adaptaciones
Reemplazar los eventos de conversión según la configuración del sitio. Para ver el detalle por URL en lugar de por rango, eliminar el CASE y el GROUP BY por rango. Para añadir el valor monetario, incluir SUM(event_value) en el CTE de GA4 y calcular el revenue por rango.
Queries relacionadas
Valor por keyword combinando clics GSC y revenue GA4
Cruce GA4 + GSC
Avanzado
Análisis de páginas zombi: sin clics ni conversiones
Cruce GA4 + GSC
Avanzado
Eventos clave (conversiones) atribuidos a orgánico
GA4 en BigQuery
Intermedio
Keywords que generan conversiones reales en GA4
Cruce GA4 + GSC
Avanzado