SEO internacional

SEO internacional con dominios multi idioma

Hace unos días se me planteó un reto de los que me encantan: una única web con cinco TLD orientados a diferentes regiones. A nivel de posicionamiento, las primeras dudas que aparecen son: ¿necesito diferentes sitemaps? ¿Qué hago si solo tengo un robots.txt? ¿Me sirve una única propiedad en la Search Console?

Son justamente estas las preguntas que voy a contestar en este artículo, indicando los pasos que seguí y que creo que pueden servir a más de uno al que se le plantee una situación similar.

Primer paso: diferentes propiedades de la Search Console

Si tenemos diferentes dominios, lo más obvio es crear diferentes propiedades en la Google Search Console. En función de la extensión del dominio, es posible que Google ya nos establezca por defecto la segmentación internacional, sin embargo nunca está de más echarle un vistazo y configurarla para que apunte hacia el país al que se dirige el dominio que estamos configurando.

Además, nos surgen otros dos problemas: por un lado deberíamos crear diferentes sitemaps según esta segmentación, pero únicamente disponemos de un robots.txt que no nos sirve por igual en cada uno de ellos.

¡Seguimos!

Segundo paso: creación de sitemaps multi idioma

Indispensable. Cada versión de la página debe tener su correspondiente sitemap. Si se trata de un CMS personalizado seguramente tendréis la posibilidad de añadir la funcionalidad de crear índices de sitemaps separados por idiomas y/o regiones, algo totalmente recomendable. Otros CMS como WordPress o Prestashop también los organizan por idioma gracias a plugins como el Yoast Seo del primero o GSitemaps del segundo.

Algo que si he echado a faltar en algunos sitemap generados por plugins es su referencia hreflang. Cada página establecida en el archivo xml debe tener su referencia a su equivalente en las otras versiones de la página, de modo que si estamos en el sitemap de español, deberemos referenciar a la versión inglesa y francesa, mientras que si estamos en la inglesa referenciaremos hacia la española y la francesa. ¿Se entiende?

Para muestra un botón:

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
  xmlns:xhtml="http://www.w3.org/1999/xhtml">
  <url>
    <loc>http://www.example.com/english/</loc>
    <xhtml:link 
                 rel="alternate"
                 hreflang="de"
                 href="http://www.example.com/deutsch/"
                 />
    <xhtml:link 
                 rel="alternate"
                 hreflang="de-ch"
                 href="http://www.example.com/schweiz-deutsch/"
                 />
    <xhtml:link 
                 rel="alternate"
                 hreflang="en"
                 href="http://www.example.com/english/"
                 />
  </url>
  
  <url>
    <loc>http://www.example.com/deutsch/</loc>
    <xhtml:link 
                 rel="alternate"
                 hreflang="en"
                 href="http://www.example.com/english/"
                 />
     <xhtml:link 
                 rel="alternate"
                 hreflang="de-ch"
                 href="http://www.example.com/schweiz-deutsch/"
                 />
     <xhtml:link 
                 rel="alternate"
                 hreflang="de"
                 href="http://www.example.com/deutsch/"
                 />
  </url>
  
  <url>
    <loc>http://www.example.com/schweiz-deutsch/</loc>
     <xhtml:link 
                 rel="alternate"
                 hreflang="de"
                 href="http://www.example.com/deutsch/"
                 />
     <xhtml:link 
                 rel="alternate"
                 hreflang="en"
                 href="http://www.example.com/english/"
                 />
<xhtml:link 
                 rel="alternate"
                 hreflang="de-ch"
                 href="http://www.example.com/schweiz-deutsch/"
                 />
  </url>
  
</urlset>

En el caso del que os hablo, yo disponía de un CMS personalizado, por lo que fue posible crear cinco índices de sitemap por cada dupla de idioma y región a la que se dirigía la web.

Tercer paso: ¡solo tengo un robots.txt!

Esta me pareció, sin duda, la parte más bonita del reto. Dividir en piezas los sitemaps es algo obvio, al igual que las diferentes propiedades de la Search Console, pero si únicamente disponemos de un hosting nos vamos a topar con la pared del robots.txt. ¿Cómo hago para abrir puertas a Google de diferentes dominios si únicamente tengo la posibilidad de un solo robots.txt?

Pues porque, amigo, no solo tienes esa posibilidad. Tanto en servidores NGINX como en Apache disponemos de la posibilidad de redirigir a Google hacia el robots.txt adecuado, teniendo la posibilidad de crear tantos archivos como dominios tengamos sin ningún problema.

Para ello, utilizaremos la expresión regular que os indico a continuación (Apache) en nuestro .htaccess, que hará que Google llegue a parar al archivo llamado como el dominio desde el que entramos y que lo asuma como el robots.txt del mismo. ¿No es genial?

RewriteRule ^robots\.txt$ robots/%{HTTP_HOST}.txt [L]

Una vez creada la regla, tan solo deberemos crear una carpeta /robots/ en nuestra raíz del servidor y crear diferentes archivos de bloc de notas llamados como el dominio. Un ejemplo: www.dominio.es.txt, www.dominio.fr.txt, www.dominio.it.txt, etc.

Cuarto paso: etiquetas hreflang a tutiplén

Ya tenemos nuestros robots personalizados y nuestros sitemaps internacionales, ahora toca reforzar todo el trabajo guiando a Google desde el código de nuestra página. Para ello tenemos las etiquetas hreflang, de las cuales ya he hablado en ocasiones anteriores, que deberán indicar a los robots cuáles son las páginas equivalentes en otros idiomas-región de la página en la que nos encontramos navegando en ese momento.

Muy sencillo, estamos en /es/lista/, pues Google debe saber que si navegara en inglés, lo haría en /en/list/. Pues así con todas las páginas que formen la web.

¡Un ejemplo!

<link rel="alternate" href="http://example.com/en-ie" hreflang="en-ie" />
<link rel="alternate" href="http://example.com/en-ca" hreflang="en-ca" />
<link rel="alternate" href="http://example.com/en-au" hreflang="en-au" />
<link rel="alternate" href="http://example.com/en" hreflang="en" />

Este se trataría del caso para la home de la página, si estuviéramos en otro nivel, debería salir su equivalente tal y cómo he explicado más arriba.

Quinto paso: configuramos las propiedades

El paso más satisfactorio. Volvemos a las propiedades internacionales de la Search Console, enviamos el nuevo robots.txt para establecer la huella temporal y posteriormente subimos nuestro sitemap segmentado. ¡Voilà! Lo que nos queda es seguir comprobando posibles errores y optimizar nuestros pequeños ayudantes para que Google indexe.

Por supuesto, no nos olvidemos de optimizar el SEO onpage de cada una de las páginas en cada uno de los idiomas, que las palabras clave y LSI no son las mismas en cada uno y deberíamos haber estudiado cuáles nos interesan.

¡A trabajar! 🙂

Miguel

Ecommerce Data Analyst
¿Compartes?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *