Cambiar tema

Clustering de palabras clave con IA: de consultas a series y enlaces internos

Easton editorial illustration: one large rounded CLUSTER MAP board with grouped query chips and visible intent separation

"Google Search Central: crear contenido útil, fiable y centrado en las personas"

Tienes un archivo keywords.csv con 300 consultas sobre Astro, Docker y Cloudflare. La IA genera 42 clusters, pero la revisión manual encuentra astro seo y astro vs next.js for seo juntos en el cluster #1. La primera consulta busca un tutorial; la segunda, una comparación. Una sola página difícilmente resolverá ambas tareas.

Ese es el fallo práctico del clustering: la IA puede fusionar expresiones semánticamente cercanas que tienen intenciones distintas. Así aumenta el riesgo de canibalización, porque varios artículos casi iguales compiten por la misma demanda. Una lista de «grupos de palabras clave» tampoco dice cuáles deben convertirse en un artículo nuevo, una actualización, una FAQ o un enlace interno.

El flujo siguiente combina consultas de GSC, fichas de ideas e inventario del sitio. Normaliza y deduplica las filas, mantiene una revisión humana después del primer agrupamiento de la IA y asigna cada cluster a una acción: artículo nuevo, actualización, FAQ, enlace interno o discard. Los resultados incluyen fuentes, lógica de normalización, comparación de métodos, prompt, cluster map, marco de acciones y estructura de enlaces.

1. Reunir las fuentes correctas para el clustering

La entrada no es una lista inventada por la IA. Son datos query/page propios, fichas de ideas e inventario de contenidos. Juntos permiten ver qué temas merecen una página, cuáles ya tienen un artículo y qué preguntas proceden de comunidades reales.

La lista de fuentes queda así:

FuenteCamposCómo obtenerlaAtención
Datos GSC query/pagequery, page, clicks, impressions, CTR, positionSearch Console UI / Search Analytics APIEl rowLimit de la API es 1.000 por defecto y 25.000 como máximo por solicitud; los límites internos hacen que devuelva top rows sin garantizar todas las filas
Fichas de ideastítulo, intención, fuente (Reddit/GitHub/competidor), evidenciaSalida del agente de investigaciónRevisar manualmente la calidad de la fuente
Inventario del sitiotítulo, URL, serie, fecha, tráfico, consultas posicionadasBase del sitio / CMSMarcar artículos coincidentes y serie
Métricas quickWinsconsultas con muchas impresiones y CTR bajo, oportunidades de actualizaciónAnálisis GSC quickWinsApoyan la decisión de actualizar

Pasos:

  1. Exportar datos query/page de GSC. El informe Performance muestra por defecto los últimos tres meses, aunque el periodo puede ajustarse.
  2. Añadir las fichas producidas por el agente de investigación.
  3. Extraer el inventario: artículos existentes, series y rendimiento.
  4. Marcar quick wins: muchas impresiones, CTR bajo y oportunidades de actualización.
  5. Generar una tabla con query, intención inicial, fuente, coincidencia con artículo existente y marca quickWins.

2. Normalizar las palabras clave antes de agruparlas

La tabla combinada contiene duplicados, variantes y diferencias de escritura. Si no se procesan, la IA puede considerarlos términos distintos y dividir una sola intención entre varios clusters.

Lista de deduplicación:

  • Duplicado exacto: astro seo vs astro seo → conservar una fila
  • Variantes de escritura o configuración: docker host.docker.internal vs docker host-gateway vs docker 127.0.0.1 → marcar como candidatos de la misma intención y esperar confirmación humana
  • Sinónimos: cloudflare pricing vs precio cloudflare vs cloudflare cost → marcar como una intención
  • Cambio de forma: astro blog vs astro blogs → marcar como una intención

Reglas de normalización:

  • Unificar términos: nextjs → next.js, cloudflare workers → Cloudflare Workers
  • Unificar mayúsculas: Astro vs astro → astro
  • Unificar puntuación: astro, seo vs astro seo → astro seo

Etiquetas iniciales de intención:

  • Informativa: how to, what is, guide, tutorial
  • Navegacional: marca, producto, URL concreta
  • Comparativa: vs, compare, alternative
  • Transaccional: pricing, cost, buy, download

