Evolución de posición media de keywords objetivo
Rastrea la evolución diaria de la posición media de keywords específicas a lo largo del tiempo. Permite monitorear el impacto de las optimizaciones SEO en el ranking.
-- Evolución diaria de posición media para keywords objetivo
-- Reemplazar la lista de keywords por las que se desea monitorear
SELECT
data_date AS fecha,
query AS keyword,
SUM(clicks) AS clics,
SUM(impressions) AS impresiones,
ROUND(SUM(sum_top_position + impressions) / SUM(impressions), 2) AS posicion_media
FROM
`your-project.searchconsole.searchdata_site_impression`
WHERE
data_date BETWEEN DATE_SUB(CURRENT_DATE(), INTERVAL 90 DAY) AND CURRENT_DATE()
AND search_type = 'WEB'
AND is_anonymized_query = FALSE
-- Reemplazar con las keywords objetivo del proyecto
AND query IN (
'consultas sql seo',
'bigquery ga4',
'sql para analytics'
)
GROUP BY
fecha, keyword
ORDER BY
keyword, fecha ASC
Explicación paso a paso
- 4 data_date proporciona la fecha exacta de cada registro para construir la línea temporal.
- 8 Posición media diaria calculada con la fórmula correcta del export GSC.
- 12 Rango de 90 días para tener suficiente historia y detectar tendencias.
- 16 Lista de keywords objetivo a monitorear. Reemplazar con los términos relevantes del proyecto.
- 23 Ordena por keyword y fecha para facilitar la visualización de tendencias.
Ejemplo de resultado esperado
| fecha | keyword | clics | impresiones | posicion_media |
|---|---|---|---|---|
| 2026-04-01 | consultas sql seo | 12 | 234 | 5.30 |
| 2026-04-02 | consultas sql seo | 15 | 256 | 4.80 |
| 2026-04-03 | consultas sql seo | 18 | 278 | 4.20 |
| 2026-04-01 | bigquery ga4 | 8 | 187 | 7.10 |
Variaciones y adaptaciones
Para ver la tendencia semanal en lugar de diaria, usar DATE_TRUNC(data_date, WEEK) AS semana en el GROUP BY. Para incluir todas las keywords automáticamente (sin lista fija), eliminar el filtro AND query IN (...) y añadir HAVING impresiones >= 50. Para comparar la posición media con el CTR, ambos valores ya están incluidos.