使用“从 accept language 标头设置区域设置”时 html lang 属性值错误

我们正尝试在 Microsoft AppSource 上列出部分产品。AppSource 要求列表必须提供全英文体验。然而,我们的论坛支持双语,因此我希望在 AppSource 列表中提供一个指向英文分类的链接。

我们已启用“根据 Accept-Language 请求头设置区域设置”功能,以便来自印度的用户能看到英文的次要内容(例如显示为“最新主题”而非荷兰语的“Laatste nieuwsberichten”)。

但在通过 Postman 测试并将 Accept-Language 从“nl”切换为“en”时,生成的 HTML 却存在问题:

使用 en 时:

<!DOCTYPE html>
<html lang="nl">

<head>

使用 nl 时:

<!DOCTYPE html>
<html lang="nl">

<head>

虽然实际标签已从荷兰语正确切换为英语,但 <html> 标签中的语言属性仍显示为荷兰语,而非当前内容的实际语言。

我们还在 Locale-Adaptive Pages Testing Tool | TechnicalSEO.com 上进行了测试,结果相同:

为了提升可索引性,希望 <html> 标签的 lang 属性能够根据 Accept-Language 请求头自动设置,或根据分类内容自动推导,以符合 Google 的抓取要求。请注意,Google 通常使用 Accept-Language 设为美国(en-US)的爬虫进行抓取。

为明确起见,您所描述的问题是否仅出现在爬虫和 API 请求中?

根据 Google 的文档

此外,爬虫发送 HTTP 请求时不会在请求头中设置 Accept-Language

由于 Google 不设置 Accept-Language 请求头,因此该方法无法解决与 Google 相关的问题。

html 标签的 lang 属性始终设置为网站的默认语言区域。即使用户在其偏好设置页面中选择了一个非默认的语言区域,情况也是如此。

2 个赞

抱歉,也许我粘贴的 URL 有误。请参阅 Crawling and indexing of locale-adaptive pages  |  Google Search Central Blog  |  Google for Developers

自 2015 年以来,Google 已支持通过 Accept-Language 进行抓取。

1 个赞