我可以在 <urlset> 中使用 <sitemap> 吗?

Can i use <sitemap> in <urlset>?

如标题所示,我可以使用 <urlset> 中的 <sitemap> 标记指向我的第二个站点地图吗?

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

  <url>
    <loc>http://website.com/page1</loc>
    <changefreq>hourly</changefreq>
  </url>

  <url>
    <loc>http://website.com/page2</loc>
    <changefreq>hourly</changefreq>
  </url>

  <sitemap>
    <loc>http://website.com/sitemap.xml?offset=1000</loc>
    <changefreq>always</changefreq>
  </sitemap>

</urlset>

或者我必须使用 <url> 指向我的第二个站点地图:

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

  <url>
    <loc>http://website.com/page1</loc>
    <changefreq>hourly</changefreq>
  </url>

  <url>
    <loc>http://website.com/page2</loc>
    <changefreq>hourly</changefreq>
  </url>

  <url>
    <loc>http://website.com/sitemap.xml?offset=1000</loc>
    <changefreq>always</changefreq>
  </url>

</urlset>

我无法使用 <sitemapindex>,因为我有太多页面无法生成总索引文件。

作为 Sitemap protocol describes, you should use a Sitemap index file.

如果您将 sitemap 元素添加为 urlset 元素的子元素(您的第一个示例),它可能会被忽略,因为 sitemap 不是 expected elements.

如果您将站点地图添加为 urlset 中的 url 元素(您的第二个示例),您的站点地图文件只是站点地图中的另一个 URL 条目。您不应该期望消费者将此条目作为另一个站点地图来处理,因为这不是定义的行为,但特定消费者当然可能无论如何都会这样做。

如果您不能提供 Sitemap 索引文件,您可以(作为一个总比没有好的替代方案)提供多个 Sitemap 记录 in your robots.txt:

User-agent: *
Disallow:

Sitemap: https://example.com/sitemap.xml?offset=2000

Sitemap: https://example.com/sitemap.xml?offset=1000

Sitemap: https://example.com/sitemap.xml