Pasos:

  1. Eliminar duplicados exactos de la tabla combinada.
  2. Detectar variantes y sinónimos, y marcarlos como candidatos de la misma intención.
  3. Normalizar términos, mayúsculas y puntuación.
  4. Etiquetar cada query como informativa, navegacional, comparativa o transaccional.
  5. Exportar una tabla con query, normalized_query, intent_tag, source y old_post_match.

3. Comparar tres métodos de clustering

La elección debe equilibrar costo, precisión y riesgo. Los tres enfoques principales encajan en etapas distintas.

MétodoCostoPrecisiónEscenario adecuadoRiesgo
SERP-basedAlto: muchas consultas SERP y posibles límites anti-botAlta: usa resultados reales y ayuda a decidir si unir páginasContenido publicado, análisis de solapamiento y presupuesto de SERP APICostoso; los cambios de SERP reducen la estabilidad
SemanticBajo: solo llamadas a una API de embeddingsMedia: puede ignorar la intención real y unir tareas distintasPrimer mapa temático, presupuesto limitado y agrupamiento rápidoPuede unir palabras próximas en significado pero distintas en intención
HybridMedio: primer paso semántico + validación SERP/GSC + revisión humanaAlta: equilibra costo y precisiónOperación continua con datos de GSC y tiempo de revisiónRequiere capacidad de revisión humana

Flujo recomendado:

  • Equipo pequeño / etapa inicial: primer paso Semantic + validación GSC/page + revisión humana de clusters de riesgo
  • Equipo mayor / contenido establecido: Hybrid con agrupamiento semántico, validación SERP/GSC y revisión humana
  • Presupuesto suficiente + decisión sobre solapamiento: SERP-based + revisión humana

Uso la opción Hybrid: la similitud semántica produce el primer agrupamiento, los datos de GSC page muestran qué consultas ya tienen página y una persona resuelve los conflictos de intención.

4. Ejecutar clustering con IA y una salida definida

Al enviar las palabras normalizadas a la IA, el prompt debe definir los campos y las reglas de intención. Esta es la estructura que utilizo.

Ejemplo de prompt para IA:

Eres especialista en planificación de contenidos SEO. Agrupa las palabras clave normalizadas siguientes en clusters según su intención de búsqueda. Para cada cluster, entrega:
1. primary_intent
2. canonical_page (tipo recomendado: new article / old post refresh / FAQ / discard)
3. suggested_action
4. internal_link_targets (artículos o series existentes que deben enlazarse)
5. risk_notes (posible canibalización o revisión humana necesaria)

Palabras clave:
- astro seo
- astro vs next js for seo
- cloudflare pricing
- docker host.docker.internal
- docker host-gateway
...

Devuelve un array JSON. Cada cluster debe seguir:
{
  "cluster_id": 1,
  "keywords": ["astro seo", ...],
  "primary_intent": "informativa - tutorial",
  "canonical_page": "new article",
  "suggested_action": "Crear un tutorial de Astro SEO",
  "internal_link_targets": ["serie astro-guide", "serie cloudflare-bindui"],
  "risk_notes": "Revisión humana: astro vs next js for seo tiene intención comparativa y no debe unirse"
}

Ejemplo de cluster map:

cluster_idkeywordsprimary_intentcanonical_pagesuggested_actioninternal_link_targetsrisk_notes
1astro seo, astro blog seoInformativa - tutorialnew articleCrear tutorial de Astro SEOserie astro-guide, serie cloudflare-binduiNinguno
2astro vs next js for seoComparativanew articleCrear comparativa SEO Astro vs Next.jsserie astro-guide, nextjs-blog-seriesNinguno
3cloudflare pricing, cloudflare cost, precio cloudflareTransaccionalold post refreshActualizar artículo de precios de Cloudflareserie cloudflare-binduiExiste /cloudflare-pricing; actualizarlo
4docker host.docker.internal, docker host-gateway, docker 127.0.0.1Informativa - configuraciónFAQAñadir FAQ a un artículo de Dockerserie docker-practiceVariantes de la misma intención; unir en una FAQ

