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
Atribución multicanal con orgánico como primer touch
GA4 en BigQuery
Avanzado
Funnel de conversión desde landing orgánica hasta evento clave
GA4 en BigQuery
Avanzado
URLs con buen CTR en GSC pero bajo engagement en GA4
Cruce GA4 + GSC
Avanzado