Yandex Translate 小部件看起来像一个简单的解决方案:添加一个按钮,用户就可以翻译页面。但对于 SEO 来说,这不起作用——原因与 Google Translate 小部件相同。
Yandex Translate 小部件如何工作
小部件通过 JS 脚本嵌入到网站中。当点击翻译按钮时,页面会在用户的浏览器中进行翻译。
此时,页面 URL 不会改变,或者只改变哈希值。翻译后的版本没有自己的地址——它只存在于特定浏览器的会话中。
Yandex 作为搜索引擎通过爬虫索引网站。爬虫向 URL 发送 HTTP 请求并获取 HTML。只有在用户点击后才触发的 JS 翻译,爬虫是看不到的。索引中只包含原始页面。
这与多语言网站有何不同
多语言网站是具有不同内容的多个 URL:
- mysite.ru — 俄语版本
- mysite.com/en/ — 英语版本
- mysite.com/kz/ — 哈萨克语版本
每个URL都单独索引。搜索引擎知道这些页面存在,可以将其展示给不同的受众。
翻译器小部件不会创建新的URL。对于搜索引擎来说,网站仍然是单语言的。
Yandex也看不到客户端翻译
需要澄清的是:不仅Google会忽略JS翻译。Yandex.Bot的工作方式也类似——它索引服务器的HTML响应,而不是浏览器中JavaScript的执行结果。
Yandex.Browser会向用户提供页面翻译。这是浏览器的用户功能——它不影响Yandex作为搜索引擎如何索引内容。
小部件何时仍然有意义
翻译器小部件是为用户方便而设计的工具,而非用于SEO。如果外国访客偶尔访问网站并需要理解内容,小部件可能会有所帮助。
但这不能替代多语言网站。来自其他国家的用户无法通过他们自己的语言搜索找到网站,因为翻译版本不在索引中。
替代方案
对于具有SEO效果的多语言网站,需要独立的URL和服务器端翻译。代理层创建具有所需URL(/en/,/kz/)的语言版本,在服务器上翻译内容,生成hreflang——所有这些在索引时都会被Google和Yandex看到。
同时,Yandex 对 hreflang 有自己的要求:除了 <head> 中的标准属性外,它还建议通过 <html> 标签的 lang 属性指定页面语言。Multify 会生成这两个属性。
