【问题标题】:Canonical url and localization规范网址和本地化
【发布时间】:2014-02-15 03:13:25
【问题描述】:

在我的应用程序中,我的本地化网址如下所示:

这个问题主要是针对Facebook Likes,但我想当我开始考虑搜索引擎爬虫时,我会遇到类似的问题。

您希望什么样的网址作为规范网址?我不想使用 exact 英文网址,因为我希望点击链接的人将被转发到他们自己的语言(浏览器设置/取决于 IP)。

IP 查找并不是我希望在每次点击页面时都执行的操作。除此之外,我还需要在我的应用程序中加入更多的“状态”,因为我必须检查用户是否已经被转发到他自己的语言环境,或者是否有意浏览英文版本。

我猜它会是这样的:

http://example.com/something/animals/elephant

或者可能根本没有任何语言标识符:

http://example.com/animals/elephant

但这有点难以实现,未来发生 url 冲突的机会更大(在极少数情况下,我会得到一个名为 ende 的类别)。

总结

您希望什么样的网址作为规范网址?是否已经为此制定了标准?

【问题讨论】:

  • 每当您使用“规范”一词时,您是指canonical 链接关系吗?
  • 是的,对不起,如果我用错了这个词。我的意思是所有页面实际上都有不同的语言(和网址),但都代表同一个页面。因此,当点赞大象页面时,它会在 Olifant 和 Elefant 页面赞之间共享。
  • 我投票结束这个问题,因为它不是一个编程问题,而且它在 Stack Overflow 上是题外话。应在Webmasters 上询问有关您网站的非编程问题。以后,请在那里提出这样的问题。该网站的这个问题非常相似:How should I structure my URLs for both SEO and localization?

标签: url web localization canonical-link url-design


【解决方案1】:

除了必须是 URL 之外,当然没有“标准”。您在许多商业网站上看到的当然正是您所描述的:

  <protocol>://<server>/<language>/<more-path>

对于“语言标签”,您也可以关注RFCs。我猜你的 2-letter-abbrev 很好。

我只是不同意 URL 的 &lt;more-path&gt;。如果我理解正确,您正在考虑将每个页面转换为本地语言 URL?我不会那样做。也许我不是标准用户,但我个人喜欢手动在 URL 中胡闹,即如果显示的 URL 是 http://examle.com/de/tiere/elefant,但我不相信内容翻译得很好我会手动尝试 http://examle.com/en/tiere/elefant——这不会把我带到预期的页面。因为我也不喜欢那些 URL http://ex.com/with-the-whole-title-in-the-url-so-the-page-will-be-keyworded-by-search-engines,所以我最喜欢的是只交换 &lt;language&gt; 部分并使用通用英语(或任何其他语言)为 &lt;more-path&gt;。例如:

如果您的网站类似于维基百科,那么我也同意您翻译&lt;more-part&gt; 的方案。

【讨论】:

    【解决方案2】:

    您需要考虑的语言更多。

    这是一个典型的 3 元组 {region, language, property} 如果您只有一个网站,那么您只有{region, language}

    在这个 3 维空间中,每条内容都可以是不同的,或者至少可以以不同的方式呈现。但这是同一条内容,因此您希望集中管理编辑信号、促销、跟踪等。想想搜索系统 - 您希望页面排名在文章的所有实例中合并,而不是分散得很薄出去。

    我认为有一个标准的解决方案:Canonical URL

    将语言/地区放入域名

    example.com
    uk.example.com
    fr.example.com
    

    现在您可以选择如何为子域(用于语言/地区)或域(用于用户跟踪)附加 cookie!

    在每个 html 页面上添加一个指向规范 URL 的链接

    <link rel="canonical" href="http://example.com/awesome-article.html" />
    

    现在你已经完成了。

    【讨论】:

      【解决方案3】:

      也许这份 Google 指南可以帮助您解决问题:https://support.google.com/webmasters/answer/189077?hl=en

      它表示许多网站为(全球)用户提供针对特定地区用户的内容。建议使用 rel="alternate" hreflang="x" 属性在搜索结果中提供正确的语言或区域 URL。

      【讨论】:

      • 该页面似乎根本没有提及规范标签。
      【解决方案4】:

      我确实发现one resource 建议不要使用带有本地化地址的规范标签。但是,Google's documentation 没有指定,只是在另一个上下文中提及子域。

      【讨论】:

        【解决方案5】:

        我知道这个问题有点老了,但我遇到了同样的问题。 我发现了这个:

        只有当主要内容使用相同的语言时(即,如果只翻译页眉、页脚和其他非关键文本,但正文保持不变,则单个页面的不同语言版本被视为重复,那么这些页面被认为是重复的)。

        可以在这里找到:https://developers.google.com/search/docs/advanced/crawling/consolidate-duplicate-urls

        由此我可以得出结论,我们应该将语言环境添加到规范中。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-12-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-11-26
          相关资源
          最近更新 更多