Python para SEO: guía para principiantes para escribir scripts con ChatGPT o Claude

  • Actualizado
  • Tiempo de lectura 17 min
Python for SEO beginner guide, Marketer Coffee
Índice 18
  1. ¿Qué puede hacer realmente Python por un SEO?
  2. ¿Necesitas saber programar antes de empezar?
  3. ¿Cuál es la configuración más sencilla para ejecutar scripts SEO?
  4. ¿Cómo debes pedir a ChatGPT o Claude que escriba un script SEO?
  5. Ejemplo 1: ¿cómo se comprueban los códigos de estado de una lista de URL?
  6. Ejemplo 2: ¿cómo se extraen títulos y meta descripciones de forma masiva?
  7. Ejemplo 3: ¿cómo se encuentran palabras clave “a punto de despegar” en una exportación de Search Console?
  8. Ejemplo 4: ¿cómo se ve qué páginas han perdido clics entre dos periodos?
  9. ¿Qué tareas SEO deberías automatizar después y cuáles dejar a las herramientas?
  10. ¿Cómo usar los asistentes de IA para entender el código, no solo para escribirlo?
  11. ¿Cuándo tiene sentido recurrir a Marketer Coffee?
  12. Preguntas frecuentes sobre Python para SEO
    1. ¿Merece la pena aprender Python para SEO en 2026?
    2. ¿Pueden ChatGPT o Claude escribir scripts SEO que funcionen al primer intento?
    3. ¿Qué librerías de Python debería aprender primero un principiante en SEO?
    4. ¿Cómo obtengo más de 1.000 filas de Search Console?
    5. ¿Es seguro ejecutar scripts SEO contra cualquier web?
  13. ¿Qué debes recordar sobre Python para SEO?

Python para SEO significa usar scripts cortos para hacer las partes repetitivas del trabajo de búsqueda: comprobar cientos de URL, extraer títulos y meta descripciones y analizar exportaciones de Search Console más rápido de lo que permite una hoja de cálculo. No necesitas convertirte en desarrollador para sacarle partido. En 2026 puedes describir la tarea a ChatGPT o Claude con palabras sencillas, recibir un script que funciona, ejecutarlo y comprobar el resultado.

La habilidad que importa no es memorizar la sintaxis. Es saber qué pedir, cómo ejecutar el código de forma segura y cómo saber si el resultado es correcto. Un principiante capaz de leer un script de 20 líneas y detectar un nombre de columna erróneo hará más que alguien que copia código a ciegas.

Esta guía te da una configuración que lleva unos diez minutos, un patrón de prompt que produce scripts utilizables y cuatro ejemplos probados que puedes ejecutar hoy: un comprobador de códigos de estado, un extractor de títulos y meta descripciones, un buscador de palabras clave “a punto de despegar” en datos de Search Console y una comparación de periodos que muestra qué páginas han perdido clics.

Todos los scripts de esta guía se ejecutaron con datos de muestra antes de publicarse, así que puedes copiarlos como punto de partida y adaptarlos con tu asistente de IA.

¿Qué puede hacer realmente Python por un SEO?

Python es más útil cuando repites la misma comprobación en muchas filas de datos. Si una tarea te lleva más de una hora en una hoja de cálculo, o la haces todos los meses, es candidata a un script.

Tareas típicas aptas para principiantes:

  • Comprobar los códigos de estado y las redirecciones de una lista de URL después de una migración
  • Extraer títulos, meta descripciones, H1 o etiquetas canonical de muchas páginas
  • Filtrar y agrupar exportaciones de Search Console por consulta, página o patrón
  • Comparar dos periodos para encontrar páginas o consultas que han perdido tráfico
  • Combinar datos de distintas herramientas a partir de una columna de URL compartida
  • Extraer más filas de Search Console de las que la interfaz te deja exportar

