Bookmarklet para extraer datos en Yandex

En esta entrada quiero compartir algo que preparé hace un tiempo a modo de experimento para «jugar» con los resultados de búsqueda que muestra el buscador de Yandex. Es un bookmarklet que extrae una serie de datos en una búsqueda que hayamos realizado en Yandex:

  1. Título, URL y descripción del listado de resultados
  2. Sugerencias de búsqueda (las que te da el buscador cuando estás escribiendo tu búsqueda)
  3. Búsquedas relacionadas (otras búsquedas similares, las muestra en la parte inferior)

Cuando hagas una búsqueda en Yandex, puedes usar este bookmarklet para extraer información que puede ser de utilidad para una tarea de investigación sobre palabras clave que puedes usar en tus proyectos, por ejemplo.

1. Listado de resultados

En el listado de resultados extrae los datos que he indicado, y previamente se eliminan algunos bloques que aparecen en algunas búsquedas, como las empresas, imágenes o vídeos, así como una tarjeta de resultados que se muestra en ocasiones como una columna derecha (ubicaciones en Yandex Maps, ficha con información de una empresa…).

Con este experimento no he logrado eliminar los resultados que no son orgánicos en la búsqueda, quizás termine actualizando el bookmarklet para añadir esta característica, o puedes editar por tu cuenta el bookmarklet, ya que es básicamente JavaScript.

2. Sugerencias de búsqueda

Al hacer una búsqueda, Yandex da sugerencias para completar la búsqueda, al igual que hace Google. Este bookmarklet copia también estas sugerencias y las añade al texto que genera.

3. Búsquedas relacionadas

En la parte inferior de la página de resultados, aparecen búsquedas relacionadas. El bookmarklet añade esta lista al texto que genera con la información que extrae.

El bookmarklet

Así pues, este sería el bookmarklet que puedes añadir en tu barra de favoritos. Como decía, los datos que extrae te pueden ser útiles para orientar tu estrategía de palabras clave en algún proyecto. Puedes añadirlo a la barra de favoritos y probarlo con alguna búsqueda en Yandex.

javascript:void%20function(){null!=document.querySelector(%22.content__right%22)%26%26document.querySelector(%22.content__right%22).remove(),null!=document.querySelector(%22.main__top%22)%26%26document.querySelector(%22.main__top%22).remove(),null!=document.querySelector(%22.serp-item.card__narrow.card__narrow%22)%26%26document.querySelector(%22.serp-item.card__narrow.card__narrow%22).remove(),document.getElementsByClassName(%22hidden-recommendations%22).length%3E0%26%26document.getElementsByClassName(%22hidden-recommendations%22)[0].remove(),null!=document.querySelector('li[data-fast-wzrd=%22images%22]')%26%26document.querySelector('li[data-fast-wzrd=%22images%22]').remove(),null!=document.querySelector('li[data-fast-wzrd=%22videowiz%22]')%26%26document.querySelector('li[data-fast-wzrd=%22videowiz%22]').remove();var%20nodes=document.querySelectorAll(%22.serp-item%22),list=[].slice.call(nodes);itemresults=%22%22,list.forEach(function(e){itemresults+=%22%3Cp%3E%22,itemresults=itemresults+e.querySelector(%22.organic__url-text%22).innerText+%22%3Cbr%3E%22,itemresults=itemresults+e.querySelector(%22.link_theme_normal%22).href+%22%3Cbr%3E%22,itemresults+=e.querySelector(%22.organic__content-wrapper%22).innerText,itemresults+=%22%3C/p%3E%22});var%20nodes=document.querySelectorAll(%22.suggest2-item__text%22),list=[].slice.call(nodes),suggestions=list.map(function(e){return%20e.innerText}).join(%22%3Cbr%3E%22),nodes=document.querySelectorAll(%22.related__item%22),list=[].slice.call(nodes),related=list.map(function(e){return%20e.innerText}).join(%22%3Cbr%3E%22),yandexSERP=%22%3Chtml%3E%3Chead%3E%3Ctitle%3EYandex%20SERP%3C/title%3E%3C/head%3E%3Cbody%3E%3Ch1%3ERESULTADOS%3C/h1%3E%22+itemresults+%22%3Chr%3E%3Ch1%3ESUGERENCIAS%3C/h1%3E%22+suggestions+%22%3Chr%3E%3Ch1%3ERELACIONADO%3C/h1%3E%22+related+%22%3C/body%3E%3C/html%3E%22;with(window.open())document.write(yandexSERP),document.close()}();

