Informes y gráficas usando la API de Google Search Console

Publicado por Lino Uruñuela el 11 de febrero del 2020

El otro día expliqué cómo calcula y mide Google Search Console ciertas métricas y dimensiones. Y hoy voy a explicar qué se puede hacer cuándo en vez de usar el interface Web que nos ofrece GSC obtenemos los datos a través de la API y así no tener las limiticaciones que tiene Search Console cuándo usas su interface web, permitiéndonos de esta forma obtener verdadero valor de la gran cantidad de datos que nos ofrece el Informe de Rendimiento.



Recordatorio sobre cómo Google Search Console calcula la posición media

En el anterior artículo sobre Search Console expliqué como se calcula la posición media, y también lo expliqué en este vídeo de manera resumida en 2 minutos, te animo a verlo y así poder comprender cómo se calcula la posición media.





Limitaciones del interface web de Google Search Console

Recordemos algunas limitaciones importantes del interface web de Search Console:

  • Filtros básicos para las dimensiones "consulta" y "landing"

    • No podemos usar dos veces el mismo filtro.
      Por ejemplo que la consulta contenga "término 1" y/o "término 2",es decir , solamente podremos aplicar una vez un determinado filtro.

      Esto hace imposible que podamos segmentar correctamente los datos, por ejemplo es imposible obtener todas las KWs que contengan "a" y además que contengan "b", u obtener todas las KWs que contienen "a" pero no contienen "b".
    • No podemos filtrar usando expresiones regulares.
      Algo que nos facilitaría de alguna manera obtener alguno de los ejemplos anteriores.

  • No poder exportar los datos usando dos dimensiones
    Si usamos la web de GSC podemos ir haciendo click en cada uno de los términos para conocer qué urls han tenido impresiones, clicks, etc.

    Pero no podemos exportar estas dimensiones juntas, ya que Google Search Console nos da la opción de exportar los datos, pero cada dimensión en una única pestaña, teniendo así una pestaña para "consultas" otra para "páginas", "países", etc.

    Datos de Search Console por pestañas

    De esta manera no podemos saber cuántos clicks ha recibido una URL específica por una keyword concreta, algo vital si queremos hacer cualquier tipo de informe o tarea.

    Exportar dimensiones


  • Límite de datos al exportar
    No podemos ni ver ni exportar datos más allá de la fila 1.000, lo que hace que en casos de que el site sea muy grande no tengamos muchos datos representativos.



    Límite de datos en Google Search Console

Estas limitaciones son una barrera a la hora de crear informes y poder conocer la evolución del proyecto de una manera mucho más útil y eficaz adaptándola a cada proyecto. Pero podemos usar la API de Google Search Console saltarnos estas restricciones y poder obtener muchos más datos que además podremos manejar a nuestro antojo, creando dashboards a medida y cubriendo las necesidades de cada proyecto.



Datos agrupados por página o por propiedad

Debemos diferenciar que hay dos maneras de obtener los datos, agrupados por página y agrupados por propiedad. Digamos que obtener los datos "por página" obtenemos los clicks para cada URL que aparece en los resultados de búsqueda, para cada URL de nuestro site obtendremos clicks, impresiones y posición por cada dimensión, por ejemplo kw. Es decir, que para una KW concreta tendremos datos de las diferentes URLs que aparecen en los resultados, con sus diferentes posiciones, clicks e impresiones.

En cambio, cuando se obtienen los datos usando el método "por propiedad" Google nos dará solamente los datos de la url mejor posicionada. Es decir, para una KW concreta Google nos dará la posición de la URL mejor posicionada para esa KW, los clicks para la url mejor posicionada y las impresiones para la mejor URL posicionada. El resto de datos para otras URLs que también se posicionan no los tendremos.

Google lo explica así en su documentación:
Si en un solo elemento de búsqueda hay varios enlaces, como suele suceder, las impresiones se contabilizan por URL o por propiedad en función de la vista seleccionada en el informe "Analítica de búsqueda". Por ejemplo, a continuación verás una tarjeta de gráfico de conocimiento en la que se incluyen varios enlaces de imagen y texto.

ejemplo GSC


Si estás consultando el informe "Analítica de búsqueda" con la vista de los datos agrupados por propiedad, verás que en toda la tarjeta solo se registra una impresión:

  • www.example.com - 1 impresión

Sin embargo, si consultas el informe con los datos agrupados por página, verás cinco páginas con una impresión cada una:

  • www.example.com - 1 impresión
  • www.example.com/rain - 1 impresión
  • www.example.com/rainbow - 1 impresión
  • www.example.com/shamrock - 1 impresión
  • www.example.com/lightning - 1 impresión


Esto puede dar muchos dolores de cabeza al intentar comprender los datos de las gráficas de Search Console (los datos de las gráfica siempre son usando el método "por propiedad") y los datos de la tabla (los datos de la tabla pueden ser por propiedad o por página, dependiendo si estamos filtrando o solicitando la dimensión "página").

A la hora de cacular la posición para una determinada consulta normalmente nos interesa tener la mejor posición para esa KW independientemente de la url que salga posicionada. Para este caso podría sernos útil agrupar los datos por propiedad, ya que para cada KW nos dará la mejor posición. Así si tenemos que comparar el ranking para una KW en dos fechas diferentes nos interesa saber la mejor posición de cada día y compararlas entre sí para saber si ha mejorado o empeorado.

Pero quitando este caso, la mayoría de las veces nos interesa saber los datos por cada URL, ya que nos da una información más real que no está resumida (o acotada) y usar los datos agrupados por propiedad nos puede hacer caer en alguna trampa. Por ejemplo, si queremos obtener los clicks que una determinada KW nos aporta al sitio, no debemos contabilizar solo los clicks de la URL mejor posicionada para esa KW sino la suma de TODAS las KWs posicionadas para esa KW, independientemente de la posició que ocupe.

Siguiendo el mismo ejemplo que Google de la imagen anterior tendríamos que usando el método por propiedad obtendríamos un total de 1 impresión para esa KW, mientras que usando el método por página obtendríamos un total de 5 impresiones.

Quizás con las impresiones no lo veamos tan claro, pero en vez de impresiones digamos que son clicks, ya no veremos con los mismos ojos que el total de clicks para una KW sea 1, o que sean 5... es muy importante tener esto claro.

En mi opinión, el valor de la posición sí tiene sentido usar el método por propiedad ya que nos da la mejor posición para una KW. Pero con el resto de métricas es mucho mejor usar la agregación por página, ya que nos interesa la suma de los clicks, o impresiones.



Volcado de datos de Search Console mediante la API

Podemos usar la API de GSC para obtener los datos, en principio los filtros y dimensiones son los mismos que haciéndolo a través de la web, pero con una diferencia, en este caso la API nos devuelve los datos de todas las dimensiones combinadas.

Por ejemplo si obtengo los datos entre dos fechas, solicitando las dimensiones "query" y "page" la API me devolverá una fila por cada par de "query"/"page" es decir, tendremos todos los datos desglosados. Por ejemplo así veríamos para un mismo site los datos según el tipo de agregado: 

Datos, agregado por página, Tabla I
 query  page  clicks  impresiones posición
 KW1  url_1.html  10  100  1
 KW1  url_2.html  2 45
 5
 KW2  url_3.html  6  11  2
 KW2  url_4.html  10  200  4

Datos, agregado por propiedad, Tabla II
 query  clicks  impresiones posición
 KW1  10  100  1
 KW2  6  11  2

Como podemos observar, al hacer la agregación por propiedad no estamos sumando clicks que se han generado en otras URLs, ls filas tachadas en la primera tabla, por eso normalmente es aconsejable si no se tiene del todo claro, usar los datos agrupados por página, sobretodo si queremos medir clicks e impresiones.

Límites y métodos para obtener datos a través de la API

Usando la API el límite que teníamos usando la web de 1.000 filas aumenta hasta 50.000 filas por cada petición, por lo que podemos obtener hasta 50 veces más volumen de datos.

Esto quiere decir que podemos descargar hasta 50.000 filas de la tabla, si solicitamos además la dimensión de página obtendríamos 50.000 registros como en la Tabla I. Y si no solicitamos la dimensión de página obtendremos 50.000 filas como en la Tabla II.

En sites grandes cuándo descarguemos datos sin solicitar la dimensión "página" nos dará los datos de las 50.000 KWs con más clicks, pero cuándo lo hagamos solicitando también la dimensión "página" nos dará 50.000 filas aunque el total de KWs únicas será menor que cuándo lo hacemos por propiedad ya que al hacerlo por este método (por página) por cada KW puede haber más de una fila (una por cada URL posicionada).  


  • Por propiedad

    • Mayor número de KWs únicas
    • Se calcula mejor la posición

  • Por página

    • Mayor número de clicks e impresiones al sumar datos de todas las URLs y no solamente de la mejor posicionada.
    • La posición media de una KW será peor que si lo hacemos por propiedad (debido a que por propiedad solo tenemos en cuenta la mejor posición mientras que por página se tienen en cuenta las posiciones de todas las URLs)



