Si utilizas SEMRush ya conoces el potencial que tiene a la hora de analizar el posicionamiento de tu site y el de tus competidores. La versión PRO (69,95$/mes) incluye un crédito de 200.000 unidades para utilizar la API de SEMRush. ¿Unidades? Sí, SEMRush puntúa cada línea que devuelve de cada tipo de reporte con un número de unidades diferentes. Así pues, no tienes una limitación de peticiones, sinó unos créditos para gastar que, en caso de no gastarlos, se acumularán para el siguiente período de facturacion. Nice! Si tienes nociones de programación, puedes crearte un programa que haga las peticiones pertinentes y te guarde los resultados en base de datos para luego jugar con MySQL. Pero si, como yo, no pilotas tanto, puedes extraer informes concretos que te interesen haciendo la petición directamente con Excel o Google Spreadsheets.

Entendiendo la API de SEMRush

Para poder hacer las peticiones pertinentes, necesitaremos saber cómo se construyen las URL necesarias para cada tipo de informe que nos interesa generar. De forma general, podemos decir que la URL de petición tiene la siguiente forma:

http://[DB].api.semrush.com/?action=report&type=[report_type]&key=[api_key](&display_limit= [limit])&export=api&export_columns=[columns]&[report_type_var]=[value](&[other_options])

Los campos entre corchetes son variables y los campos entre paréntesis son campos opcionales en función de cada tipo de reporte. Vayamos por partes:

  • DB: es la base de datos sobre la cuál queremos hacer la petición. Si nos interesan datos de google.es, el DB será es. Si nos interesan datos sobre USA, el valor de DB será com.
  • report_type: es el tipo de reporte que queremos descargar. El listado completo lo tienes en la documentación de la API de SEMRush.
  • api_key: es tu clave de acceso a la API. La encontrarás en http://semrush.com/api.html cuando estás logeado.
  • display_limit: limitamos el número de líneas que queremos que nos devuelva la API. Este campo no está disponible para todos los tipos de reporte, pero resulta muy útil para limitar, por ejemplo, el listado de keywords para las cuales posiciona una URL.
  • columns: para cada tipo de reporte podemos descargar uno o varios campos asociados al propio reporte. Para conocer la nomenclatura, deberemos revisar la documentación de SEMRush.
  • report_type_var: el tipo de dato del que queremos el informe.
  • value: valor del report_type_var.
  • other_options: otros campos opcionales o variables en función del tipo de reporte, como pueden ser ordenar los resultados por algún criterio o mostrar resultados que cumplan con alguna condición lógica.

Creando un Organic URL Report

Con este tipo de reporte, extraemos las palabras clave para las cuales posiciona una URL, ordenadas por volumen de búsqueda mensual decreciente. Como ejemplo, crearemos una petición para extraer las 5 mejores palabras clave para las cuales está posicionando en España la página http://es.wikipedia.org/wiki/The_Rolling_Stones:

  • DB: es
  • report_type: url_organic
  • api_key: [tu_api_key]
  • display_limit: 5
  • columns: extraeremos los siguientes datos disponibles para este tipo de reporte: Ph, Po, Nq, Cp, Co, Nr
    • Ph: término posicionado entre los 20 primeros resultados
    • Po: posición
    • Nq: promedio de búsquedas mensuales durante los últimos 12 meses
    • Cp: coste por clic en Google Adwords
    • Co: competencia de anunciantes
    • Nr: numero de resultados en Google para ese término
  • report_type_var: url
  • value: http://es.wikipedia.org/wiki/The_Rolling_Stones
  • other_options: (no añadiremos más opciones a este informe)

Con estos datos, la URL de nuestra petición tendrá la siguiente forma:

http://es.api.semrush.com/?action=report&type=url_organic&key=[api_key]&display_limit= 5&export=api&export_columns=Ph,Po,Nq,Cp,Co,Nr&url=http://es.wikipedia.com /The_Rolling_Stones

Exportando datos desde Google Spreadsheets

¡Genial, ya tenemos nuestra URL para realizar la petición! Sólo nos falta extraer los datos que nos devuelve SEMRush directamente desde Google Spreadsheets. Para ello, utilizaremos la función importdata, que nos devolverá una línea por cada una de las palabras clave, ordenadas por volumen de búsqueda de forma decreciente:

importdata-spreadsheets

Resultado de importdata(url)

Desgraciadamente, Google Spreadsheets no detecta automáticamente los punto y coma como un separador, pero puedes crearte fácilmente un script equivalente a la función “text to columns” de Excel para convertir estos resultados en una tabla más legible:

text-to-columns-spreadsheets

Resultado de “text to columns”

Y ya hemos creado nuestro informe de posicionamiento orgánico por URL con un coste de 500 unidades (10 unidades por línea x 5 líneas). A partir de aquí, lo puedes complicar todo lo que quieras y, por ejemplo, automatizar el guardado de una copia de datos  para tener el histórico de posicionamiento de nuestras URL TOP.