规范 link 指向站点根错误

The canonical link points to the site root error

我有一个使用特定国家/地区页面的网站。因此,对于每一页,都有一个特定于国家/地区的 URL。例如:example.com/au/blogexample.com/us/blogexample.com/uk/blog。这很棒,因为我们可以展示与每个国家/地区更相关的内容。

这个想法和我们的主页是一样的:example.com/au, example.com/us, example.com/uk.

当用户访问非特定国家/地区的 URL(即 example.comexample.com/blog)时,服务器会退回到提供更通用的内容。然后在客户端上,我们会显示一个横幅,让用户决定是否要转到特定国家/地区的页面。

考虑到这一点,我添加了以下元标记并在使用 Lighthouse 进行测试时收到以下错误。

<link rel="canonical" href="https://www.example.com/">
<link rel="alternate" hreflang="x-default" href="https://www.example.com/">
<link rel="alternate" hreflang="en-GB" href="https://www.example.comt/uk/">
<link rel="alternate" hreflang="en-US" href="https://www.example.com/us/">
<link rel="alternate" hreflang="en-AU" href="https://www.example.com/au/">
//error
The document does not have a valid rel=canonical. Points to the domain's root URL (the homepage), instead of an equivalent page of content. 

这是通知抓取工具的正确方法吗:

如果是这样,为什么 Lighthouse 会在主页上抱怨这个错误?它不会在任何其他页面上抱怨这一点。

我不熟悉规范化和提供替代语言页面,所以我可能遗漏了一些明显的东西。

由于您的主页包含通用的内容子集,因此它不是 规范的。 (规范上下文 IRI 和目标 IRI 不应该相同,否则用户可能已经在规范 IRI 上。)从技术上讲,每种语言的 IRI 是规范 备用文档,具体取决于语言。由于您在英国,您应该将 en-GB IRI 指定为规范 IRI,将其他 IRI 指定为替代(而不是“替代”),因为它们只是其中相同内容的不同表示。

来自首页https://www.example.com/(概括内容):

<link rel="canonical" hreflang="en-GB" href="https://www.example.com/uk/">

来自 https://www.example.comt/uk/(规范 IRI)

<link rel="alternate" hreflang="en-US" href="https://www.example.com/us/">
<link rel="alternate" hreflang="en-AU" href="https://www.example.com/au/">

https://www.rfc-editor.org/rfc/rfc6596

https://www.rfc-editor.org/rfc/rfc8288

https://html.spec.whatwg.org/#the-link-element