Automatizar reportes SEO con Python y Google Sheets

Hay pocas cosas más tediosas en SEO que armar el reporte mensual. Abres Search Console, exportas datos, los pegas en Sheets, haces las fórmulas, ajustas los gráficos… y al mes siguiente, todo de nuevo. ¿Y si te dijera que puedes automatizar el 90% de ese proceso?

Con Python, la API de Search Console y la librería gspread, puedes crear un script que haga todo eso por ti. Se ejecuta, extrae los datos, los formatea y los pone en tu Google Sheet listo para compartir. Así de simple.

¿Por qué automatizar reportes SEO?

No es solo por ahorrarte tiempo (que también). Es porque:

  • Reduces errores humanos — copiar y pegar datos entre herramientas es una receta para equivocarse
  • Tienes consistencia — el reporte siempre tiene la misma estructura, las mismas métricas
  • Liberas tiempo para análisis — en vez de gastar 2 horas armando el reporte, gastas 2 horas interpretándolo
  • Puedes escalar — si manejas 5 clientes, no quieres armar 5 reportes manualmente cada mes

Qué necesitas

El stack es sencillo:

  • Python 3 — si no lo tienes, instálalo con Homebrew (Mac) o desde python.org
  • google-auth + google-api-python-client — para conectarte a la API de Search Console
  • gspread + oauth2client — para escribir en Google Sheets
  • Una cuenta de servicio en Google Cloud — gratis, te toma 5 minutos configurarla

Paso 1: Configura la cuenta de servicio

Ve a Google Cloud Console, crea un proyecto nuevo (o usa uno existente), habilita las APIs de Search Console y Google Sheets, y crea una cuenta de servicio. Descarga el archivo JSON con las credenciales.

Luego comparte tu Google Sheet con el email de la cuenta de servicio (el que termina en @*.iam.gserviceaccount.com). Esto le da permiso de escritura.

Paso 2: El script básico

Aquí va la estructura del script. No es código listo para copiar-pegar, sino la lógica que necesitas implementar:

# 1. Autenticación
# Carga las credenciales del JSON de la cuenta de servicio
# Conecta con la API de Search Console y con gspread

# 2. Extrae datos de Search Console
# Define el sitio, rango de fechas (últimos 28 días)
# Pide métricas: clicks, impressions, ctr, position
# Agrupa por: query, page, o ambos

# 3. Procesa los datos
# Calcula totales, promedios, comparaciones MoM
# Identifica top queries, top pages, mayores caídas

# 4. Escribe en Google Sheets
# Abre la spreadsheet por ID o nombre
# Limpia la hoja de datos crudos
# Escribe los nuevos datos con headers
# Actualiza la hoja de resumen con totales

# 5. (Opcional) Envía notificación
# Un email, un mensaje de Slack, lo que prefieras

Paso 3: Programa la ejecución

Con el script funcionando, puedes programarlo para que se ejecute automáticamente:

  • En Mac/Linux: un cron job que corra el script el primer lunes de cada mes
  • En la nube: Google Cloud Functions + Cloud Scheduler (gratis en el free tier)
  • Low-code: GitHub Actions con un workflow programado

Lo que puedes incluir en el reporte

Una vez que tienes el pipeline, puedes agregar lo que quieras:

  • Resumen de métricas principales (clics, impresiones, CTR, posición promedio)
  • Comparación mes a mes con variación porcentual
  • Top 20 queries por clics
  • Top 20 páginas por clics
  • URLs con mayor caída de CTR
  • Keywords nuevas que entraron al top 10

Empieza simple

Mi consejo: no intentes automatizar todo desde el día uno. Empieza con un script que extraiga las métricas básicas y las ponga en una hoja. Una vez que eso funcione, ve agregando capas: comparaciones MoM, alertas, gráficos automáticos.

La automatización no es un proyecto de un día. Es un proceso iterativo. Pero cada iteración te ahorra horas. Y esas horas las puedes invertir en lo que realmente importa: analizar los datos y tomar decisiones.

Dejá un comentario