Estrategias para el volcado de datos


Actualmente en FunnelPunk realizamos un proceso para obtener los datos a través de la API  que realiza dierentes volcados de datos:

  • Volcado usando el método "por propiedad"
    Estos datos los usuamos cuándo queremos ver la posición y no aplicamos un filtro de URL.
  • Volcado usando el método por página
    Usamos estos datos para calcular los clicks e impresiones totales, independientemente de su posición o cuándo necesitamos segmentar por URL del site, por ejemplo posición, click  e impresiones de todas las KWs que llegan a un directorio del sitio.
  • Por apariencia
    También se pueden obtener los datos dependiendo de la apariencia en las serps. Esto nos permite ver los datos por cada uno de los diferentes tipos de apariencia que existen en el site. Esto lo usamos para sitios que tienen AMP o para plasmar datos fragmentos destacados o datos estructurados.
  • Volcado diario
    Realizamos diariamente los diferentes volcados antes mencionados, por propiedad, por página y un volcado por cada tipo de apariencia que hay.
    Es importante hacer el volcado diario sobretodo para aquellos sites que tienen mucho tráfico orgánico y/o muchas URLs. Así obtenemos el máximo número de datos que luego combinaremos para crear los informes o gráficas que necesitemos.
  • Otras dimensiones
    Siempre hacemos estos volcados solicitando también las dimensiones de "Dispositivo" y "País" ya que son dos dimensiones que nos interesa tener para poder segmentar y desglosar los datos en los informes y poder ver si queremos los datos para cada dispositivo o país.

En webs muy grandes este proceso de volcado se traduce en unas 200.000 filas diarias por cada proyecto que añadimos a nuestra base de datos, el más grande que tengo actualmente tiene 35.084.751 de filas en cada país, y volcamos 6 países, es decir, 210.508.506 filas de datos de Search Console para este proyecto. Aun nos faltan diferentes tipos de datos que poco a poco iremos añdiendo a nuestros volcados según vayamos necesitándolo en los proyectos que llevamos.


Informes y dashboards usando datos de Search Console

Con todos estos datos logramos informes y gráficas como estas:
  • Clicks NoBrand comparando con año anterior

    Comparar datos año vs año anterior



  • Clicks y Posición diaria para una KW o grupo de KWs
    Por ejemplo para plasmar la posición del total de KWs o un grupo pre-seleccionado de KWs (ej: kws potenciales para una categoría del site, o comparativas Brand Vs No Brand).

    Search Console Brand Vs NoBrand

     
    Para determinadas marcas es muy importante ser capaces de segmentar el tráfico de marca del que no lo es. Para realizar esta segmentación en base al nombre de la marca es imprescindible definir diferentes KWs de marca que dificilmente podrás hacer con los filtros típicos de Searh Console que solo te deja filtrar por KWs que contengan o KWs que no contengan, sin poder poner más de una condición.

    Por ejemplo las KWs de marca para este blog podrían ser "mecagoenlos" "me cago en los", "mecagoenlos.com" "mecaguenlos" etc, por eso es imprescindible poder crear más de una condición cosa que Search Console no permite. En cambio con la API descargamos los datos, almacenamos en base de datos y luego podemos combinar todos los filtros que deseemos.

    clicks Brand Vs NoBrand


  • Cuántas y qué KWs mejoran o empeoran la posición
    En este caso son datos de las diferentes categorías del site.
    Hemos definido para cada categoría en la web un grupo de KWs (más de mil KWs por categoría) para ver la evolución de cada una de las categorías, teniendo en cuenta solamente las KWs que hemos predefinido para cada una de ellas.

    De esta manera nos aseguramos que siempre medimos las mismas KWs, ya que si lo hacemos por urls del site o por kws que contengan ciertas palabras, el número de KWs en cada categoría iría variando y no sabriamos si ciertos cambios en la posición son buenos o malos.

    consultas que suben o bajan posiciones

    Haciendo click en cada categoría obtenemos las gráficas de la posición diaria para las KWs seleccionadas de categoría del site (tomando como KWs pertenecientes a una categoría más de 1.000 KWs preseleccionadas)

    Posición de kws en una categoría concreta

    Y los clicks para las KWs preseleccionadas para esta categoría comparado con el año anterior.
    Clicks de las KWs asociadas a una categoría




  • Cuántas qué KWs tenemos en TOP3, TOP5, TOP10

    Kws en top3 top5 top10


  • Cuántos Clicks tienen según la posicón:

    clicks segun su posición


  • Qué KWs salen del TOP3, TOP10. Las métricas se obtienen por página excepto  la posición.

    KWs salen TOP10


  • KWs que entran en TOP 10

    KWs que entran en TOP 10


  • Evolución de clicks según apariencia de búsqueda

    Datos de Search Console segmentados por apariencia


  • Número de URLs con clicks por cada tipo de apariencia de búsqueda

    URLs por cada tipo de apariencia de busqueda


Espero haber podido explicar, al menos por encima, las diferentes maneras de obtener los datos del Informe de Rendimiento de Google Search Console a través de la API. Para complementar este artículo y para ver cómo lo he realizado os dejo aquí este vídeo de mi presentación en el SeoTheBeach 2019 dónde expliqué un poco las métricas y dimensiones y también el cómo lo hice y las diferencias que había.


Exporta hasta 50.000 filas de Search Console

He creado esta herramienta para que puedas exportar hasta 50.000 datos de Search Console. De momento solo puedes escoger descargar o "query", o "query + página", poco a poco le añadiré el resto de dimensiones y de esta manera por lo menos si necesitas obtener más datos que las 1.000 filas que te permite el interface web de Search Console podrás usar esta herramienta totalmente gratuita.

Es posible que a veces falle, así que comunícamelo y lo intentaré solucionar... si tengo tiempo :)

 


Jordi (@)hace Hace más de 4 años y 35 días

Buenas tardes Lino,
Felicidades por la herramienta, me parece algo espectacular y rápido de utilizar.
Espero con muchas ganas ver las nuevas implementaciones.
Un saludo !

Santy (@juliosgt89)hace Hace más de 4 años y 32 días

Gracias Lino, muy útil para el día a día

sergio (@)hace Hace más de 4 años y 31 días

Bravo! Gracias por compartir.

Lino (@errioxa)hace Hace más de 4 años y 30 días

@Santy Jordi y Sergio muchas gracias!

Irá mejorando, pero poco a poco :)

Henrique (@seozamp)hace Hace más de 3 años y 341 días

Contenido rico! ¿Hay alguna forma de recopilar los datos de GSC a través de la API y verlos en Data Studio?

Lino (@errioxa)hace Hace más de 3 años y 341 días

@seozamp sí se puede, mira por ejemplo el blog de @useo, seguro que tiene unos cuantos :)

Saludos!



Lea otros artículos de Google Search Console

Últimos posts

Últimos comentarios


JaviLazaro
Ya me has dado la necesidad de crear un comaando en bash para hacer estas cosas. Gracias Lino por estos tips
Post: Obtener KWs de varias fuentes usando la línea de comandos

Señor Muñoz
Lino, el 11% más de clicks y el 47% más de impresiones diarias ¿es algo constante o depende de cada sitio web?
Post: Diferencias entre la exportación de datos de Search Console usando BigQuery o usando la API

Carlos
Hola En mi blog tengo artículos atemporales (es decir, no caducan nunca, de manera que sirve para quien lo lea hoy o lo lea dentro de 5
Post: Tratamiento de urls que tienen un tiempo de vida muy corto

Profe Ray
Veo que hay comentarios de hace 5 años y de hace 3 años. ¿Habrá algun post actualizado sobre este tema o sigue funcionando? Lo cierto es
Post: Cómo cargar css y js y no bloquear la carga de contenido

Pepe
Muchas gracias por el articulo!! Muy buena información.
Post: Qué es ofuscar enlaces y cómo mejora el enlazado interno

María
Sí, he buscado el archivo robots.txt y todo está correcto. La última versión vista con error fue el 08/11/2021 y la última vez que el
Post: Errores críticos originados por el robots.txt

Lino
@María un placer verte por aquí :) Lo primero, a veces, con el robots.txt no se puede "forzar" a que lo rastree, si tu site no es muy p
Post: Errores críticos originados por el robots.txt

María
Hola Lino, tengo el mismo problema. El probador de robots de google me indica: "Error al obtener el archivo robots.txt Tienes un archivo ro
Post: Errores críticos originados por el robots.txt

Mario
Estoy tratando de vincular los datos en Google Data Studio y he combinado los datos de la tabla "Impresión del sitio" con "Impresión de UR
Post: Datos incoherentes y cálculo de la posición media en Search Console

José B. Moreno Suárez
Yo hace tiempo que agrupaba con stemmers. Ahora, además, comparo con un proceso las keywords que aportan impresiones a una URL determinada
Post: Clustering de keywords SEO en Google Search Console - Parte II