Por ejemplo, para una búsqueda de гостиница в волгограде, el bookmarklet daría este resultado:


El código del bookmarklet puede que no te funcione con el 100% de las búsquedas con las que pruebes, pues no he tenido en cuenta todas las posibilidades que tiene Yandex a la hora de mostrar los resultados. Pero 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.

Informes de contenido en Yandex Metrica

El pasado mes, Yandex Metrica añadía una novedad su herramienta: informes de contenido. Una serie de informes pensados principalmente para medios online o sitios web centrados en generar contenido.

Los informes de contenido permiten analizar en tiempo real los contenidos publicados: noticias, artículos, entradas de blog, valoraciones, recetas y páginas de tipo pregunta-respuesta.

Configuración

Los informes se deben activar en la configuración de la etiqueta de Yandex Metrica, e indicar el tipo de marcado que tenemos en nuestro contenido. El marcado es la clave para disponer de estos informes, pues Metrica solo tendrá en cuenta las páginas que tengan este marcado.

Podemos elegir entre tipo Schema.org, microdata o Schema.org, json-ld. Si nuestro sitio web no tiene alguno de estos tipos de marcado semántico, corre por nuestra cuenta ponerlo en marcha. Con WordPress, por ejemplo, es bastante sencillo con algún plugin como Schema.

Para comprobar si nuestras páginas cumplen con el marcado en cuestión, podemos usar alguna herramienta de validación o comprobación de datos estructurados:

Con esto, según Yandex, es cuestión de unas pocas horas que en nuestra cuenta de Metrica aparezcan los informes de contenido.

Dashboard

Los informes de contenido cuenta con un dashboard en el que vamos a ver en tiempo real el número de usuarios, páginas vistas, tiempo medio de lectura y una métrica llamada recirculation, que viene a ser el porcentaje de usuarios que leen más de una página porque se supone que encontraron interesante nuestro contenido.

El apartado de contenido popular muestra una lista de las páginas más populares junto con algunas otras métricas.

Contenidos

Los informes de contenido nos muestran detalles bastante útiles sobre nuestras publicaciones. Además de las fuentes de tráfico, páginas vistas, usuarios, tiempo en pantalla y recirculación, tenemos una métrica que nos indicará el porcentaje de vistas a una página que llegaron hasta el final (haciendo scroll), así como la proporción de usuarios que accedieron desde un dispositivo móvil (tablet o smartphone).

De este modo resulta muy sencillo encontrar qué páginas son las que generan más engagement, bien sea por que los usuarios llegan hasta el final de esa página, o porque siguen leyendo otros contenidos y se quedan en nuestro sitio web.

Contenido

Desde el informe de contenidos podemos ver el detalle de cualquiera de nuestras páginas. Resulta interesante los embudos de «Full scroll» y «Full read». El primero muestra cuántos usuarios se han desplazado hasta el final del texto y el segundo cuántos usuarios leyeron completamente el texto. Supongo que este último valor se calcula en función del tiempo que dedica el usuario a esa página. También podemos ver a qué otros contenidos se fueron los usuarios desde esa página, el dispositivo desde el que accedieron y el listado completo de enlaces que sirvieron como fuente de tráfico para llegar hasta la página en cuestión.

En resumen, se trata de una nueva característica muy interesante y útil para sitios web que estén basados en contenidos. En ocasiones puede resultar complicado valorar el éxito que tienen los contenidos que publicamos, y con estos nuevos informes, Yandex Metrica ayuda un poco a dar con aquellos contenidos que mejor funcionan.

Más información sobre los nuevos informes de contenido de Yandex Metrica:

Problemas de indexación con Yandex: el bot

Los problemas de indexación de sitios web en Yandex es una de las consultas que con más frecuencia me han hecho. También es uno de los principales problemas que he encontrado en sitios web en los que he ayudado a optimizar para posicionar en el buscador ruso.

De las distintas causas que pueden ocasionar que tu sitio desaparezca por completo de los resultados de Yandex, uno es absolutamente técnico y la mayoría de las veces muy sencillo de resolver.

Hay servidores que están configurados para rechazar las conexiones del bot principal de Yandex, el que habitualmente utiliza para rastrear e indexar el contenido de tu sitio web. La razón de este bloqueo, probablemente, es prevenir conexiones al servidor por parte de alguien que se hace pasar por el bot de Yandex. Supongo que aplican aquello de que todo lo viene de Rusia es un ciberataque…

Bien, cuando el bot principal de Yandex intenta establecer conexión con tu sitio web, espera una respuesta 200 (todo correcto) por parte del contenido solicitado. Si encuentra otra respuesta, es posible que tu servidor esté bloqueando el acceso al bot de Yandex (por considerarlo no fiable) y de esta forma tu contenido no se va a indexar en Yandex.

En las herramientas para webmaster de Yandex, puedes comprobar la respuesta que da tu servidor a una petición de alguno de los bots que usa Yandex:

En este ejemplo, el servidor devuelve un error 403, está bloqueando al bot principal de Yandex, y la consecuencia más habitual es que tu sitio no aparezca en los resultados de Yandex.

También puedes hacer la prueba con Chrome, por ejemplo, modificando el User-agent con el que realizas la petición:

Así pues, es importante que tu servidor permita el acceso al bot de Yandex para que tus contenidos se puedan indexar correctamente. Yandex ofrece ayuda e información al respecto, para verificar que un bot pertenece a Yandex y no es alguien que se hace pasar por un bot de Yandex:

¿Cómo comprobar que un bot pertenece a Yandex? (en inglés)

Bots de Yandex

Yandex usa varios bots, cada uno con un propósito y una función. Si necesitas que tu servidor permita el acceso a alguno de ellos, o si quieres analizar estos datos en el log de tu servidor, puedes encontrar más información acerca de los bots de Yandex en la página de ayuda Yandex robots in server logs (en inglés).

Grabar iframes en Session Replay 2.0

Una de las últimas características disponibles en Yandex Metrica es la grabación de iframes en Session Replay (grabación de sesiones).

Para que puedas ver el contenido del iframe en la grabación de sesiones, es necesario que la página contenedora del iframe y la página que se muestra en el iframe tengan el mismo código de seguimiento de Yandex Metrica.

La página que se muestra en el iframe contará como una página vista en los informes de Metrica. Si no quieres que esa página se tenga en cuenta como una página individual (ya se está mostrando en el iframe y registrará como página vista la que lo contiene), puedes inicializar el código de seguimiento de Metrica en el contenido del iframe con el parámetro defer: false, para así evitar que al inicializar el código envíe la página vista por defecto.

En esta captura de pantalla se puede observar cómo las páginas mostradas dentro del iframe, sin el parámetro defer: false, se registran como página vista, sumando en el total de páginas vistas en la sesión, con un tiempo en la página de 0:00 segundos. Ya es decisión tuya si las excluyes como página vista o no.

Y en este vídeo se ve el resultado de un pequeño experimento que carga páginas en un iframe, insertando el código de seguimiento con Google Tag Manager y/o Yandex Metrica, con y sin el parámetro defer. Las páginas en iframe sin código de seguimiento de Metrica, no quedaron grabadas en Session Replay, y las que no tenían el parámetro defer se registraron como página vista en la sesión.

Plantilla de Yandex Metrica para GTM

Las plantillas personalizadas son una de las últimas características que han aparecido en Google Tag Manager. Y de haber aparecido un par de meses antes, me hubieran ahorrado una cantidad de tiempo enorme implementando Yandex.Metrica en un proyecto reciente.

La plantilla sobre la que trata este artículo es una plantilla para implementar el código de seguimiento de Yandex.Metrica a través de Google Tag Manager. Su interfaz está en español y tiene casi todas las opciones y características que tiene disponibles Metrica para su código de seguimiento:

  1. Inicialización
  2. Hit / Página vista
  3. Objetivo
  4. Enlace saliente
  5. Descarga de fichero
  6. Parámetros de sesión
  7. ID de usuario
  8. Parámetros de usuario

Unos muy buenos recursos que me han ayudado son la Custom templates quick start guide, de Google; la Custom Templates Guide For Google Tag Manager, de Simo Ahava; y la Google Tag Manager Custom Template – Yandex Metrica, de David Vallejo (en inglés, disponible también en GoogleTagManagerTemplates de GitHub, donde supongo que se irá actualizando, además de recoger en ese repositorio otras muchas plantillas).

1. Inicialización

Método: init

