站点地图中的多个 url 个位置

Multiple url locations in sitemap

我更改了网站中一些重要页面的 url。

为了保持向后兼容性并避免断开引用那些页面并已经散布的链接,原始地址仍然有效。 所以有两个地址指向完全相同的页面。

站点地图中应该如何定义?

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
   <url>
      <loc>http://www.example.com/old_address1</loc>
      <loc>http://www.example.com/new_address1</loc>
   </url>
   <url>
      <loc>http://www.example.com/old_address2</loc>
      <loc>http://www.example.com/new_address2</loc>
   </url>
</urlset> 

这样对吗?

正在查看googleblog

多个站点地图可能是您 want.They 应该在同一目录中的内容,并且可以这样命名:

http://www.example.com/old_sitemap.xml
http://www.example.com/new_sitemap.xml

每个都包含自己的网址。

旧:

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
   <url>
      <loc>http://www.example.com/old_address1</loc>
   </url>
   <url>
      <loc>http://www.example.com/old_address2</loc>
   </url>
</urlset>

新:

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
   <url>
      <loc>http://www.example.com/new_address1</loc>
   </url>
   <url>
      <loc>http://www.example.com/new_address2</loc>
   </url>
</urlset>

XML 站点地图只对每个 URL 有一个标记有效,但是如果需要,您可以在同一个 XML 站点地图中同时列出旧的和新的。例如:

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
   <url>
      <loc>http://www.example.com/old_address1</loc>
   </url>
   <url>
      <loc>http://www.example.com/old_address2</loc>
   </url>
</urlset> 

话虽如此,但您可能需要考虑其他设置,具体取决于您对新旧 URL 的意图。如果用户和搜索引擎都不再需要查看实施 301 重定向的页面可能最有意义。

否则,如果用户仍需要查找该站点但不需要为该站点编制索引,则实施 canonical 将整合 link 而不进行重定向。

无论选择哪种方式,您都应该只包含希望搜索引擎索引的 URL。如果旧内容不再有效并且不应在搜索中找到,请考虑从 XML 站点地图中完全删除那些 URL,并依靠规范来传递 link 权益。

附加信息here

为了总结您的问题,您创建了一个新端点,您在其中为用户提供服务。但是您不希望使用旧 URL 的用户登陆一个孤立的页面。为了解决这个问题,您在服务器上托管了两个 URL。但是现在,您如何告诉 GoogleBot 这两个页面是同一页面?

根据您目前所做的尝试,我假设您更喜欢使用站点地图文件的解决方案。

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml">
    <url>
        <loc>http://www.example.com/new_address1</loc>
        <xhtml:link rel="canonical" href="http://www.example.com/old_address1" />
    </url>
    <url>
        <loc>http://www.example.com/new_address2</loc>
        <xhtml:link rel="canonical" href="http://www.example.com/old_address2" />
    </url>
</urlset>

还有其他方法可以完成此操作。一种方法是在页面本身的 HEAD 部分的 link 标记中使用 rel="canonical" 将旧的指定为规范 URL。

<link rel="canonical" href="http://www.example.com/old_address2" />

作为参考,请检查这些 link:

  1. Consolidate duplicate URLs

  2. Separate-urls