¿Cómo utilizar Python para SEO?

Haciendo una investigación de palabras clave para SEO con Python

La investigación de palabras clave es probablemente una de las funciones mas importantes de un Consultor SEO cuando comienza a trabajar en un nuevo sitio.

Y es que todas las estrategias de posicionamiento comienza con una investigación de palabras clave, y aunque existen numerosas herramientas todas tienen una grave desventaja: son costosas.

Por suerte podemos utilizar el poder de los nuevos modelos de lenguaje para hacer una investigación exitosa y gratuita.

 

¿Qué son los modelos de lenguaje?

Un modelo de lenguaje es un sistema que tiene la capacidad de predecir el lenguaje humano mediante el procesamiento de enormes cantidades de texto.

Realmente los modelos de lenguaje no comprenden lo que les decimos, pero gracias al análisis de millones de documentos pueden generar respuestas que parecen ser adecuadas.

Cuando digo que las respuestas generadas «parecen ser adecuadas» me refiero a que los modelos de lenguaje no comprueban lo que dicen, solo generan respuestas que pueden sufrir de «alucinaciones».

Ejemplo de alucinaciones de ChatGPT

Generando una lista de palabras clave de la competencia

Uno de los primeros consejos al hacer una investigación de palabras clave para SEO es mirar lo que esta haciendo la competencia.

Al analizar a nuestros competidores podemos saber que segmentos del mercado nos falta abarcar y nos ayuda a tener un sitio más completo.

Descargando el código HTML

El primer paso es obtener el contenido del sitio web utilizando la librería requests y ultimate-sitemap-parser.

import requests
from bs4 import BeautifulSoup
from usp.tree import sitemap_tree_for_homepage

dominio = "https://amigurumis.com.mx/"

for page in sitemap_tree_for_homepage(dominio).all_pages():

    response = requests.get(page.url)

El script anterior carga el sitemap del sitio que vamos a analizar y nos devuelve la URL de todas las páginas que contiene.

Después utiliza el método requests.get para descargar el código HTML de cada página.

Usando BeautifulSoup para aislar el texto

Ahora que tenemos el código HTML vamos a utilizar BeautifulSoup para obtener solo el texto que consideramos parte importante de nuestra investigación.

¿Y que contenido es importante? Sin revisar la estructura de la página es una pregunta difícil de responder pero podemos utilizar solo los encabezados (H1, H2, H3 ,H4 ,H5 ,H6) y los párrafos (P) para comenzar a generar la lista de palabras clave.

import requests
from bs4 import BeautifulSoup
from usp.tree import sitemap_tree_for_homepage

dominio = "https://amigurumis.com.mx/"

for page in sitemap_tree_for_homepage(dominio).all_pages():

    response = requests.get(page.url)
    soup = BeautifulSoup(response.content, 'html.parser')
    contenido = map(lambda t: t.text.strip().lower(), soup.select("h1, h2, h3, h4, h5, h6, p"))

El metodo soup.select nos devuelve una lista con los elementos HTML que BeautifulSoup pudo encontrar en el documento, después utilizamos la función map para obtener una lista con cadenas de texto en minúsculas y sin espacios en los extremos.

Generando las palabras clave SEO con Gemini 1.5 Flash

El último paso consiste en utilizar el paquete oficial google.generativeai para utilizar el modelo Gemini 1.5 Flash.

Para poder utilizarlo vas a necesitar una llave, pero no es un problema, puedes generarla desde el sitio de Google AI Studio de manera gratuita.

La versión final del script se ve así:

import requests, json, time
import google.generativeai as genai
from bs4 import BeautifulSoup
from usp.tree import sitemap_tree_for_homepage

dominio = "https://amigurumis.com.mx/"

prompt = "Actua como un experto en SEO y utiliza este contenido para crear una lista de palabras clave (intenta usar palabras longtail), despues almacenalas en un arreglo que se llame 'palabras': "
genai.configure(api_key="TU_LLAVE")
model = genai.GenerativeModel('gemini-1.5-flash', generation_config={"response_mime_type": "application/json"})

for page in sitemap_tree_for_homepage(dominio).all_pages():

    response = requests.get(page.url)
    soup = BeautifulSoup(response.content, 'html.parser')
    c = map(lambda t: t.text.strip().lower(), soup.select("h1, h2, h3, p"))

    response = json.loads(model.generate_content(prompt + "\n".join(c)).text)

    for keyword in response["palabras"]:
        print(keyword)

    time.sleep(5)

Una vez que ejecutes el script vas a obtener un enorme listado de palabras clave generadas por Gemini Flash 1.5 a partir del contenido del sitio.

Comprobando el volumen de búsqueda

Después de generar una pequeña lista de palabras utilizando el contenido de amigurumis.com.mx voy a comprobar el volumen de busquedas utilizando Keyword Planner.

Estos son algunos ejemplos de los resultados que obtuve.

Palabra clave Volumen de búsqueda
Amigurumis Personalizados 100 a 1 K
Cajas de Regalo originales 100 a 1 K
cajas de regalo creativas 100 a 1 K
amigurumis animales 100 a 1 K
tejidos a dos agujas 100 a 1 K
patrones gratuitos de amigurumis 100 a 1 K
amigurumis faciles para principiantes 10 a 100
amigurumis para regalar 10 a 100
amigurumis kawai 10 a 100
amigurumis personajes 10 a 100

No es necesario utilizar Keyword Planner, pero a diferencia de otras herramientas importar el conjunto de palabras es completamente gratuito.

Consultando el volumen de búsqueda con Keyword Planner

Algunas mejoras

El script es funcional, pero también seria interesante implementar estas funciones:

  • Consultor automáticamente el volumen de búsqueda
  • Exportar a CSV
  • Comprobar si la palabra ya se uso en el sitio
  • Calificar la calidad del contenido

¿Tienes problemas con el SEO de tu sitio?

Me encuentro disponible para trabajar en tu sitio web y llevarlo a los primeros resultados de Google. Si ya estas trabajando con una Agencia podría interesarte mi servicio de SEO en 1 hora para evaluar los resultados de tu equipo actual.

Fotografia de Alberto Prado
Redacción por
Alberto Prado
Desarrollador Web y Consultor SEO, me especializo en crear paginas web que te ayuden a vender más de manera organica.

Los comentarios están cerrados.

Iniciemos Hoy
La velocidad importa: Acelera tu sitio web y aumenta tus ventas hasta un 12%