Monitor con gráficos de líneas y barras en un escritorio de noche, metáfora del análisis de datos de SEO y marketing con Python

Python para SEO y marketing: Search Console, GA4 y logs con pandas

Un libro gratuito publicado en freeCodeCamp enseña a usar Python para limpiar datos de marketing, calcular métricas y automatizar informes, y esos mismos métodos sirven para trabajar el SEO con datos reales de Search Console, Google Analytics 4 y los logs del servidor. La obra, firmada por Eva J Patel y publicada el 29 de octubre, recorre desde las variables y los bucles hasta la segmentación de clientes y el aprendizaje automático. No dedica capítulos a las herramientas de Google, así que el salto al SEO pasa por la documentación oficial de sus API.

Las claves de Python para SEO y marketing en 20 segundos

  • El libro: Eva J Patel publica en freeCodeCamp una guía completa de Python aplicado al marketing.
  • Qué cubre: pandas, gráficos, segmentación, pruebas A/B y automatización de informes.
  • Qué falta: no trata Search Console ni GA4; sus ejemplos de API son genéricos.
  • Para SEO: las API oficiales de Google permiten aplicar esos métodos a datos reales.

El libro se titula Python in Marketing: A Practical Guide to Marketing Analytics, Automation, and Data-Driven Growth y se organiza en ocho partes. Las primeras explican los fundamentos del lenguaje, el trabajo con CSV, Excel y fechas, y cómo consultar API de marketing con la librería requests, incluidos la paginación, los errores y los reintentos ante límites de uso. Después llegan la limpieza y el análisis con pandas, la visualización con Matplotlib, el análisis de cohortes, la retención, el valor de vida del cliente, el coste de adquisición, los embudos y las pruebas A/B. La parte VI está dedicada a automatizar: funciones de informe, registro de actividad, programación de tareas y alertas. La séptima entra en aprendizaje automático con scikit-learn.

Patel insiste en el criterio antes que en el código. Entre sus advertencias figura esta (traducción propia): «No confíes en tu conjunto de datos hasta haberlo inspeccionado». También recuerda que un valor ausente no equivale a cero, que el ROAS (retorno de la inversión publicitaria) no es beneficio porque no descuenta costes de producto y que un porcentaje más alto en una prueba A/B no demuestra por sí solo que una versión sea mejor. Los ejemplos usan datos de muestra y endpoints ficticios, y la autora recomienda pedir permiso antes de trabajar con datos reales de clientes.

Las API de Google que conectan el libro con el SEO

La API (interfaz de programación de aplicaciones) de Search Console expone a través del método searchanalytics.query los mismos datos del informe de rendimiento: clics, impresiones, CTR y posición, agrupables por fecha, consulta, página, país o dispositivo. La documentación de Google trabaja con lotes de 25.000 filas y explica que, si hay más, basta con aumentar el parámetro startRow en esa cantidad en cada llamada hasta recibir menos filas de las pedidas. Una petición típica tiene este aspecto:

{
  "startDate": "2026-10-01",
  "endDate": "2026-10-31",
  "dimensions": ["page", "query"],
  "rowLimit": 25000,
  "startRow": 0
}

Los límites publicados por Google para esa consulta son de 1.200 peticiones por minuto por sitio y por usuario. La API de inspección de URLs, útil para comprobar en bloque si una página está indexada y qué canonical ha elegido Google, permite 2.000 consultas diarias y 600 por minuto por sitio, así que en webs grandes obliga a priorizar qué URL revisar.

Para GA4, la vía oficial es la Google Analytics Data API. Su guía de inicio rápido usa el paquete google-analytics-data y una petición runReport en la que se indican dimensiones (por ejemplo, ciudad o página de destino), métricas (usuarios activos, sesiones) y un intervalo de fechas. La autenticación puede hacerse con una cuenta de usuario mediante las credenciales predeterminadas de la aplicación o con una cuenta de servicio. Para quien prefiera no dar de alta cuentas de servicio en cada propiedad, seocretos explicó cómo funciona un conector con OAuth que lleva GA4 a Claude.

