将这种链接置于多语言网站的首位是一种很好的做法:
<head>
<link rel="alternate" hreflang="en" href="/en">
</head>
但according to an answer问题Semantic markup for language switcher,语言切换器应该类似于:
<nav> <h1>Translations of this page</h1> <!-- could be omitted → usability question --> <ul> <li>English</li> <!-- could be omitted → usability question --> <li><a rel="alternate" href="/pl" hreflang="pl" lang="pl">Polski</a></li> <li><a rel="alternate" href="/de" hreflang="de" lang="de">Deutsch</a></li> </ul> </nav>
我根据这个问题得到了很少的语义标记问题:
SEO是否都需要这些规则?或者,如果我的网站上有语言切换器,则不再需要head
中的链接?
让我们在页面上说example.com/pl/kontakt
。 head
(或nav
)内的翻译链接应指向:example.com/en/contact
(直接翻译),还是仅example.com/en
(英文主页)?
具体情况如何:example.com/pl/aktualnosci/id/101
。 &#39; aktualnosci&#39;意味着新闻。正如您所看到的,并非所有新内容都可以翻译成每种语言。有时很难根据参数来预测完美的翻译网址。问题是:翻译link
(或nav
)指向此网址的位置:example.com/pl/artykul/id/101
,何时:
我希望我的问题很明确。但我还会再举一个例子:有人在页面上example.com/en/news/2015/03/02/stackoverflow-rules
,,这条新闻未翻译成波兰语。这是一个错误:
<link rel="alternate" hreflang="pl" href="/pl/aktualnosci">
作为翻译?当然,这个页面不是翻译,而只是例如所有翻译过的新词的列表。
至于我在语义上这是一个错误,因为这不是翻译,但是从UX方面来说,它很棒,因为它指向最近的翻译资源并使用户的生活更轻松。
答案 0 :(得分:1)
rel
属性定义了链接文档的关系,因此如果您在锚标记中使用它,则不需要标题中的链接标记。如果我正在阅读今天的新闻,当我点击链接,承诺我用我自己的语言显示它时,我想找到的最后一件事是昨天翻译的新闻,而不是我在导航之前,我宁愿理解没有可用的翻译(灰显的禁用链接可能是最友好的用户)。因此,最好遵循语义并保持简单,而不是试图呈现反直觉的用户体验。
答案 1 :(得分:1)
alternate
+ hreflang
:link
与a
从语义上讲,使用哪一个没有区别。在这两种情况下,链接都链接到页面的翻译。
但可以想象,消费者(例如,搜索引擎)决定忽略alternate
元素上的hreflang
+ a
,例如,因为某些网站允许在用户评论中使用此标记。用户很少能够修改head
,因此他们可能只会在alternate
中的hreflang
元素上查找link
+ head
。
除非你有充分理由不这样做,否则只需提供两者:
body
(a
元素)head
(link
元素) alternate
+ hreflang
链接为defined to point to a translated document,而非网站。
如果/pl/artykul/id/101
未翻译成其他语言(或您不确定它是,或者您不知道该网址),则只需不要使用alternate
+ { {1}}。
是的,在这种情况下链接到已翻译的父页面是错误的:hreflang
不是/pl/aktualnosci
的翻译。
当然,出于可用性原因,您仍然可以提供此类链接,但是您不应该使用/en/news/2015/03/02/stackoverflow-rules
+ alternate
标记来获取此链接。