Urls con hreflang y noindex, problemas avanzados de SEO en ecommerce

La teoría para internacionalizar el onpage de una tienda online parece simple y sencilla porque casi todo lo que se puede leer se soluciona implementando de forma fácil hreflang (implementar hreflang y canonicals en Prestashop), pero rara vez se explican los casos particulares y las excepciones, que siempre existen. Más allá de la aplicación de esta directiva hay estrategia y quebraderos de cabeza e implicaciones técnicas que no son simples y en el mejor de los casos se acaban enrevesado.

Si no tienes un batallón de traductores, tienes problemas

Sí… los problemas empiezan cuando hay un desfase de contenido entre los idiomas. Si tu tienda online tiene bastantes idiomas y deficiencias de contenido en algunos… o varios ¿qué se puede hace en estos casos?. Existen dos posibilidades para este problema de contenidos y traducciones de idiomas: a) completar el hueco con otro idioma o b) dejarlo vacío y ambas opciones son malas.


a) Mostrar un idioma alternativo en la descripcción de los productos sin traducir

Esta parece que es la opción por la que se decantan la mayoría de tiendas. Si no tienen contenido se completa la descripción con el idioma principal de la tienda, pero ¿qué problemas se pueden generar?

  • Desde el punto de vista de experiencia del usuario es un problema. Le ofrezco a mi usuario toda la interfaz, una gran parte del catálogo en su idioma, e incluso le ofrezco soporte por teléfono y chat pero las novedades no las puede conocer, ni las particularidades del producto.
  • A nivel SEO aunque se implemente bien hreflang no va a haber buenas posiciones en los buscadores locales y esa página debería considerarse basurilla, así que lo mejor es aplicar la directiva canonical hacía la url original del producto del idioma de la descripción del contenido (¿Seguro?, parece que sí).

De forma esquemática la aplicación correcta de las directivas en el caso en el que un artículo de un idioma «duplique» otro idioma sería:

ES (texto = ES)
robots = index
canonical = es-url
hreflang es = es-url
hreflang en = en-url
hreflang pt = pt-url
EN (texto = EN)
robots = index
canonical = en-url
hreflang es = es-url
hreflang en = en-url
hreflang pt = pt-url
PT (texto = ES)
robots = index
canonical = es-url
hreflang es = es-url
hreflang en = en-url
hreflang pt = pt-url

También sería la configuración para las tiendas que sólo traducen interfaz.


b) Dejar temporalmente la ficha en blanco

Bajo mi opinión, la mejor opción es indicar «que estás trabajado en ello» y si lo rematas con la posibilidad de leerlo en los idiomas en los que esté disponible (vía link) mucho mejor. Esta solución parece la más honesta con el usuario pero también va a generar problemas en SEO.

  • Estarás generando thin content, así que por lo menos, asegúrate de no indexar esa página para que así tengas entretenido al bot con cosas de su interés.

 

Si haces caso a lo de noindexar esas páginas que están sin descripción rica, seguramente estás generando a la vez otro problema aplicando la directiva de hreflang:

  • Al bloquear esa página sin descripción «temporalmente» vas a generar problema con la aplicación de hreflang puesto que el bot del buscador de turno no encontrará la url de retorno, ya que no alcanzará a noindex, así que lo ideal sería excluir del hreflang las urls dentro de un noindex o bloqueadas en robots.txt.

Para evitar los problemas con las urls de retorno, lo mejor es que implementes una solución técnica de este tipo (con la que seguro el desarrollador va a gastar bastante más tiempo del presupuestado):

ES (texto = ES)
robots = index
canonical = es-url
hreflang es = es-url
hreflang en = en-url
EN (texto = EN)
robots = index
canonical = en-url
hreflang es = es-url
hreflang en = en-url
PT (sin texto)
robots = noindex

Directivas cuándo la url del producto en un idioma no tiene contenido


Bola extra para el perfect!

Hasta aquí todo bien es un escenario con sólo tres idiomas pero la implementación puede ser todo lo compleja que se quiera conforme se incluyan más idiomas, regiones con el mismo idioma junto a contenidos sin traducir. [Me están dando escalofrios pensando en el desarrollor que automatice esto según contenido y con variantes de región y sin contenido diferente donde por ejemplo es-ES y es-MX deberían de ser además (canonical de es-ES) , ufff.. pobre a quien le toque.]

Ahora bien. Si eres un freak del tiempo de rastreo y realmente te has dado cuenta de lo importante que es el crawl budget, posiblemente habrás sentido la tentación de bloquear en robots.txt los contenidos sin traducir, lo cual sería una gran idea. Pero seguramente te olvides de quitarlo de robots cuando el traductor traduzca los contenidos, así que se me ocurre hacer la siguiente locura, con la que algún SEO me querrá matar:

 

  1. Incluir una coletilla única en las urls no indexables, por ejemplo de la forma: /en/lamejorsolucion-url …
  2. Añadir al robots.txt  Disallow: /*/lamejorsolucion-*
  3. Cuándo se añada la traducción modificar la url del item a su url amigable buena /en/url
  4. Generar 301 url antigua a url nueva (por si hay algún enlace por ahí… aunque sea en un email para escribir una reviews).

 

Con esto se podría solucionar que los bots desperdicien su tiempo en urls donde no tienen nada interesante que pescar, y se mejoraría la indexación de los contenidos cuando estén disponibles en su idioma.

 

¿Por cierto.. y por que directamente no plantear la opción c) desactivar los artículos según idioma si no tiene contenido? Pues… porque al final aunque no tengan descripción algo se venden… se venden.