我想在一个仅针对特定位置的站点地图中添加一些网址,但我无法弄清楚如何执行此操作.
有大量关于如何为站点地图添加特定位置替代方案的文档(使用
hreflang),但我找不到有关如何仅为特定位置添加页面的任何资源.我最初的想法是省略< loc>值,仅指定< xhtml:link rel =“alternate”>标签,但根据
specification< loc>是必须的.
那么,将特定于位置的网址添加到asitemap的正确方法是什么?
最佳答案 备注1
请注意,除谷歌之外还有其他搜索引擎可以接受站点地图.站点地图中hreflang属性所需的xmlns:xhtml命名空间是一个站点地图扩展,可能不被所有搜索引擎接受.站点地图规范未提及该属性.因此,无论如何我都不会用它.
备注2
在您的问题中,您使用的是术语位置和语言.我不确定你到底是什么意思.但请注意,要定位的语言,要定位的语言的某个区域设置以及要定位的区域(可能与语言或区域设置无关)之间存在差异.
这个主题稍微偏离主题,所以我不会在这里给出冗长的引用.我在下面链接的页面中的“支持的语言值”部分提供了一些相关信息.
可能解决方案
即使你只关心谷歌,你也可能无法做你想做的事 – 乍一看,我也找不到你问题的直接答案.
但幸运的是,您不需要将这种元信息填充到站点地图中.相反,您可以将其添加到< head>您的HTML文件.从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 =“ ”链接.
这可能是令人担忧的,因为没有合理的人会给某个页面提供某个特定页面的替代方案;另一方面,如果所有这些< link>都有意义并简化了事情.条目具有相同的形式.这样,您可以在每个页面中插入完全相同的< link>(例如通过复制粘贴或让它执行某些工具或脚本).
这里的关键点在于,无论页面是否具有合理的人称为“替代”的东西,这都有效.如果没有,则页面是其自身的唯一“备用”,因此只需添加一个,适当的< link>到它的< head>.
现在,回到你的问题,你可以
– 从站点地图中删除所有xhtml:link元素和xmlns:xhtml命名空间
– 在每个页面中,准确添加所需的hreflang链接;值得注意的是,在每个只应针对一种语言的页面中,只需添加一个引用该页面本身的链接(具有相应的hreflang属性).
非常不安全的推理
如果您仍然想使用站点地图文件来解决您的问题,您最终可以(通过类比)得出结论:每个< loc>只包含一个备用链接.将产生相同的结果,就好像你有< link>在相应页面的< head>中.
恕我直言,这个结论是危险的,我绝对不知道它是否有效.但是你可以尝试一个新的测试页面,它不会打扰你的生产网站,看看它是如何工作的.
不过,出于上述原因,我不会这样做.