Para inicializar el código de seguimiento de Metrica. Se pueden configurar las principales opciones y características sin tener que editar el contador en la administración de nuestra cuenta de Metrica. No obstante, hay algunas cosas que deberías dejar configuradas cuando crees el contador y otras que tendrás que hacer impepinablemente en la interfaz de Metrica.

Te recomiendo que en la configuración de tu contador dejes marcadas las opciones para la grabación de sesiones, envío de datos de comercio electrónico y divisa por defecto tal como lo necesites. Respecto a la grabación de sesiones, tienes que usar Session Replay 2.0, ya que esta plantilla no es compatible con el código anterior de Metrica. También has de indicar si quieres grabar las pulsaciones de teclado en la grabación de sesiones (siempre lo puedes desactivar de forma específica usando el CSS que indica Metrica para estos casos).

Para habilitar los informes de comercio electrónico en Metrica, tienes que habilitar esta opción en el código de seguimiento, y además incluir en el código de tu página el dataLayer (que puede ser el mismo que uses para Google Tag Manager / Google Analytics).

<script type="text/javascript">
window.dataLayer = window.dataLayer || [];
</script>

Filtros y objetivos, lógicamente, los tienes que seguir creando desde la interfaz de Metrica, así como exclusión de visitas propias o la activación y gestión de las notificaciones que puedes tener sobre el estado del sitio web configurado.

Sobre el debug de Yandex.Metrica, lo puedes activar en las opciones de inicialización, pero solo funcionará si el contenedor de GTM está en modo de vista previa.


2. Hit / Página vista

Método: hit

Para enviar páginas vistas / páginas virtuales. El único parámetro obligatorio es el de la URL de la página que envías.


3. Objetivo

Método: reachGoal

Envia información sobre la consecución de un objetivo. Previamente lo has tenido que definir en la interfaz de Metrica. Cuidado con el nombre del objetivo, ha de coincidir con lo que hayas puesto en Metrica. Importe y divisa son opcionales, en las divisas he añadido Euro, Dólar americano, Rublo y Libra esterlina (puedes añadir lo que necesites editando la plantilla o vía variable de GTM).

Si se trata de un objetivo de comercio electrónico (venta), puedes enviar el ID del objetivo usando el dataLayer, no hace falta usar reachGoal. En este caso, no se usa el nombre del objetivo, si no el ID numérico del objetivo (lo obtienes igualmente de la interfaz de Metrica).


4. Enlace saliente

Método: extLink

Si has configurado el código de seguimiento para que registre enlaces salientes, puede que no uses esta opción, aunque la tienes disponible para enviar a Metrica datos de enlaces externos que puedas usar vía ajax o técnicas similares. El único parámetro obligatorio es la URL del enlace externo. Si no pasas el título de la página, Metrica registrará document.title como valor por defecto.


5. Descarga de fichero

Método: file

Como el método anterior, si has configurado el registro de descarga de ficheros en el código de seguimiento de Metrica, puede que no necesites esta opción. En la configuración del código de seguimiento puedes añadir extensiones de fichero que quieras registrar de forma automática, si la que necesites no está incluida en las numerosas extensiones de fichero que registra Metrica por defecto.


6. Parámetros de sesión

Método: params

Los parámetros de sesión están disponibles como opciones en los métodos init, hit, reachGoal, file y extLink. Puedes usar hasta 10 niveles en los parámetros de sesión, aunque tendrás que echarle algo de imaginación para usar más de 2 niveles con la tabla que te permite crear GTM.


7. ID de usuario

Método: setUserID

Fácil. Enviar el ID de usuario interno que utilices en tu sitio web. Puedes enviarlo en cualquier momento durante una sesión para asociar el clientID de Metrica con el ID de usuario que especifiques.


8. Parámetros de usuario

Método: userParams

Metrica permite pasar parámetros de usuario y recomienda pasar datos de usuario que no cambien de una sesión a otra y que no contengan datos personales como el nombre del usuario. Para comprender un poco mejor la diferencia entre parámetros de usuario y parámetros de sesión, puedes echar un ojo a esta página donde explican cómo se procesan y almacenan los datos.

¿Y el resto de métodos?

Del resto de métodos (getClientID, addFileExtension y notBounce), el único que no está disponible en esta plantilla es getClientID. Los otros dos, addFileExtension y notBounce he decidido incluirlos como opciones en la configuración para la inicialización del código de seguimiento y se ejecutan, en caso de estar configurados, en el momento de inicializar el código de Yandex Metrica.