node.js - 如何显示不同语言的页面?

标签 node.js internationalization seo google-search-console

我使用这个元标记让谷歌爬虫知道我的网站有两种语言,如这里所建议的那样 support.google .

<link rel="alternate" hreflang="x-default" href="http://www.example.com" />
<link rel="alternate" hreflang="de" href="http://www.example.com/de" />
<link rel="alternate" hreflang="en" href="http://www.example.com/en" />

所以有时 example.com 的内容与 example.com/de 相同,有时 example.com 是与 example.com/en 相同。

我使用下面的代码来检测语言

const lang = (
     getLangFromUrl(req.url) || 
     getLangFromCookies(req.cookies) || 
     getLangFromHeader(req.headers) || 
     'de'
);

Google 将 example.comexample.com/de 检测为重复页面。

你能告诉我应该如何正确完成吗?

最佳答案

Google 已在此链接中提到此问题:support.google.com

如果您希望根据语言设置动态更改内容或重新路由用户,请注意 Google 可能无法找到并抓取您的所有变体。这是因为 Googlebot 爬虫通常来自美国。另外,爬虫在发送HTTP请求时没有在请求头中设置Accept-Language。

希望对你有帮助

关于node.js - 如何显示不同语言的页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54873289/

相关文章:

node.js - 是否有用于 node.js 的服务器端 Websocket 客户端?

django - 在高级自定义模板标签中获取请求上下文

spring - 如何在 i18n Thymeleaf/Spring 消息的一部分中定义链接?

javascript - Nextjs getInitialProps 阻止了客户端的页面渲染?

node.js - 将异步等待与 setImmediate 结合使用

javascript - Iron Router 将参数添加到字符串以及添加查询

javascript - 如何使用 async/await 在 NodeJS 中创建 TCP 客户端?

validation - 信用卡验证 : can Card Name contain non-ASCII characters?

php - 如何删除 Joomla 1.5 中的损坏/死链接?

http - IIS 7 友好 URL 重写