Lista de revisión humana:

  • Intención mezclada: un cluster contiene tutorial y comparación → separar
  • Conflicto con página existente: el cluster indica «new article», pero existe un artículo relacionado → cambiar a old post refresh o FAQ
  • Fragmentación excesiva: una intención aparece en varios clusters → unir
  • Unión excesiva: varias intenciones aparecen en un cluster → separar

Pasos:

  1. Enviar la tabla normalizada a Claude, ChatGPT o un flujo interno de clustering.
  2. Ejecutar el primer agrupamiento con el prompt anterior.
  3. Exportar el cluster map.
  4. Revisar conflictos de intención, coincidencias con artículos, fragmentación y unión excesivas.
  5. Corregir el mapa y marcar clusters de riesgo.

5. Asignar cada cluster a una acción de contenido

Un cluster terminado necesita una acción ejecutable, no otra lista de palabras. Uso esta tabla de decisión.

FactorArtículo nuevoPágina pilarActualizaciónFAQEnlazado internodiscard
Número de queryMuchas (5+)Muchas (5+)Pocas (1–3)Pocas (1–3)Pocas (1–3)Una
Variación de intenciónAltaAltaBajaBajaBajaBaja
Artículo existenteNoNoSíSíSíSí
CompetenciaAltaAltaMediaMediaBajaBaja
Encaje temáticoAltoAltoAltoMedioMedioBajo
Espacio para valor originalAltoAltoBajoBajoBajoNinguno
Ejemplotutorial astro seoserie astrocloudflare pricingdocker host.docker.internalenlaces entre artículosvariante de marca

Definición de acciones:

  • Artículo nuevo: crear una página que cubra todas las consultas de la misma intención.
  • Página pilar: crear un hub de serie enlazado con las demás páginas del cluster.
  • Actualización: ampliar una página existente para cubrir nuevas consultas.
  • FAQ: añadir una respuesta concreta a un artículo existente.
  • Enlazado interno: añadir enlaces contextuales hacia la página canónica.
  • Discard: no crear contenido y marcar la consulta como poco valiosa o fuera de público.

Pasos:

  1. Puntuar cada cluster con los factores de decisión.
  2. Convertir la puntuación en una acción.
  3. Exportar una lista cluster_id → suggested_action.
  4. Revisar manualmente las acciones de riesgo: artículos nuevos y páginas pilar.

Las cantidades de query son señales de ejemplo, no umbrales automáticos. La acción final también depende de intención, inventario, valor original y costo de mantenimiento.

6. Diseñar enlaces internos como mapa de navegación

Las relaciones entre clusters deben convertirse en enlaces ejecutables, no en un bloque genérico de «artículos relacionados». Esta es la estructura.

Principios de enlazado interno:

  • Enlaces bidireccionales pillar/cluster: la página pillar enlaza a todas las cluster y cada cluster vuelve a la pillar.
  • Texto de anclaje descriptivo: explicar la intención de destino en vez de escribir «haz clic aquí».
  • Objetivo canónico: evitar páginas duplicadas o casi iguales y enlazar a la URL canónica preferida.
  • Sin artículos huérfanos: planificar al menos un enlace contextual entrante por artículo y añadir rutas según la arquitectura y el recorrido de lectura.
  • Campo internal_link_targets: registrar qué artículos o series deben recibir enlaces.

Plan de enlaces internos:

cluster_idpillar_pagecluster_pagesinternal_link_targetsAncla sugerida
1Guía completa de Astro SEOtutorial astro seo, astro blog seoserie astro-guide, serie cloudflare-bindui«optimización SEO de Astro», «optimización de rendimiento con Cloudflare»
2-astro vs next.js for seoserie astro-guide, nextjs-blog-series«comparativa Astro vs Next.js»
3-cloudflare pricingserie cloudflare-bindui«precios de Cloudflare explicados»

Pasos:

  1. Identificar páginas pillar y cluster.
  2. Diseñar la estructura bidireccional.
  3. Elegir un ancla descriptiva por enlace.
  4. Comprobar artículos huérfanos.
  5. Exportar el plan a la tabla de tareas.