Python no sustituye a un rastreador como Screaming Frog ni a una plataforma todo en uno. Cubre los huecos entre ellos: la pregunta puntual que tu herramienta no responde o el informe que montas igual cada mes. Nuestra lista de herramientas SEO que usamos cubre la parte comercial del stack.

¿Necesitas saber programar antes de empezar?

No, pero necesitas leer código lo bastante bien como para revisarlo. Los asistentes de IA escriben código plausible muy rápido, y plausible no es lo mismo que correcto. Un script puede ejecutarse sin errores y aun así contar la columna equivocada o saltarse la mitad de tus URL.

Un objetivo realista para un principiante es este: poder abrir un script, encontrar dónde lee el archivo de entrada, ver qué columnas usa y entender qué escribe como salida. Ese nivel lleva unas cuantas tardes, no meses. Pide al asistente que añada comentarios a cada bloque y que te explique cualquier línea que no entiendas.

Tres hábitos te protegen de la mayoría de los errores:

  1. Prueba primero con una muestra pequeña. Ejecuta el script con 10 URL o 20 filas cuya respuesta ya conozcas.
  2. Revisa la salida por muestreo. Abre manualmente tres resultados en el navegador o en la exportación original y compara.
  3. Nunca pegues datos secretos. No des a un chat de IA tus claves de API, contraseñas de clientes ni datos personales de las exportaciones.

¿Cuál es la configuración más sencilla para ejecutar scripts SEO?

Tienes dos buenas opciones: un notebook en el navegador sin nada que instalar, o Python en tu propio ordenador.

Dos formas de ejecutar Python para SEO como principiante
OpciónIdeal paraQué debes saber
Google Colab (notebook en el navegador)Primeros experimentos, compartir con compañerosSin instalación. Sube un CSV a la sesión y ejecuta las celdas una a una. Los archivos desaparecen al terminar la sesión salvo que los guardes en Drive.
Python en tu ordenadorInformes periódicos, archivos más grandes, tareas programadasInstala Python 3 desde python.org y después ejecuta pip install requests beautifulsoup4 pandas en un terminal. Ejecuta los scripts con python script_name.py.
Editor de código (opcional)Leer y editar scripts con comodidadVS Code o cualquier editor compatible con Python resalta los errores y hace visible la sangría.

Los ejemplos de esta guía usan tres librerías. requests descarga páginas web. Beautiful Soup (paquete beautifulsoup4) lee HTML y encuentra etiquetas. pandas trabaja con tablas, que es lo que son la mayoría de los datos SEO. Las tres son gratuitas, están muy documentadas y los asistentes de IA las conocen bien, lo que significa que el código generado que las usa suele ser fiable.

¿Cómo debes pedir a ChatGPT o Claude que escriba un script SEO?

Describe la entrada, la salida y los casos límite, no solo el objetivo. “Escribe un script de Python para comprobar mis URL” produce código genérico. Un prompt concreto produce algo que puedes ejecutar al primer intento.

Una estructura de prompt que funciona bien:

  1. Contexto: “Soy SEO, no desarrollador. Ejecuto Python 3 en local.”
  2. Entrada: “Tengo un archivo urls.txt con una URL por línea.” O pega la fila de cabecera y dos filas de ejemplo de tu CSV.
  3. Tarea: “Para cada URL, registra el código de estado HTTP sin seguir las redirecciones, y el destino de la redirección si lo hay.”
  4. Salida: “Guarda un CSV con las columnas url, status, redirect_to_or_error e imprime los resultados.”
  5. Casos límite: “No te detengas si una URL agota el tiempo de espera o el dominio no resuelve. Usa un timeout de 10 segundos.”
  6. Restricciones: “Usa solo requests, Beautiful Soup y pandas. Añade un comentario encima de cada bloque.”

Cuando el script falle, pega el mensaje de error completo en el chat y di qué ejecutaste. Tanto ChatGPT como Claude corrigen bien su propio código cuando ven el traceback exacto. Si la salida parece incorrecta en lugar de fallar, describe lo que esperabas y lo que obtuviste, con una fila de ejemplo.

Los cuatro ejemplos siguientes se crearon así y después se recortaron y probaron.

Ejemplo 1: ¿cómo se comprueban los códigos de estado de una lista de URL?

Este script lee URL de un archivo de texto, solicita cada una sin seguir las redirecciones y guarda los códigos de estado en un CSV. Es lo primero que hay que ejecutar después de una migración, una actualización del mapa de redirecciones o una limpieza del sitemap.

Crea un archivo llamado urls.txt con una URL por línea, guarda el script a su lado como check_status.py y ejecútalo.

import csv
import requests

HEADERS = {"User-Agent": "Mozilla/5.0 (compatible; MySEOCheck/1.0)"}

with open("urls.txt", encoding="utf-8") as f:
    urls = [line.strip() for line in f if line.strip()]

results = []
for url in urls:
    try:
        r = requests.get(url, headers=HEADERS, timeout=10, allow_redirects=False)
        results.append([url, r.status_code, r.headers.get("Location", "")])
    except requests.RequestException as e:
        results.append([url, "ERROR", type(e).__name__])

with open("status_report.csv", "w", newline="", encoding="utf-8") as f:
    writer = csv.writer(f)
    writer.writerow(["url", "status", "redirect_to_or_error"])
    writer.writerows(results)

for row in results:
    print(*row, sep="\t")

Qué buscar en la salida:

  • 200: la página carga. Correcto para URL que deben estar activas e indexables.
  • 301 o 308: redirección permanente. Comprueba que el destino de la tercera columna es la página correcta y no la página de inicio por defecto.
  • 302 o 307: redirección temporal. A menudo es señal de que una redirección permanente se configuró mal.
  • 404 o 410: la página ya no existe. Bien si es intencionado; un problema si la URL está en tu sitemap o en tus enlaces internos.
  • 5xx o ERROR: problema del servidor o de conexión. Vuelve a ejecutarlo más tarde; si persiste, coméntalo con tu desarrollador.

El script establece allow_redirects=False a propósito. Si dejas que requests siga las redirecciones, una cadena de 301 aparecería como 200 y no verías la redirección. Si estás auditando cadenas de redirecciones, pide a tu asistente una versión que siga la cadena y enumere cada salto.

Sé prudente con el volumen de peticiones. Para unos cientos de URL de tu propio sitio no hay problema. Para miles, pide al asistente que añada una breve pausa entre peticiones, y nunca lances un script como este contra un sitio que no tengas permiso para probar.

Ejemplo 2: ¿cómo se extraen títulos y meta descripciones de forma masiva?

Este script descarga cada URL, lee el HTML con Beautiful Soup y registra el título, la meta descripción y sus longitudes. Es una forma rápida de encontrar snippets que faltan, están vacíos o duplicados en un conjunto de páginas, por ejemplo todos los productos de una categoría.

import csv
import requests
from bs4 import BeautifulSoup

HEADERS = {"User-Agent": "Mozilla/5.0 (compatible; MySEOCheck/1.0)"}

def get_title_and_description(html):
    soup = BeautifulSoup(html, "html.parser")
    title = soup.title.get_text(strip=True) if soup.title else ""
    tag = soup.find("meta", attrs={"name": lambda v: v and v.lower() == "description"})
    description = tag.get("content", "").strip() if tag else ""
    return title, description

with open("urls.txt", encoding="utf-8") as f:
    urls = [line.strip() for line in f if line.strip()]

with open("meta_report.csv", "w", newline="", encoding="utf-8") as out:
    writer = csv.writer(out)
    writer.writerow(["url", "title", "title_length", "description", "description_length"])
    for url in urls:
        try:
            r = requests.get(url, headers=HEADERS, timeout=10)
        except requests.RequestException:
            continue
        if r.status_code != 200:
            continue
        title, desc = get_title_and_description(r.text)
        writer.writerow([url, title, len(title), desc, len(desc)])
        print(url, "|", title or "MISSING TITLE", "|", desc or "MISSING DESCRIPTION")

Dos detalles lo hacen más robusto que el primer borrador que generan la mayoría de los asistentes. Primero, encuentra la meta descripción sin importar las mayúsculas, porque algunas plantillas de CMS generan name="Description". Segundo, omite las respuestas que no son 200, para que las páginas de error no contaminen el informe con títulos como “Página no encontrada”.

Abre meta_report.csv en tu hoja de cálculo y ordena por title_length y description_length. Cero significa que falta. Después ordena por título para encontrar duplicados. La longitud es solo una guía aproximada: Google reescribe los snippets cuando cree que otro texto encaja mejor con la consulta, así que trátalo como una comprobación de higiene, no como una mejora de posicionamiento. Nuestra guía de SEO on-page explica qué escribir una vez que sabes qué páginas necesitan trabajo.

Una limitación: requests descarga el HTML en bruto, así que no aparecerán los títulos que JavaScript añade después de la carga. Para sitios que dependen mucho de JavaScript puede que necesites un navegador headless, un paso que va más allá del nivel principiante.

Ejemplo 3: ¿cómo se encuentran palabras clave “a punto de despegar” en una exportación de Search Console?

Este script lee el archivo de consultas de una exportación de Search Console y enumera las consultas con un número significativo de impresiones en las que tu posición media está entre 4 y 15. Suelen ser las victorias más rápidas: Google ya considera relevante la página, pero está justo por debajo de la primera página o al final de ella.

En Search Console, abre el informe de Rendimiento, elige un intervalo de fechas, haz clic en Exportar y selecciona CSV. Obtendrás un archivo ZIP con varios CSV. Este script usa Queries.csv.

import pandas as pd

df = pd.read_csv("Queries.csv")
df.columns = ["query", "clicks", "impressions", "ctr", "position"]
df["ctr"] = df["ctr"].str.rstrip("%").astype(float)

opportunities = df[
    df["position"].between(4, 15) & (df["impressions"] >= 500)
].sort_values("impressions", ascending=False)

print(opportunities.to_string(index=False))
opportunities.to_csv("striking_distance.csv", index=False)

El script renombra las columnas al leerlas, porque la exportación usa etiquetas como “Top queries” y guarda el CTR como texto con un signo de porcentaje. Convertir el CTR en número te permite ordenarlo y filtrarlo. Si tu interfaz de Search Console está en otro idioma, las etiquetas de las columnas cambian pero el orden se mantiene, por eso el script asigna los nombres por posición.

Ajusta los dos umbrales a tu sitio. Un pequeño negocio local podría usar 50 impresiones en lugar de 500. Una tienda grande podría acotar el rango a las posiciones 5 a 12. Para cada consulta de la salida, localiza la página que posiciona y comprueba si la consulta se responde realmente en el título, el H1 y los primeros párrafos.

Un límite que conviene conocer: Google indica que las exportaciones de Search Console desde la interfaz se truncan a 1.000 filas. Para sitios más grandes, la API de Search Console devuelve hasta 25.000 filas por petición, y puedes paginar para obtener más con el parámetro startRow. Configurar el acceso a la API requiere un proyecto de Google Cloud y credenciales, un buen segundo proyecto cuando te sientas cómodo con estos scripts.

Ejemplo 4: ¿cómo se ve qué páginas han perdido clics entre dos periodos?

Este script compara dos exportaciones de páginas de Search Console y enumera las páginas con la mayor caída de clics, junto a su posición media antes y después. Es el núcleo de una revisión SEO mensual y mucho más rápido que cruzar filas a mano.

Exporta el informe de páginas dos veces: una para el periodo reciente (guardado como Pages_last.csv) y otra para el periodo anterior (Pages_prev.csv). Usa periodos de la misma duración y, si tu negocio es estacional, compara con las mismas semanas del año anterior.

import pandas as pd

cols = ["page", "clicks", "impressions", "ctr", "position"]
now = pd.read_csv("Pages_last.csv", names=cols, header=0)
before = pd.read_csv("Pages_prev.csv", names=cols, header=0)

merged = now.merge(before, on="page", how="outer", suffixes=("_now", "_before"))
merged[["clicks_now", "clicks_before"]] = merged[["clicks_now", "clicks_before"]].fillna(0).astype(int)
merged["click_change"] = merged["clicks_now"] - merged["clicks_before"]

losers = merged.sort_values("click_change").head(10)
print(losers[["page", "clicks_before", "clicks_now", "click_change",
              "position_before", "position_now"]].to_string(index=False))

El outer merge es importante. Una página que ha desaparecido de la exportación reciente muestra clicks_now como 0 y position_now vacío, que es justo el tipo de página que quieres detectar. Una página nueva aparece con clicks_before como 0. Un simple BUSCARV en una hoja de cálculo suele ocultar ambos casos.

Lee la salida por parejas. Clics perdidos con una posición peor apuntan a un problema de posicionamiento: revisa la página, sus competidores y cualquier cambio reciente. Clics perdidos con una posición estable suelen indicar menos búsquedas o una página de resultados distinta, por ejemplo un nuevo AI Overview o más anuncios. Nuestra guía de medición de resultados SEO explica cómo distinguir esas causas.

¿Qué tareas SEO deberías automatizar después y cuáles dejar a las herramientas?

Automatiza con scripts las tareas específicas de tu sitio o de tus informes; compra herramientas para las tareas que necesitan escala o infraestructura.

¿Script propio o herramienta dedicada?
TareaScript de PythonHerramienta dedicada
Códigos de estado de una lista de URL conocidaSí, sencillo y rápidoTambién sirve cualquier rastreador
Rastreo completo del sitio con renderizadoPosible, pero lento de construirMejor: software de rastreo
Informes personalizados de Search ConsoleSí, ideal con pandasLooker Studio para dashboards
Unir datos de varias herramientasSí, merge de pandas por URLLas hojas de cálculo sufren a gran escala
Seguimiento de posiciones a lo largo del tiempoNo recomendadoMejor: rank tracker
Agrupar palabras clave por temaSí, con ayuda de un asistente de IAAlgunas plataformas lo incluyen
Datos de backlinksSolo mediante una API de pagoMejor: herramienta de backlinks

Buenos proyectos siguientes: agrupar consultas por una palabra que contienen, como “precio” o el nombre de una ciudad, y unir los datos de páginas de Search Console con las conversiones de GA4 por URL.

¿Cómo usar los asistentes de IA para entender el código, no solo para escribirlo?

Pide explicaciones al nivel que necesitas y después pon a prueba lo que has entendido cambiando una cosa. Pega un script y pregunta: “Explícame esto línea a línea como a alguien que sabe Excel pero no Python.” Después haz una pregunta concreta, como “¿Qué cambiaría para extraer también el H1?”, y haz el cambio tú mismo antes de pedir la respuesta.

La pregunta de seguimiento más valiosa es “¿Qué podría hacer que este script diera resultados erróneos sin mostrar un error?” Obliga al asistente a enumerar los fallos silenciosos, como una codificación incorrecta, filas duplicadas o un filtro que elimina más de lo que esperas.

¿Cuándo tiene sentido recurrir a Marketer Coffee?

Los scripts responden preguntas; no deciden qué preguntas importan. Marketer Coffee es una agencia de SEO con IA y GEO, y usamos este tipo de automatización dentro de proyectos más amplios: limpiezas técnicas, programas de contenido y trabajo de visibilidad en IA. Dos resultados de nuestros clientes, en sectores ajenos a los ejemplos de esta guía:

  • Aldi.pl (retail). Los clics orgánicos crecieron de 367.127 a 852.724 al mes en 12 meses (+132 %) gracias al contenido de producto, el schema Product, una arquitectura más ligera y unos datos de tiendas unificados. Lee el caso de éxito de Aldi.
  • Planika (chimeneas de diseño). Siete artículos localizados para EE. UU. llevaron un sitio que Google no había indexado a 1.052 visitas mensuales desde EE. UU., con 401 menciones en Google AI Overviews, 136 en Perplexity y 20 en ChatGPT registradas por Ahrefs. Lee el caso de éxito de Planika.

Con quién encajamos: empresas con sitios grandes o internacionales donde el trabajo con datos, el contenido y la búsqueda con IA necesitan un único plan. Con quién no encajamos: cualquiera que solo necesite que le escriban un script; un asistente de IA y esta guía te servirán mejor y no cuestan nada.

Si quieres ver cómo describen hoy los motores de IA tu sitio, haz nuestra auditoría gratuita de visibilidad en IA. Más información sobre el servicio en nuestra página de SEO con IA.

Preguntas frecuentes sobre Python para SEO

¿Merece la pena aprender Python para SEO en 2026?

Sí, a nivel básico. Con ChatGPT o Claude escribiendo la mayor parte del código, el valor está en saber qué pedir y cómo comprobar el resultado. Unas cuantas tardes de práctica bastan para automatizar comprobaciones de estado, auditorías de metadatos e informes de Search Console.

¿Pueden ChatGPT o Claude escribir scripts SEO que funcionen al primer intento?

A menudo, si describes el archivo de entrada, las columnas de salida y los casos límite. Prueba siempre con una muestra pequeña cuya respuesta conozcas y, si algo falla, pega el mensaje de error completo al asistente.

¿Qué librerías de Python debería aprender primero un principiante en SEO?

requests para descargar páginas, Beautiful Soup para leer HTML y pandas para trabajar con datos CSV y de hojas de cálculo. Estas tres cubren la mayoría de los scripts SEO para principiantes.

¿Cómo obtengo más de 1.000 filas de Search Console?

La exportación desde la interfaz se trunca a 1.000 filas. La API de Search Console devuelve hasta 25.000 filas por petición y admite paginación con startRow, así que un script de Python que use la API puede extraer conjuntos de datos mucho mayores.

¿Es seguro ejecutar scripts SEO contra cualquier web?

Ejecútalos en sitios que sean tuyos o que tengas permiso para probar, mantén un volumen de peticiones moderado, establece un timeout y añade pausas para listas grandes. Nunca compartas claves de API ni datos de clientes en un chat de IA.

¿Qué debes recordar sobre Python para SEO?

Empieza poco a poco, prueba con datos que conozcas y deja que el asistente de IA teclee mientras tú piensas. Los cuatro scripts de esta guía cubren las necesidades más habituales de un principiante: códigos de estado, metadatos, consultas a punto de despegar y comparaciones de periodos. Cada uno sustituye una tarea recurrente en hojas de cálculo y puede ampliarse prompt a prompt.

Si prefieres un equipo que combine este tipo de análisis con estrategia de contenido y de búsqueda con IA, Reserva una consulta gratuita.

Fuentes: Ayuda de Google Search Console, “Export data directly from a Search Console report” (límite de exportación de 1.000 filas); Google for Developers, Search Console API, Search Analytics: query reference (rowLimit de 1 a 25.000, startRow); documentación oficial de requests, Beautiful Soup y pandas; scripts probados por Marketer Coffee con datos de muestra en Python 3.13 (noviembre de 2026); Marketer Coffee, casos de éxito de Aldi y Planika (otros sectores).

Leave a Reply

Your email address will not be published. Required fields are marked *

¿Quieres resultados así para tu web?

Reserva una llamada gratuita de 30 minutos. Te llevas tres oportunidades SEO concretas, trabajemos juntos o no.

Reserva una llamada gratuita