【问题标题】:Do canonical links require a full domain?规范链接是否需要完整的域?
【发布时间】:2023-04-07 01:32:01
【问题描述】:

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

换句话说,就是:

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

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

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

【问题讨论】:

    标签: html seo canonical-link html-head


    【解决方案1】:

    直接来自谷歌:

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

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

    【讨论】:

    • linkhref 由 Tim Berners Lee 在 HTML 的第一个规范中定义。谷歌并不比任何有意见的人更“直接”。
    • 很公平,但由于大多数人,但因为谷歌的规范,我认为谷歌的答案对他们来说很重要。
    • 是的。它们是一个很好的来源,但不是(请原谅双关语)一个规范的来源。
    • Google 已更改该页面,不再声明接受相对 URL(afaics)。相反,他们写“避免错误:使用绝对路径而不是带有rel="canonical" 链接元素的相对路径。”。这是否意味着(根)相对规范标签不再适用?在这种情况下,这样做的缺点和原因是什么?是否有任何“规范”来源表明(根)相关规范标签可以?
    • @Qtax 我的猜测是该文本只是建议使用绝对 URL 来避免错误,而不是声明相对 URL 是错误的。如果在可以从多个域访问的任何页面上使用相对 URL,那么相对 URL 是错误的,因为您现在有多个指向同一个文档的规范 URL。
    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

      Google 再次声明:

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

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

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

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

      例如,这些是他们的网址:

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

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

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

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

      就是这样。不多也不少。

      【讨论】:

      • http://example.com/wordpress/seo-plugin//wordpress/seo-plugin/http://example.com 上没有区别。问题是:规范标签中是否需要完整的 URL,如果需要,为什么?像 /wordpress/seo-plugin/ 这样的根相对 URL 有什么问题?
      【解决方案4】:

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

      RFC 6596(规范链接关系explicitly says

      目标(规范)IRI MAY:

      examples之一:

      […] 或作为相对 IRI:

      <link rel="canonical" href="page.php?item=purse">
      

      【讨论】:

        【解决方案5】:

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

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

        【讨论】:

        • 这是错误的:“Google 不会从非规范来源获取 JSON 标记。”
        【解决方案6】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2023-01-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-04-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多