Google considera actualmente las redirecciones y rel="canonical" señales fuertes, mientras que la inclusión en sitemap es más débil. Las señales pueden reforzarse, pero Google sigue eligiendo la canónica. Los enlaces internos deben apuntar de manera coherente a la URL preferida.

7. Definir límites antes de que el clustering produzca páginas en masa

El clustering no debe convertirse en un generador masivo de páginas. Ese patrón se aleja rápido del contenido centrado en las personas.

Límites de riesgo:

  • No crear una página por variante. Las query de la misma intención convergen en una página o destino canónico.
  • Exigir una evaluación de valor original. Cada cluster debe responder a un problema del lector, al foco del sitio y a una aportación real frente al contenido existente.
  • Consolidar query de la misma intención alrededor de una canónica. En páginas duplicadas o muy similares, redirecciones, rel="canonical" y sitemaps expresan una preferencia, pero tienen fuerza distinta y no garantizan la elección de Google.
  • Evitar contenido search-engine-first. El propósito principal es ayudar al lector, no manipular posiciones.
  • Reducir el riesgo de canibalización. Muchas páginas para palabras casi idénticas pueden hacer competir varias URL por la misma intención.
  • Marcar clusters de riesgo. El campo risk_notes exige revisión humana.

Líneas rojas de calidad:

  • Si existe un artículo coincidente, priorizar actualización o FAQ frente a otra página similar.
  • Toda salida debe evaluar encaje temático y valor original.
  • Los enlaces internos deben apuntar al artículo canónico, no a páginas duplicadas o cercanas.

8. Probar el flujo con Astro SEO, Cloudflare Pricing y Docker

Tres escenarios hacen concreto el proceso.

Ejemplo 1: astro seo vs astro vs next.js for seo (intenciones distintas, hay que separar)

  • Query originales: astro seo, astro vs next.js for seo, astro blog seo
  • Normalización: astro seo, astro vs next js for seo, astro blog seo
  • Primer paso de IA: cluster_id=1, keywords=[astro seo, astro vs next js for seo, astro blog seo]
  • Revisión humana: astro seo tiene intención de tutorial y astro vs next js for seo, de comparación; deben separarse.
  • Cluster map final:
    • cluster_id=1: [astro seo, astro blog seo] → crear tutorial de Astro SEO
    • cluster_id=2: [astro vs next js for seo] → crear comparativa SEO Astro vs Next.js

Ejemplo 2: cloudflare pricing (existe un artículo, hay que actualizar)

  • Query originales: cloudflare pricing, cloudflare cost, precio cloudflare
  • Normalización: cloudflare pricing, cloudflare pricing, cloudflare pricing
  • Primer paso de IA: cluster_id=3, keywords=[cloudflare pricing, cloudflare pricing, cloudflare pricing]
  • Coincidencia en inventario: artículo /cloudflare-pricing
  • Cluster map final:
    • cluster_id=3: [cloudflare pricing, cloudflare cost, precio cloudflare] → actualizar /cloudflare-pricing

Ejemplo 3: docker host.docker.internal (normalizar consultas técnicas relacionadas)

  • Query originales: docker host.docker.internal, docker host-gateway, docker 127.0.0.1
  • Normalización: marcarlas como grupo candidato para la misma intención de configuración.
  • Primer paso de IA: cluster_id=4, keywords=[docker host.docker.internal, docker host-gateway, docker 127.0.0.1]
  • Coincidencia en inventario: existe una serie Docker
  • Cluster map final:
    • cluster_id=4: [docker host.docker.internal, docker host-gateway, docker 127.0.0.1] → tras validar la intención, añadir una FAQ o sección a un artículo de Docker

9. Entregar el mapa de contenidos al siguiente flujo

Cuando termine el clustering, el cluster map pasa a la tabla de tareas, donde se definen campos, puntuación, estados y calendario. El artículo siguiente, «Diseño de una tabla de tareas de contenido: campos, puntuación, estados y publicación», cubre ese paso.

Para transformar un cluster map en una estructura redactable, continúa con «Generación de esquemas con IA: del cluster map al esquema». «Enlazado interno automático: generar enlaces por lotes y evitar errores» detallará luego la inserción.

