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-intencion.sql
-- 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

keywordclicsimpresionesintencion
como hacer consultas sql87612345Informacional
mejor herramienta seo5438765Comercial
comprar plan seo premium2344567Transaccional
bigquery login1873456Navegacional
bigquery analytics1562345Sin 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.