Skip to main content

SEO con Gtranslate.io

Al igual que hice hace unos días con el artículo de SEO en el ecommerce Vtex, hoy vengo a contaros mi experiencia con el plugin Gtranslate. Se trata de un plugin de traducción automática para WordPress donde simplemente instalándolo, puedes traducir a una infinidad de idiomas tirando de su API de una manera bastante sencilla.

La versión gratis simplemente traduce, pero no permite que el contenido traducido se indexe. Luego tienes varias opciones de pago que van de entre 10€ y 40€/mes en función de si quieres traducir 2 o más idiomas, traducir las URLs, usar ccTLDs, etc. Cualquier versión de pago permite indexar urls generadas por el plugin que realmente «no existen». No se genera contenido en la base de datos más allá del que introduzcas tú manualmente desde /wp-admin/ desde digamos el idioma principal.

A continuación una serie de problemas que yo personalmente me he encontrado trabajando con clientes que usan este plugin:

  • Puedes configurar el plugin desde /wp-admin/ pero no siempre hace caso / se sincroniza con https://my.gtranslate.io/, cuando quieras cambiar opciones, traducir URLs, hreflang o poner o quitar idiomas, hazlo en los dos sitios.
  • Si marcamos la opción de traducir URLs, genera URLs con todos los caracteres del idioma, cirílico, chino.. Por mucho que diga JonMu, esto genera mil tipos de problemas, preferiría una vanity URL con [a-Z,0-9] pero no hay opción. La única es dejar todas en el idioma matriz sin traducir.
  • El hreflang siempre apunta a URLs en el idioma matriz, si las tienes traducidas, es preferible tenerlo desactivado, al menos hasta que lo arreglen. Un hreflang siempre debería apuntar a la URL canónica. El caso es
  • Si quieres tener sitemaps por idioma, puedes inventarte unas URLs de Yoast que sean idioma.dominio.com/sitemap_index.xml o dominio.com/idioma/sitemap_index.xml y si has elegido no traducir URLs, podrás tener sitemaps por idioma. Si has elegido traducir URLs, no he encontrado nada con lo que automatizarlo. Luego puedes hacer un índice con todos si quieres tenerlos todos en un solo xml en lugar de uno por idioma.
  • Si quieres tener sitemaps de URLs traducidas, el soporte dice que únicamente podrás tener URLs en inglés, pero que el canonical lo arregla. Yo personalmente casi prefiero servir contenido en otros idiomas con URLs en inglés. Esto es lo que me dice el soporte:

Do you want to have sitemap with the translated URL’s?
It is not correct to have URL’s in original language. Only in English.
But if you need to have Sitemaps for the translated URL’s with the purpose to boost the ranking for these, let me explain how the indexing and ranking for the translated URL’s work.

From an SEO perspective, this is not an issue (not to submit translated URL’s, only the English URL’s for the translated pages) , as there is a «canonical» tag in your source code which we do translate, which points to the fully translated URL. This tag instructs Search Engines to prioritize the fully translated version for indexing, so if a Search Engine like Google ends up on the non-fully translated URL variants of the page, it will see the tag, and index the link mentioned in that tag, which is the fully-translated one.

  • Creo que además los sitemaps de Yoast no funcionan bajo la configuración de subdominio, solo subdirectorio.
  • Si eliges la opción de idiomas en subdominios, con únicamente configurar las DNS de los idiomas es suficiente, pero si eliges la opción de idiomas en subdirectorio, ojo porque cualquier idioma que se ataque devolverá un 200 y contenido indexable. Hay que tener esto en cuenta especialmente en caso de querer desindexar contenido de un idioma que en el pasado estuvo indexado. Podemos agregar un Disallow: /idioma/ pero es mucho más efectivo unas líneas en el .htaccess para que respondan únicamente los subdirectorios de los idiomas que hayas elegido. Elimina de las líneas siguientes todos los idiomas que no quieras de tu .htaccess.
# gtranslate config
RewriteRule ^([a-z]{2}|zh-CN|zh-TW)/([a-z]{2}|zh-CN|zh-TW)/(.*)$ /$1/$3 [R=301,L]
RewriteRule ^([a-z]{2}|zh-CN|zh-TW)/([a-z]{2}|zh-CN|zh-TW)$ /$1/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([a-z]{2}|zh-CN|zh-TW)/(.*)$ /gtranslate/translate.php?lang=$1&url=$2 [L,QSA]
RewriteRule ^([a-z]{2}|zh-CN|zh-TW)$ /gtranslate/translate.php?lang=$1 [L,QSA]
Tags:SEO