Aquí aparece la principal diferencia entre el libro y la práctica. Patel enseña a llamar a API con requests contra direcciones genéricas, lo que sirve para entender peticiones, paginación y errores. Con Google, lo habitual es usar sus bibliotecas cliente, que resuelven la autenticación OAuth y el formato de las respuestas. Lo que sí se traslada tal cual es una advertencia del libro: no tratar una petición fallida como si devolviera un conjunto vacío, porque el informe mostraría una caída de tráfico que no existe.

pandas para logs, rastreos y cruces de datos

Los capítulos sobre limpieza, filtrado y agrupación del libro son los que más rendimiento dan en SEO técnico, aunque Patel no hable de logs. Un registro de acceso del servidor cargado en un DataFrame permite contar cuántas veces visita Googlebot cada sección, qué códigos de estado recibe y qué URL no pisa nunca. Lo mismo vale para la exportación de un rastreador: un groupby por plantilla o directorio saca a la luz canonical inconsistentes, títulos duplicados o páginas con noindex en lugares donde no deberían estar. Librerías especializadas como advertools añaden funciones para convertir sitemaps, robots.txt o logs en DataFrames.

Algunos cruces que se pueden construir con lo que enseña el libro:

  • Logs frente a Search Console: páginas que Googlebot rastrea a menudo pero que no reciben impresiones.
  • Search Console frente a GA4: páginas con muchos clics orgánicos y poca conversión, para revisar su intención de búsqueda.
  • Sitemap frente a rastreo: URL declaradas que devuelven redirecciones o errores.
  • Cohortes de contenido: la técnica de retención del libro aplicada a artículos publicados el mismo mes, para ver cómo evolucionan sus clics.

Una cautela con los logs: el agente de usuario se puede falsificar, así que conviene verificar las IP de Googlebot con los rangos que publica Google o mediante DNS inverso antes de sacar conclusiones sobre su comportamiento.

Automatizar sin perder el control del informe

La parte de automatización es la más directamente aplicable a un equipo de SEO. Patel la plantea por capas: funciones que generan el informe, registro de lo que se ejecuta, programación y alertas. Su definición de una automatización terminada es exigente (traducción propia): no lo está «hasta que el proceso puede ejecutarse de forma fiable sin que alguien lo inicie manualmente». Para un informe semanal de Search Console eso implica validar que la descarga se completó, guardar un registro con el número de filas recibidas y avisar si el volumen cae de forma anómala.

Hay otro detalle práctico. Los datos de Search Console llegan con unos días de retraso y la propia documentación de la API recomienda comprobar primero qué fechas tienen datos antes de pedir un intervalo. Un script que descarga «ayer» sin esa comprobación acabará registrando ceros que no son reales, justo el tipo de error que el libro enseña a evitar cuando dice que un valor ausente no significa que la métrica sea cero.

Preguntas frecuentes

¿El libro de freeCodeCamp explica cómo conectar con Search Console o GA4?

No en el contenido publicado. Enseña a trabajar con API en general mediante requests y ejemplos ficticios; para Google hay que acudir a la documentación oficial de cada API.

¿Cuántas filas devuelve la API de Search Console por petición?

La documentación de Google trabaja con lotes de 25.000 filas. Si hay más, se pagina aumentando el parámetro startRow en cada llamada.

¿Qué paquete de Python se usa para la API de datos de GA4?

La guía oficial de Google usa google-analytics-data, con peticiones runReport que combinan dimensiones, métricas e intervalos de fechas.

¿Cuántas URL se pueden inspeccionar al día con la API?

Google fija un límite de 2.000 consultas diarias y 600 por minuto por sitio en la API de inspección de URLs.

Fuentes: