Extraer palabras clave de Yandex Wordstat

Hace unos cuantos meses, escribía una entrada para compartir el código de un bookmarklet que permite extraer la información de los snippets de una búsqueda en Yandex, y en esta ocasión vuelvo con otro bookmarklet, esta vez para extraer la lista de palabras clave que devuelve la herramienta Wordstat. Es muy simple, ya que únicamente recopila la palabra clave y el número de impresiones que muestra Wordstat, pero creo que es muy cómodo para copiar y pegar el resultado en una hoja de cálculo para poder trabajar luego con estos datos.

El bookmarklet

Aquí tienes el bookmarklet para extraer las palabras clave de Yandex Wordstat que puedes añadir en tu barra de favoritos..

javascript:(function()%7Bvar%20keywords%20%3D%20'%22KEYWORD%22%2C%22IMPRESSIONS%22%3Cbr%3E'%3Bvar%20kws%20%3D%20document.querySelectorAll(%22.b-word-statistics__table%22)%3Bkwlist%20%3D%20%5B%5D.slice.call(kws)%3Bvar%20tmp%20%3D%20kwlist%5B0%5D.querySelectorAll('.b-word-statistics__tr%3Anot(%3Afirst-child)')%3Btmp2%20%3D%20%5B%5D.slice.call(tmp)%3Btmp2.forEach(function(f)%20%7Bvar%20kws%20%3D%20f.querySelectorAll(%22td%22)%3Bvar%20kwtxt%20%3D%20kws%5B0%5D.innerText%3Bvar%20kwnum%20%3D%20kws%5B1%5D.innerText%3Bkeywords%20%2B%3D%20'%22'%20%2B%20kwtxt%20%2B%20'%22%2C%22'%20%2B%20kwnum%20%2B%20'%22%3Cbr%3E'%3B%7D)%3Bkeywords%20%2B%3D%20'%22----------%22%2C%22----------%22%3Cbr%3E'%3Bvar%20tmp%20%3D%20kwlist%5B1%5D.querySelectorAll('.b-word-statistics__tr%3Anot(%3Afirst-child)')%3Btmp2%20%3D%20%5B%5D.slice.call(tmp)%3Btmp2.forEach(function(f)%20%7Bvar%20kws%20%3D%20f.querySelectorAll(%22td%22)%3Bvar%20kwtxt%20%3D%20kws%5B0%5D.innerText%3Bvar%20kwnum%20%3D%20kws%5B1%5D.innerText%3Bkeywords%20%2B%3D%20'%22'%20%2B%20kwtxt%20%2B%20'%22%2C%22'%20%2B%20kwnum%20%2B%20'%22%3Cbr%3E'%3B%7D)%3ByandexKW%20%3D%20window.open()%3ByandexKW.document.write(%22%3Chtml%3E%3Chead%3E%3Ctitle%3EYandex%20Keywords%3C%2Ftitle%3E%3C%2Fhead%3E%3Cbody%3E%22%20%2B%20keywords%20%2B%20%22%3C%2Fbody%3E%3C%2Fhtml%3E%22)%3ByandexKW.document.close()%7D)()

Por ejemplo, para una búsqueda de недвижимость испания, el bookmarklet daría este resultado:

Y así es como quedaría una vez lo copias y pegas el resultado en una hoja de cálculo.

Como nota para mí mismo, tengo que guardar el código original de este bookmarklet porque he estado buscando el que preparé el año pasado (el que extrae los datos de una búsqueda en Yandex) y no ha aparecido por ninguna parte.

Puedes modificar el código a tu gusto, o dejar algún comentario en esta entrada, bien sea porque has adaptado el código y lo quieres compartir, o has tenido algún problema a la hora de usarlo.

Las SERP de Yandex y Google

Hace un par de meses que veo un cambio en las páginas de resultados de Google, en el que varía la posición de los elementos del snippet y además incluye el favicon del sitio web. Si uso el buscador sin estar conectado a mi cuenta de Gmail, no veo estos cambios, supongo que es uno de tantos experimentos que hacen los de Google.

Pero este cambio me recuerda mucho a las páginas de resultados de Yandex, donde hace ya unos cuantos años que se puede ver el favicon del sitio web como parte del snippet. Aunque no sea un factor de posicionamiento, siempre he recomendado cuidar un poco el favicon a la hora de posicionar contenido en Yandex. Los usuarios son peculiares y un favicon más atractivo puede hacer subir el CTR de nuestras páginas.

La verdad es que la forma en la que muestra Yandex los resultados me gusta bastante más que la manera que está probando Google. Pero para gustos los colores…

Aquí un par de capturas para comparar.

SERP de Yandex

 

SERP de Google

An appropriate representation of the requested resource could not be found on this server

Si gestionas un sitio web con contenidos en ruso, o que esté orientado a usuarios rusos que pueden registrarse o rellenar y enviar formularios en los que se pide el email, es más que probable que estos usuarios tengan direcciones del tipo yandex.ru y que tengan problemas con tu sitio web, por ejemplo, viendo un mensaje similar a este cuando envíen el formulario de registro (o uno similar en el que deban escribir su dirección de correo electrónico)

Not Acceptable
An appropriate representation of the requested resource could not be found on this server.

La causa más probable es la configuración de seguridad de tu servidor. En el caso de un servidor que tenga activado mod_security, verás un registro como este en el log de errores del servidor:

[Tue Jan 07 22:43:13.627357 2020] [:error] [pid 6139] [client xxx.xxx.xxx.xxx:63118] [client xxx.xxx.xxx.xxx] ModSecurity: Access denied with code 406 (phase 2). Matched phrase "@yandex.ru" at ARGS:xemails. [file "/etc/modsecurity/custom/20_bruteforce.conf"] [line "78"] [id "222"] [msg "Posted SPAM domain in blacklist"] [data "blablabla@gmail.com\\x0d\\x0ablablabla@yandex.ru\\x0d\\x0ablablabla@yandex.com"] [hostname "dominio.com"] [uri "/apps/test/"] [unique_id "XkT9cBJihlIABAr@lkYXAWAz"], referer: http://dominio.com/apps/test/

El motivo del error es que el servidor encuentra la cadena de texto “yandex.ru” en los datos enviados por el formulario y bloquea la acción al identificar este dominio como spamer (como si no se mandara spam desde gmail.com o hotmail.com)

La solución

Afortunadamente, la solución es muy sencilla. Basta con echar un vistazo a la línea del log del servidor y ver el ID de la regla que está aplicando mod_security (en este caso, sería 222) y añadir una excepción a esta regla en el .htaccess de nuestro servidor.

SecRuleRemoveById 222

Puedes encontrar otros motivos (reglas de mod_security) que están bloqueando tu script, pero encontrarás la explicación igualmente en el log de errores del servidor.

Yandex Metrica Content Reports

Plugin WordPress de etiquetado JSON-LD para los informes de contenido en Yandex Metrica

Los informes de contenido en Yandex Metrica ha sido una de las muchas características que Yandex ha añadido a su herramienta de analítica web durante este 2019. Y probablemente, es la que más me gusta a fecha de hoy, más que la grabación de sesiones, o incluso más que el análisis de formularios (la que ha sido mi favorita hasta la fecha).

Si quieres saber más sobre estos informes de contenido, puedes leer un artículo que publiqué en septiembre (Informes de contenido en Yandex Metrica), aunque desde entonces ha habido novedades en esta función, como los informes de autores y temas (topics).

En este artículo presento un plugin para WordPress que te permitirá enviar datos a estos informes. Así pues, los comentarios que voy a ir haciendo están escritos pensando en que tu sitio web funciona con WordPress.

Configurando los informes

Para disponer de estos informes de contenido en tu cuenta de Metrica es necesario que hagas dos cosas:

  1. Activar estos informes en la configuración del contador de Metrica (si ya tienes insertado el código de seguimiento en tu sitio web, no hace falta que lo actualices)
  2. Empezar a enviar los datos sobre tus contenidos

Para enviar datos de tus contenidos tienes que disponer de algún tipo de marcado de datos en tu código. Para esto, puedes hacerlo con Open Graph, Microdata o JSON-LD.

Supongo que es una cuestión personal cómo hacerlo, pero la opción de microdata me parece poco práctica si ya tienes montado el sitio y el código de tu plantilla no incluye este marcado. Añadirlo puede ser algo costoso. La opción de Open Graph tampoco me convence demasiado, pues si usas este etiquetado pensando en la información que recupera Facebook cuando se comparte tu contenido, por ejemplo, te puede interesar tener algo distinto a lo que usarías para los informes de contenido.

