Categorizar keywords por intención usando CASE WHEN
Clasifica automáticamente keywords por intención de búsqueda (informacional, transaccional, navegacional, comercial) usando patrones de texto con CASE WHEN. Permite segmentar el análisis SEO por tipo de intención.
-- Categorizar keywords por intención de búsqueda
-- Los patrones LIKE deben adaptarse al idioma y nicho del sitio
SELECT
query AS keyword,
SUM(clicks) AS clics,
SUM(impressions) AS impresiones,
CASE
-- Intención transaccional: el usuario quiere comprar o contratar
WHEN LOWER(query) LIKE '%comprar%'
OR LOWER(query) LIKE '%precio%'
OR LOWER(query) LIKE '%contratar%'
OR LOWER(query) LIKE '%descuento%'
OR LOWER(query) LIKE '%oferta%'
THEN 'Transaccional'
-- Intención comercial: el usuario investiga antes de comprar
WHEN LOWER(query) LIKE '%mejor%'
OR LOWER(query) LIKE '%comparar%'
OR LOWER(query) LIKE '%vs%'
OR LOWER(query) LIKE '%alternativa%'
OR LOWER(query) LIKE '%review%'
THEN 'Comercial'
-- Intención navegacional: el usuario busca un sitio o marca
WHEN LOWER(query) LIKE '%login%'
OR LOWER(query) LIKE '%iniciar sesion%'
OR LOWER(query) LIKE '%pagina oficial%'
THEN 'Navegacional'
-- Intención informacional: el usuario busca aprender
WHEN LOWER(query) LIKE '%como%'
OR LOWER(query) LIKE '%que es%'
OR LOWER(query) LIKE '%tutorial%'
OR LOWER(query) LIKE '%guia%'
OR LOWER(query) LIKE '%ejemplo%'
THEN 'Informacional'
ELSE 'Sin clasificar'
END AS intencion
FROM
`your-project.your_dataset.search_data`
WHERE
data_date BETWEEN DATE_SUB(CURRENT_DATE(), INTERVAL 28 DAY) AND CURRENT_DATE()
GROUP BY
keyword, intencion
ORDER BY
clics DESC
LIMIT 100
Explicación paso a paso
- 7 CASE WHEN evalúa las condiciones en orden. La primera que se cumpla determina la categoría.
- 9 Patrones transaccionales: palabras que indican intención de compra o contratación.
- 16 Patrones comerciales: palabras que indican investigación previa a la compra.
- 23 Patrones navegacionales: palabras que indican búsqueda de un sitio específico.
- 28 Patrones informacionales: palabras que indican búsqueda de conocimiento.
- 34 'Sin clasificar' captura keywords que no encajan en ningún patrón definido.
Ejemplo de resultado esperado
| keyword | clics | impresiones | intencion |
|---|---|---|---|
| como hacer consultas sql | 876 | 12345 | Informacional |
| mejor herramienta seo | 543 | 8765 | Comercial |
| comprar plan seo premium | 234 | 4567 | Transaccional |
| bigquery login | 187 | 3456 | Navegacional |
| bigquery analytics | 156 | 2345 | Sin clasificar |
Variaciones y adaptaciones
Para ver el resumen agregado por intención (sin detalle por keyword), eliminar query del SELECT y GROUP BY y sumar clics e impresiones por intención. Para añadir patrones en inglés, ampliar cada sección con términos como 'buy', 'how to', 'best', etc. Para usar expresiones regulares más precisas, reemplazar LIKE por REGEXP_CONTAINS con patrones como r'bpreciob' para matching de palabras completas.