La actualización de artículos existentes tiene su propia guía: «Estrategia GSC de actualización: de quick wins a mejoras de contenido».

Artículos relacionados ya publicados:

Convertir palabras clave en un mapa de contenidos ejecutable

Flujo mínimo desde varias fuentes hasta el cluster map, las acciones de contenido y el plan de enlaces internos.

⏱️ Estimated time: 60 min

  1. 1

    Step 1: Unificar las tres fuentes

    Reúne datos query/page de GSC, fichas de ideas e inventario de artículos en una tabla, conservando la fuente, la coincidencia con contenido existente y la marca quickWins.
  2. 2

    Step 2: Normalizar las palabras clave

    Resuelve duplicados, variantes, sinónimos, mayúsculas y puntuación; después etiqueta cada consulta como informativa, navegacional, comparativa o transaccional.
  3. 3

    Step 3: Ejecutar el primer agrupamiento semántico

    Pide a la IA que agrupe por intención y entregue primary_intent, canonical_page, suggested_action, internal_link_targets y risk_notes para cada cluster.
  4. 4

    Step 4: Validar los clusters de riesgo

    Usa GSC page, algunas SERP y criterio humano para detectar mezclas de tutorial y comparación, conflictos con artículos existentes, exceso de unión o fragmentación.
  5. 5

    Step 5: Asignar una acción principal

    Asigna cada cluster a artículo nuevo, página pilar, actualización, FAQ, enlazado interno o discard y guarda la justificación.
  6. 6

    Step 6: Crear el plan de enlaces internos

    Define enlaces bidireccionales pillar/cluster, objetivos canónicos y anclas descriptivas; después revisa artículos huérfanos y riesgos de duplicación.

FAQ

¿El clustering agrupa términos parecidos o consultas con la misma intención?
Debe priorizar la intención de búsqueda. Una palabra principal y variantes long-tail de la misma intención pueden compartir página. Las intenciones de tutorial, comparación, navegación o compra suelen requerir tratamientos separados.
¿Cuándo una palabra clave merece un artículo en lugar de un H2 o una FAQ?
Evalúa la diferencia de intención, los artículos existentes, el encaje temático y el valor original posible. Si una página ya cubre la intención, conviene actualizarla, añadir un H2 o FAQ, o mejorar sus enlaces. Crea un artículo solo para una tarea distinta sin página adecuada.
¿Se pueden mezclar consultas de GSC, preguntas de Reddit, issues de GitHub y títulos de competidores?
Sí, si mantienes visible la fuente y separas su función. GSC muestra demanda existente, las comunidades aportan formulaciones reales y los títulos competidores son solo inteligencia competitiva. Todo debe normalizarse y revisarse antes del clustering.
¿Por qué la IA fusiona palabras semánticamente cercanas con intenciones diferentes?
Los modelos semánticos reconocen entidades y expresiones relacionadas, pero no siempre el tipo de página que espera la persona. `astro seo` apunta a un tutorial; `astro vs next.js for seo`, a una comparación. Por eso hacen falta etiquetas de intención, comprobación con GSC o SERP y revisión humana.
¿Cómo elegir entre clustering SERP-based, semantic e hybrid?
En una etapa inicial o con poco presupuesto, usa semantic y corrige con GSC page y revisión humana. Un sitio establecido con datos recurrentes puede usar hybrid. Añade SERP-based cuando el solapamiento de resultados determine si unir o separar y exista presupuesto de consultas.
¿Conviene crear una página nueva si ya existe un artículo sobre el tema?
Primero comprueba si el artículo existente puede satisfacer la misma intención de forma natural. Si puede, actualiza el cuerpo, añade una FAQ o mejora los enlaces. Crea otra página solo si la intención y la función son claramente distintas y aportan suficiente valor original.
¿El clustering puede terminar en producción masiva de páginas de bajo valor?
Sí. Por eso cada cluster necesita un problema del lector, encaje temático, evaluación de valor original y aprobación humana. No crees una página por variante ni conviertas un cluster map generado por IA en una cola automática de publicación.

12 min de lectura · Publicado el: 13 nov 2026

Comentarios

Inicia sesión con GitHub para dejar un comentario

Easton BlogEaston Blog