61

我想向我的页面添加规范链接,但我需要指定域,还是需要一个相对 URL?

换句话说,就是:

<link rel="canonical" href="/item/1">

足够好,还是我需要使用:

<link rel="canonical" href="http://mydomain.com/item/1">
4

6 回答 6

57

直接来自谷歌:

http://support.google.com/webmasters/bin/answer.py?hl=en&answer=139394

链接可以是相对的还是绝对的?
rel="canonical"可以与相对或绝对链接一起使用,但我们建议使用绝对链接以尽量减少潜在的混淆或困难。如果您的文档指定了base链接,则任何相对链接都将与该base链接相关。

于 2011-12-11T22:17:06.490 回答
10

再次,谷歌这样说:

https://support.google.com/webmasters/answer/139066?hl=en

避免错误:使用绝对路径而不是rel="canonical"链接元素的相对路径。

使用这个结构:https://www.example.com/dresses/green/greendresss.html

不是这个结构:)/dresses/green/greendress.html

例如,这些是他们的 URL:

http://example.com/wordpress/seo-plugin/

http://example.com/wordpress/seo/seo-plugin/

这就是rel=canonical发明的目的。尤其是在许多电子商务系统中,这种情况(不幸的是)经常发生,其中一个产品有几个不同的 URL,具体取决于你是如何到达那里的。您将rel=canonical通过以下方法申请:

您选择两个页面之一作为规范版本。它应该是您认为最重要的版本。如果您不在乎,请选择链接或访问者最多的那个。如果所有这些都相同:掷硬币。你需要选择。
添加rel=canonical从非规范页面到规范页面的链接。因此,如果我们选择最短 URL 作为我们的规范 URL,则另一个 URL 将链接到最短 URL,如下所示<head>

<link rel="canonical" href="http://example.com/wordpress/seo-plugin/">

就是这样。不多也不少。

于 2016-02-25T15:20:38.350 回答
6

所有href属性都是超文本引用——这就是它的含义。因此,它们始终是 URI 引用,而不是 URI,并且可以是相对的。

但是,在这种情况下,如果可以的话,放入完整的 URI 是有好处的,因为它可以在将来将其迁移到另一个域的任何东西中存活下来(假设您仍然希望列出的域是规范的域),并且可以甚至可以在一些更粗暴的自动抄袭中幸存下来:)

但是,如果您没有在其他域上积极使用非规范版本,那么这种好处是非常微小的,所以我不会在它上面花费太多精力。

于 2011-12-11T22:34:09.487 回答
6

没有什么特别的canonical。它是一种标准链接类型,用于提供链接的标准方式(例如,link元素),因此您可以指定任何类型的 URL 引用(绝对、相对、协议相对,结合base元素、......)。

RFC 6596(规范链接关系明确表示

目标(规范)IRI MAY:

示例之一:

[…] 或作为相对 IRI:

<link rel="canonical" href="page.php?item=purse">
于 2017-06-09T13:16:57.050 回答
0

规范最佳实践的更新:rel="canonical"具有跨域支持。谷歌来源:https ://webmasters.googleblog.com/2009/12/handling-legitimate-cross-domain.html

此外,结构化数据的引入使得规范的使用更加严格,因为 Google 不会从非规范来源获取 JSON 标记(我碰巧犯了一个错误!)。

于 2017-09-27T15:36:59.140 回答
-1

如果该网站只有一个域,则可以使用绝对路径: <link rel="canonical" href="/item/1">

于 2019-07-18T21:31:03.907 回答