Así pues, me quedo con JSON-LD, porque básicamente se reduce a insertar una etiqueta de SCRIPT en tu código, y esto se puede hacer fácilmente con WordPress sin tener que tocar mucho el código.

Yandex Metrica JSON-LD Schema

Así es como he llamado a un plugin para WordPress que he desarrollado, bastante básico pero funcional para lo que se necesita.

Se encarga de generar el marcado JSON-LD para que Yandex Metrica pueda mostrar los informes de contenido.

Estos son los elementos que incluye este marcado de datos:

  • Post
    • Título
    • Descripción (300 primeros caracteres)
    • URL
    • Imagen destacada
    • Categoría
    • Etiquetas
    • Fecha de publicación
    • Fecha de actualización
  • Autor
    • Nombre
    • URL
    • Avatar
  • Publisher
    • Nombre
    • URL
    • Logo

Realmente, en los informes de Yandex Metrica solo veremos parte de estos datos, pero de este modo el JSON-LD pasa la validación de las herramientas de comprobación de datos estructurados de Yandex y Google.

Lo he estado probando durante algo más de una semana en un par de sitios centrados en generar contenido, y cumple su cometido muy dignamente.

Instalación y configuración del plugin

El plugin se instala y se activa como cualquier otro plugin de WordPress. En esta primera versión tiene una configuración básica que te permite indicar los datos del elemento “publisher”. Si no configuras estos datos (nombre, url, logo) se usarán el nombre del sitio web, la URL del sitio web y una imagen sencilla generada con placeholder.com que mostrará el nombre del sitio web.

Plugins para el marcado de datos hay muchos, pero ninguno me convenció para pasarle los datos a Yandex Metrica, de ahí que preparase este. Para evitar conflictos, este plugin tiene una opción para desactivar esta característica de Yoast SEO (de momento solo incluye a este). Suelo usar este plugin y necesitaba deshabilitar esta opción para que solo se generase el JSON-LD preparado para Yandex Metrica. Si usas Yoast SEO, es recomendable marcar esta opción en la configuración.

Ahora, algunas cuestiones a tener en cuenta. Primero, si tu post tiene más de una categoría solo se pasa una. Si usas Yoast SEO y has marcado alguna de las categorías como principal, será esta. Si no, la primera categoría (recuperadas en orden alfabético). Y segunda cuestión, aunque en el JSON-LD se incluyen las etiquetas del post, tal como indica Yandex Metrica en su documentación oficial, de momento no se registran en los informes de temas (topics). No estoy seguro de si esto es un bug, porque el JSON-LD parece correcto y pasa la validación de Yandex, pero no se muestran estos temas en los informes. Si el marcado de datos lo haces como microdata, entonces funciona sin problemas.

24/06/2020: Hace ya unos días que este problema con el JSON-LD ha quedado resuelto y Yandex Metrica ya recupera las etiquetas del artículo para incluirlas en los informes de contenido.

26/06/2020: el plugin se ha publicado oficialmente en el repositorio de plugins de WordPress con el nombre de JSON-LD Schema for Yandex Metrica

Próximas versiones

Tengo algunas ideas con las que mejorar el plugin, pero por ahora hace lo que necesitaba que hiciera. Si las circunstancias lo permiten, iré añadiendo algunas mejoras en el plugin. Y por supuesto, todo comentario y opinión con ánimo constructivo será bien recibido.

Descargar Yandex Metrica JSON-LD Schema

Puedes descargar el plugin Yandex Metrica JSON-LD Schema, y si necesitas ayuda para configurar los informes de contenido, puedes dejar un comentario o contactar conmigo.

Primera versión: 02.12.2019
Publicado en el repositorio de WordPress.org: 26.06.2020

Informes de contenido en Yandex Metrica

Nuevos informes de contenido en Yandex Metrica

Sin mucho ruido, han aparecido nuevos informes de contenido en Yandex Metrica. Todo pasa por tener un buen etiquetado de nuestros contenidos para que podamos disponer de información relacionada con autores y temas (topics).

Yandex Metrica tiene bastante bien documentado cómo implementar este etiquetado:

https://yandex.ru/support/metrica/publishers/schema-org/json-ld.html

También puedes echar un ojo a un artículo que escribí hace poco sobre los informes de contenido en Yandex Metrica, donde puedes encontrar algunos enlaces de utilidad.