如何将特定于位置的网址添加到站点地图?

How to add location specific urls to sitemap?

我想将一些网址添加到针对特定位置的站点地图 ,但我不知道如何执行此操作。 有大量关于如何向站点地图添加特定位置 替代方案 的文档(需要 hreflang), but I cannot find any resources on how to add pages for a specific location only. My initial thought was to just omit the <loc> value and only specify the <xhtml:link rel="alternate"> tags, but according to the specification <loc>

那么,将特定位置的 URL 添加到站点地图的正确方法是什么?

备注1

请注意,除 Google 外,还有其他搜索引擎接受站点地图。站点地图中 hreflang 属性所需的 xmlns:xhtml 命名空间是一个站点地图扩展,可能不会被所有搜索引擎接受。站点地图规范没有提到该属性。所以,反正我是不会用的。

备注2

在您的问题中,您使用了术语 locationlanguage。我不确定 location 到底是什么意思。但请注意,目标语言、目标语言的特定语言环境和目标地区之间存在差异(可能与语言无关或语言环境)。

这个题目有点题外话,这里就不赘述了。我在下面 link 编辑的页面中的 "Supported language values" 部分有一些相关信息。

可能的解决方案

即使你只关心 Google,你也可能无法做你想做的事 - 乍一看,我也找不到任何直接的答案。

但幸运的是,您不需要将那种元信息塞入站点地图。相反,您可以将其添加到 HTML 文件的 <head> 中。来自 this document(强调我的):

If you have multiple language versions of a URL, each language page should identify different language versions, >>>>>> including itself <<<<<<. For example, if your site provides content in French, English, and Spanish, the Spanish version must include a rel="alternate" hreflang="x" link >>>>>> for itself <<<<<< in addition to links to the French and English versions. Similarly, the English and French versions must each include >>>>>> the same <<<<<< references to the French, English, and Spanish versions.

很明显,一个页面不仅可以,甚至应该包含一个rel="alternate" hreflang="<insert uri of page itself here>" link.

这可能令人担忧,因为没有通情达理的人会称某个给定页面为同一页面的替代页面;另一方面,如果所有这些 <link> 条目都具有相同的形式,它就有意义并简化了事情。这样,您可以将完全相同的一堆 <link> 插入每个页面(例如,通过复制粘贴或让它执行某些工具或脚本)。

这里的关键点是,无论页面是否具有合理的人可以称为 "alternate" 的内容,这都有效。如果没有,则该页面本身就是唯一的 "alternate",因此只需将适当的 <link> 添加到其 <head>.

现在,回到你的问题,你可以

- 从站点地图中删除所有 xhtml:link 元素和 xmlns:xhtml 命名空间

- 在每一页中,准确添加需要的hreflang link;值得注意的是,在每个只应针对一种语言的页面中,只需添加一个引用该页面本身的 link(具有适当的 hreflang 属性)。

非常不安全的推理

如果您仍然想仅使用站点地图文件来解决您的问题,您最终可以得出结论(通过类比),每个 <loc> 仅包括一个替代 link 将产生相同的结果,就像您会在相应页面的 <head>.

中找到 <link>

恕我直言,这个结论很危险,我完全不知道它是否有效。但是您可以尝试使用一个新的测试页面,它不会影响您的生产网站,然后看看它是如何工作的。

不过,出于上述原因,我不会那样做。

简短回答:是。可以添加几个 urls/<loc>,这些 urls ONLY 针对特定的地理位置。

怎么办?

创建一个特定于语言环境的条目,包括语言环境本身的单个替代项。 IE。而不是通常的:

<url>
  <loc>http://example.com/</loc>
  <xhtml:link 
               rel="alternate"
               hreflang="en"
               href="http://www.example.com/" />
  <xhtml:link 
               rel="alternate"
               hreflang="de-ch"
               href="http://www.example.com/schweiz-deutsch/" />
</url>

做:

<url>
  <loc>http://example.com/schweiz-deutsch/</loc>
  <xhtml:link 
               rel="alternate"
               hreflang="de-ch"
               href="http://www.example.com/schweiz-deutsch/" />
</url>

这似乎足以让 Google 推断该页面仅供 de-ch 用户使用,没有任何其他语言的替代表示。

也可以通过 GeoTargeting

向 google 表明您的网站(所有网址)适用于特定国家/地区

参考文献: