Palabras clave de oportunidad: cómo detectarlas con Claude Code y Google Search Console

Julian D

En este artículo te mostraré paso a paso cómo utilicé Claude Code (la CLI de inteligencia artificial de Anthropic) para automatizar un flujo completo de SEO: desde la conexión con Google Search Console y la API REST de WordPress, hasta la identificación de palabras clave de oportunidad y la publicación automática de contenido optimizado. Todo desde la terminal, sin tocar un navegador.

Como consultor SEO, siempre busco formas de optimizar procesos y obtener resultados más rápidos. Esta metodología combina inteligencia artificial con datos reales de Google para tomar decisiones basadas en evidencia.

¿Qué son las palabras clave de oportunidad?

Las palabras clave de oportunidad son consultas de búsqueda para las cuales tu sitio web ya tiene visibilidad en Google (impresiones y posicionamiento), pero aún no alcanza su máximo potencial de tráfico o CTR. Son keywords donde Google ya reconoce tu URL, pero su posicionamiento, snippet o contenido aún puede optimizarse para escalar posiciones.

Características principales

  • Posiciones entre 5 y 20 en los resultados de búsqueda
  • Alto volumen de impresiones con bajo número de clics
  • CTR bajo respecto a lo esperado para su posición
  • URL no optimizada completamente para esa consulta
  • Intención de búsqueda alineada al negocio

El valor estratégico de estas keywords es enorme: permiten generar incrementos rápidos de tráfico orgánico sin crear contenido desde cero, trabajando sobre la autoridad que tu dominio ya tiene. Es una de las técnicas con mayor ROI dentro de cualquier estrategia SEO.

Herramientas utilizadas en este proceso

Para ejecutar todo este flujo automatizado necesitamos tres componentes:

  1. Claude Code: la interfaz de línea de comandos (CLI) de Anthropic que permite interactuar con el modelo Claude directamente desde la terminal. Puede ejecutar scripts, conectarse a APIs y automatizar tareas complejas.
  2. Google Search Console API: la API oficial de Google que nos permite extraer datos reales de rendimiento orgánico como clics, impresiones, CTR y posición media por consulta y URL.
  3. WordPress REST API: la API nativa de WordPress que permite leer, crear y actualizar contenido de forma programática usando autenticación con Application Passwords.

Adicionalmente, se utilizan las librerías de Python: google-auth, google-api-python-client y requests.

Video: proceso completo paso a paso

En este video puedes ver el proceso completo en acción, desde la configuración inicial hasta la publicación automática del contenido optimizado en WordPress:

Paso 1: Configurar la cuenta de servicio de Google Search Console

Lo primero es crear una cuenta de servicio en Google Cloud Console para que Claude Code pueda acceder a los datos de Search Console sin necesidad de autenticación interactiva (OAuth en navegador).

1.1 Crear proyecto en Google Cloud

  1. Ir a Google Cloud Console
  2. Crear un nuevo proyecto (ej: “kwroportunidad”)
  3. Habilitar la Google Search Console API desde la biblioteca de APIs

1.2 Crear cuenta de servicio

  1. Ir a IAM y administración → Cuentas de servicio
  2. Crear una nueva cuenta de servicio
  3. Generar una clave JSON y descargarla (este archivo contiene las credenciales)

El archivo JSON descargado tendrá esta estructura:

{
  "type": "service_account",
  "project_id": "tu-proyecto",
  "private_key_id": "abc123...",
  "private_key": "-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----\n",
  "client_email": "tu-cuenta@tu-proyecto.iam.gserviceaccount.com",
  "client_id": "123456789",
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
  "token_uri": "https://oauth2.googleapis.com/token"
}

1.3 Dar acceso en Search Console

  1. Ir a Google Search Console → Configuración → Usuarios y permisos
  2. Agregar el client_email de la cuenta de servicio como usuario con permisos de lectura

Paso 2: Configurar las credenciales de WordPress

Para que Claude Code pueda leer y modificar contenido en WordPress, necesitamos configurar una Application Password.

2.1 Generar Application Password

  1. Ir a wp-admin → Usuarios → Tu perfil
  2. Bajar hasta la sección “Contraseñas de aplicación”
  3. Escribir un nombre descriptivo (ej: “Claude Code”) y hacer clic en “Añadir nueva contraseña de aplicación”
  4. Copiar la contraseña generada (se muestra solo una vez)

2.2 Crear archivo .env

Guardar las credenciales en un archivo .env en tu directorio de trabajo:

Usuario: TuUsuario
Pass: XXXX XXXX XXXX XXXX XXXX XXXX

Importante: nunca subas este archivo a un repositorio público. Agrégalo a tu .gitignore.

Paso 3: Conectar Claude Code con Google Search Console

Con las credenciales listas, le pedimos a Claude Code que se conecte a Google Search Console. El proceso es conversacional: simplemente le indicamos qué hacer.

3.1 Verificar la conexión

Al indicarle a Claude Code que se conecte con los datos del archivo JSON de la cuenta de servicio, este genera y ejecuta automáticamente un script en Python:

from google.oauth2 import service_account
from googleapiclient.discovery import build

SCOPES = ['https://www.googleapis.com/auth/webmasters.readonly']
KEY_FILE = 'tu-archivo-credenciales.json'

credentials = service_account.Credentials.from_service_account_file(
    KEY_FILE, scopes=SCOPES
)
service = build('searchconsole', 'v1', credentials=credentials)

# Listar sitios disponibles
sites = service.sites().list().execute()
for site in sites.get('siteEntry', []):
    print(f"{site['siteUrl']} - {site['permissionLevel']}")
Captura de terminal mostrando la conexión exitosa de Claude Code con Google Search Console API usando cuenta de servicio
Claude Code se conecta a Google Search Console y lista los sitios disponibles

3.2 Extraer las URLs con más clics

Claude Code consulta automáticamente las URLs ordenadas por clics en los últimos 4 meses:

from datetime import datetime, timedelta

end_date = datetime.now().strftime('%Y-%m-%d')
start_date = (datetime.now() - timedelta(days=120)).strftime('%Y-%m-%d')

request = {
    'startDate': start_date,
    'endDate': end_date,
    'dimensions': ['page'],
    'rowLimit': 25
}

response = service.searchanalytics().query(
    siteUrl='sc-domain:tudominio.com',
    body=request
).execute()
Tabla de las URLs con más clics en los últimos 4 meses extraída de Google Search Console con Claude Code
Top 10 URLs ordenadas por clics en los últimos 4 meses

Paso 4: Identificar keywords de oportunidad por URL

Una vez identificada la URL con más potencial, Claude Code extrae las keywords específicas que generan impresiones para esa página:

request = {
    'startDate': start_date,
    'endDate': end_date,
    'dimensions': ['query'],
    'dimensionFilterGroups': [{
        'filters': [{
            'dimension': 'page',
            'expression': 'https://tudominio.com/tu-url/',
            'operator': 'equals'
        }]
    }],
    'rowLimit': 50
}

response = service.searchanalytics().query(
    siteUrl='sc-domain:tudominio.com',
    body=request
).execute()

¿Cómo identificar las oportunidades?

Claude Code analiza los datos aplicando estos criterios del framework de priorización:

  • Posiciones 5-20: keywords que están cerca de la primera página o en segunda página, con potencial de escalamiento rápido
  • Alto volumen de impresiones + bajo CTR: indica que el sitio tiene visibilidad pero el snippet no es competitivo
  • Gaps de contenido: keywords que generan impresiones pero no tienen una sección dedicada en el artículo
Análisis de keywords de oportunidad para la URL que-es-un-led mostrando impresiones, posición y CTR con oportunidades resaltadas
Keywords de oportunidad identificadas con impresiones, posición, CTR y oportunidades resaltadas

Por ejemplo, en nuestro caso real detectamos que la keyword “que es un led” tenía 2,755 impresiones pero estaba en posición 6.8 con un CTR de solo 0.2%. Siendo la keyword principal del artículo, debería estar en el top 3.

Curso recomendado

¿Quieres dominar el análisis SEO de tu web?

Aprende a realizar una auditoría SEO completa para webs que prestan servicios locales. Detecta oportunidades, corrige errores técnicos y escala tu tráfico orgánico con un método probado.

Acceder al curso de Auditoría SEO →

Metodología aplicable a cualquier web con servicios locales

Paso 5: Conectar con la API REST de WordPress

Claude Code se conecta a WordPress usando la API REST nativa con autenticación Basic Auth (Application Passwords):

5.1 Verificar la conexión

curl -s --user "Usuario:PASS" \
  "https://tudominio.com/wp-json/wp/v2/users/me"
Terminal mostrando la conexión exitosa de Claude Code con la API REST de WordPress usando Application Password
Verificación de conexión exitosa con WordPress REST API

