Keywords con muchas impresiones y bajo CTR
Detecta keywords que aparecen frecuentemente en los resultados de búsqueda pero reciben pocos clics. Son oportunidades para mejorar títulos, meta descriptions o rich snippets.
-- Keywords con muchas impresiones pero bajo CTR
-- Oportunidades para mejorar títulos y meta descriptions
SELECT
query AS keyword,
SUM(impressions) AS impresiones,
SUM(clicks) AS clics,
ROUND(SAFE_DIVIDE(SUM(clicks), SUM(impressions)) * 100, 2) AS ctr,
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 28 DAY) AND CURRENT_DATE()
AND search_type = 'WEB'
AND is_anonymized_query = FALSE
GROUP BY
keyword
HAVING
-- Al menos 500 impresiones para que sea relevante
impresiones >= 500
-- CTR por debajo del 2%
AND ctr < 2.0
-- Posición media dentro del top 20 (tiene visibilidad real)
AND posicion_media <= 20
ORDER BY
impresiones DESC
LIMIT 50
Explicación paso a paso
- 7 Calcula el CTR real dividiendo clics entre impresiones.
- 8 Posición media con la fórmula correcta del export de GSC (0-indexed convertido a 1-indexed).
- 18 Filtra keywords con al menos 500 impresiones para enfocarse en términos con volumen significativo.
- 20 CTR menor al 2% indica que la keyword aparece mucho pero genera pocos clics.
- 22 Limita a posiciones dentro del top 20 porque fuera de ese rango el bajo CTR es esperado.
Ejemplo de resultado esperado
| keyword | impresiones | clics | ctr | posicion_media |
|---|---|---|---|---|
| analisis de datos sql | 12340 | 87 | 0.71 | 8.40 |
| consultas bigquery ejemplos | 8765 | 123 | 1.40 | 6.20 |
| seo con sql | 6543 | 98 | 1.50 | 11.30 |
Variaciones y adaptaciones
Para ajustar los umbrales, modificar los valores de impresiones >= 500 y ctr < 2.0 según el volumen del sitio. Para ver también la URL que rankea, usar searchdata_url_impression y añadir url al SELECT y GROUP BY. Para priorizar por impacto potencial, añadir una columna calculada: impresiones * (benchmark_ctr - ctr_actual).