En SEO técnico, organizar y optimizar las palabras clave es crucial para mejorar la eficiencia en la toma de decisiones. En este artículo, te mostraré cómo hacer clusters SEO con Python utilizando técnicas avanzadas como HDBSCAN y TF-IDF, dos herramientas poderosas que te permiten agrupar queries de manera dinámica y sin necesidad de definir un número fijo de clusters.
¿Qué es el clustering SEO?
El clustering SEO es la agrupación de palabras clave o queries que comparten similitudes semánticas. Esta técnica ayuda a organizar grandes volúmenes de datos de consultas de búsqueda, permitiéndonos identificar intenciones y optimizar contenidos de forma más precisa.
Por ejemplo, si tienes miles de queries extraídas de Google Search Console, un buen agrupamiento te permitirá:
- Identificar temas comunes en las consultas.
- Detectar oportunidades para crear contenido más relevante.
- Optimizar páginas agrupando keywords que pueden dirigirse en una sola URL.
¿Por qué usar Python para clustering SEO?
Python es una herramienta poderosa para automatizar análisis de datos. Con librerías como HDBSCAN y TF-IDF, podemos crear scripts que automáticamente agrupen queries sin necesidad de definir cuántos clusters queremos. Esto es particularmente útil en SEO, ya que permite trabajar con grandes volúmenes de datos de forma eficiente y sin intervención manual.
Explicando HDBSCAN
HDBSCAN es un algoritmo de clustering. En términos simples, su trabajo es encontrar grupos (clusters) de palabras clave que son similares entre sí. Lo hace basándose en la densidad de los datos, es decir, agrupa palabras que están "cerca" en términos de significado y relación. Es muy útil porque:
- No necesitas decirle cuántos grupos crear. HDBSCAN decide cuántos clusters son necesarios basándose en los datos.
- Detecta palabras que no pertenecen a ningún grupo. Estas se marcan como ruido (
-1), lo que nos ayuda a identificar queries que están muy aisladas o son demasiado específicas.
Por ejemplo, si tienes queries como "comprar zapatos rojos" y "mejores zapatos de running", HDBSCAN agruparía estas queries en función de cuántas palabras comparten o cuán parecidas son. Si una query es demasiado diferente, como "cómo tocar guitarra", HDBSCAN la dejaría fuera del grupo.
Explicando TF-IDF
TF-IDF (Term Frequency-Inverse Document Frequency) es una técnica que transforma las palabras en números para que los algoritmos puedan entenderlas. Cuando tenemos miles de queries, como en un análisis SEO, los algoritmos no pueden leerlas como texto, por eso convertimos las palabras en números que representen la importancia de cada una.
En resumen:
- Term Frequency (TF): Mide cuántas veces aparece una palabra en una query.
- Inverse Document Frequency (IDF): Mide qué tan común o rara es una palabra entre todas las queries.
Si una palabra aparece muchas veces en una query y es rara entre las demás queries, se considera importante. Así, TF-IDF nos ayuda a crear una matriz numérica donde las queries similares estén más cerca entre sí, y las diferentes estén más lejos.
Por ejemplo:
- La palabra "zapatos" aparece en muchas queries, pero si "zapatos rojos" aparece en una y no en muchas otras, esa combinación tiene un valor alto de TF-IDF.
Paso a paso: cómo hacer clusters SEO con Python
A continuación, te muestro un ejemplo práctico de cómo puedes agrupar queries SEO utilizando Python. El script que presentamos usa TF-IDF para representar las queries como vectores y HDBSCAN para crear clusters sin necesidad de especificar un número fijo.
1. Instalación de las librerías necesarias
Primero, necesitas instalar las librerías que utilizaremos:
- HDBSCAN: Un algoritmo de clustering basado en densidad, ideal para crear clusters sin necesidad de definir el número.
- Scikit-learn: Usamos esta librería para generar los vectores de las queries con TF-IDF.
- Pandas: Para manejar y analizar los datos de las queries.
2. Importar los datos
El siguiente paso es cargar las queries que queremos agrupar. Si tienes un archivo CSV con datos de Google Search Console, puedes cargarlo de la siguiente manera:
from google.colab import files
Subir el archivo CSV
uploaded = files.upload()
Leer el archivo CSV
df = pd.read_csv(list(uploaded.keys())[0])
Revisamos las primeras filas
print(df.head())
3. Convertir las queries a TF-IDF
Aquí es donde entra en juego TF-IDF. Usamos esta técnica para convertir las queries en números que HDBSCAN pueda usar para crear los clusters.
# Convertir las queries a TF-IDF
vectorizer = TfidfVectorizer(ngram_range=(1, 2)) # Para tener en cuenta bigramas (pares de palabras)
tfidf_matrix = vectorizer.fit_transform(df['Top queries'])
- ngram_range=(1, 2): Este parámetro le dice al modelo que no solo mire palabras individuales (unigramas), sino también combinaciones de dos palabras (bigramas). Esto es útil porque en SEO las frases con dos palabras suelen tener un significado diferente, como "zapatos rojos" o "tiendas online".
4. Crear los clusters con HDBSCAN
Ahora aplicamos HDBSCAN para que agrupe las queries automáticamente en función de su similitud semántica.
# Aplicamos HDBSCAN para crear clusters basados en densidad
clusterer = hdbscan.HDBSCAN(metric='euclidean', cluster_selection_method='eom')
cluster_labels = clusterer.fit_predict(tfidf_matrix.toarray())
Agregar los clusters al DataFrame
df['Cluster'] = cluster_labels
Revisar los clusters creados
print(df['Cluster'].value_counts())
¿Cómo funciona HDBSCAN?
- metric='euclidean': Usamos la distancia euclidiana para medir qué tan "lejos" están dos queries en términos de su representación numérica (gracias a TF-IDF).
- cluster_selection_method='eom': Este método selecciona los clusters de manera óptima, buscando los que mejor representen la estructura de los datos.
Cada query será asignada a un cluster. Si no pertenece a ningún grupo, será etiquetada como -1 (ruido).
5. Guardar los resultados
Finalmente, puedes guardar el resultado en un archivo CSV para realizar más análisis o aplicar optimizaciones:
df.to_csv('clustered_queries.csv', index=False)
6. ¿Cómo interpretar los resultados?
El algoritmo de HDBSCAN asignará cada query a un cluster. Aquellas queries que no encajen en ningún cluster serán etiquetadas como ruido (valor -1). Estos son queries aisladas que no tienen suficiente densidad semántica para ser agrupadas.
Ventajas del clustering SEO con Python
- Ahorro de tiempo: En lugar de agrupar keywords manualmente, puedes procesar miles de queries en minutos.
- Agrupación dinámica: Con HDBSCAN, no necesitas definir cuántos clusters crear; el algoritmo detecta la cantidad necesaria basándose en la densidad de los datos.
- Mejor optimización de contenido: Al agrupar palabras clave por intención semántica, puedes crear contenidos más enfocados y dirigidos a los intereses de los usuarios.
Es importante revisar los resultados del clustering para asegurarte de que las keywords están bien agrupadas. Si encuentras queries que no tienen sentido dentro de un cluster, puedes ajustar el script o los parámetros de clustering para obtener mejores resultados.
Usar Python para crear clusters SEO te permite optimizar de manera eficiente las palabras clave de tus campañas y descubrir patrones en los datos que, de otra forma, serían difíciles de identificar manualmente. Implementar scripts como el que te mostramos te ayudará a mejorar tus estrategias de contenido y a crear páginas que respondan mejor a las intenciones de búsqueda de tus usuarios.
Los enlaces a la documentación oficial de HDBSCAN y TF-IDF en Python para que puedas consultarlos más a fondo:
-
HDBSCAN:
- Documentación oficial: HDBSCAN
- Repositorio GitHub: HDBSCAN GitHub
-
TF-IDF en Scikit-learn:
- Documentación oficial del TfidfVectorizer: TF-IDF Scikit-learn