5.2 Leer el contenido actual del post

import requests

auth = ("Usuario", "XXXX XXXX XXXX XXXX XXXX XXXX")
url = "https://tudominio.com/wp-json/wp/v2/posts?slug=tu-slug"

response = requests.get(url, auth=auth)
post = response.json()[0]
post_id = post['id']
current_content = post['content']['rendered']

5.3 Analizar la estructura actual

Claude Code extrae automáticamente los encabezados (H2, H3) del artículo para identificar qué temas ya están cubiertos y cuáles faltan:

Análisis de gaps de contenido mostrando secciones faltantes versus keywords de oportunidad detectadas en Google Search Console
Gaps detectados entre el contenido actual y las keywords de oportunidad

Paso 6: Generar y publicar contenido optimizado

Con toda la información recopilada (keywords de oportunidad, contenido actual, gaps detectados), Claude Code propone nuevas secciones para agregar al artículo.

6.1 Criterios para las nuevas secciones

Según el framework de keywords de oportunidad, las nuevas secciones deben:

  • Responder directamente a las queries detectadas en Search Console
  • Incluir la keyword principal y sus variantes en H2, H3 y primeros párrafos
  • Ampliar la cobertura semántica sin canibalizar la keyword principal
  • Incluir FAQs para capturar featured snippets
Propuesta de nuevas secciones de contenido optimizado para SEO generada por Claude Code basada en keywords de oportunidad
Claude Code propone nuevas secciones basadas en keywords de oportunidad y espera aprobación humana

6.2 Publicación automática

Una vez aprobado el contenido, Claude Code lo publica directamente en WordPress:

new_sections = "<h2>Nueva sección optimizada</h2><p>Contenido...</p>"

updated_content = current_content + new_sections

response = requests.post(
    f"https://tudominio.com/wp-json/wp/v2/posts/{post_id}",
    auth=auth,
    json={"content": updated_content}
)

if response.status_code == 200:
    print("Post actualizado exitosamente")
Terminal mostrando la publicación exitosa de contenido optimizado en WordPress mediante la API REST ejecutada por Claude Code
Publicación exitosa del contenido optimizado en WordPress vía API REST

Flujo completo resumido

Diagrama de flujo completo del proceso de SEO automatizado mostrando los 9 pasos desde la conexión con Google Search Console hasta la publicación en WordPress
Flujo completo: 9 pasos del SEO automatizado con Claude Code

Este es el flujo de trabajo completo que ejecutamos con Claude Code desde la terminal:

  1. Configuración inicial: archivo JSON de cuenta de servicio (GSC) + archivo .env con credenciales de WordPress
  2. Conexión a GSC: Claude Code se autentica y lista los sitios disponibles
  3. Análisis de URLs: extrae las páginas con más clics e impresiones de los últimos 4 meses
  4. Análisis de keywords por URL: identifica las consultas específicas para la URL seleccionada
  5. Detección de oportunidades: aplica el framework de priorización (posición, impresiones, CTR, gaps)
  6. Conexión a WordPress: verifica credenciales y obtiene el contenido actual del artículo
  7. Análisis de contenido: extrae encabezados y detecta gaps temáticos vs keywords
  8. Generación de contenido: propone nuevas secciones H2/H3 + FAQs optimizadas
  9. Aprobación humana: muestra la propuesta antes de publicar
  10. Publicación: actualiza el post vía API REST de WordPress

Ventajas de automatizar el SEO con Claude Code

  • Velocidad: todo el proceso (análisis + propuesta + publicación) se ejecuta en minutos, no en horas
  • Datos reales: las decisiones se basan en datos directos de Google Search Console, no en estimaciones
  • Consistencia: el framework de priorización se aplica de forma sistemática a cada URL
  • Control humano: Claude Code siempre muestra la propuesta antes de publicar, manteniendo la supervisión editorial
  • Escalabilidad: el mismo flujo se puede replicar para decenas de URLs en una sola sesión
  • Sin herramientas de pago: no requiere Ahrefs, SEMrush ni otras herramientas de terceros; usa directamente la fuente oficial

Requisitos técnicos

Julián Durango

Con más de 9 años de experiencia, y enfocando mi trabajo especialmente en auditorías de sitio web, estrategias de link building y SEO local, me considero un emprendedor que conoce las necesidades de los clientes y de la importancia de tener una buena estrategia digital.

Deja un comentario