robots.txt文件中多个Sitemap条目?

51

我在谷歌上搜索了很多,但找不到答案。

robots.txt文件可以包含以下行:

Sitemap: http://www.mysite.com/sitemapindex.xml

但是在robots.txt中指定多个网站地图索引文件,并且让搜索引擎识别并爬取每个网站地图索引文件中引用的所有网站地图,这是否有可能呢?例如,以下内容是否有效:

Sitemap: http://www.mysite.com/sitemapindex1.xml

Sitemap: http://www.mysite.com/sitemapindex2.xml

Sitemap: http://www.mysite.com/sitemapindex3.xml
5个回答

111

是的,可以有多个站点地图索引文件

您可以拥有多个站点地图索引文件。

我强调一下。

是的,可以在robots.txt中列出多个站点地图文件,请参见sitemap.org网站

You can specify more than one Sitemap file per robots.txt file.

Sitemap: http://www.example.com/sitemap-host1.xml

Sitemap: http://www.example.com/sitemap-host2.xml

我强调一下,这句话不容易被误读,所以简单地说,这是可以做到的。

这也是跨提交必要的,为此选择了robots.txt

顺便提一下,GoogleYahooBing都是sitemaps.org的成员:

Sitemap 0.90遵循署名-相同方式共享的创意共享许可协议,并得到广泛采用,包括来自Google、Yahoo!和Microsoft的支持。

因此,您可以放心,搜索引擎机器人会正确地读取您的站点地图条目。

通过站长工具提交它们也不会有害 - 正如John Mueller所评论的


2
Google robots.txt文档确认这对Google是真实的,并引用应该适用于其他机器人:“可以存在多个站点地图条目。作为非组成员记录,这些不与任何特定的用户代理相关联,所有爬虫都可以遵循,前提是未被禁止”。 可在此处找到Google robots.txt文档:https://developers.google.com/webmasters/control-crawl-index/docs/robots_txt - David Marchelya
1
问题询问的是 robots.txt 中是否可以存在多个站点地图 索引 条目,而不是是否可以存在多个站点地图条目。 - Nigel Alderton
1
@NigelAlderton:规范对此也非常明确:“您可以拥有多个站点地图索引文件。”。如果您将其与Sitemaps&Cross Submits部分进行比较,则不仅清晰,而且允许每个robots.txt使用多个索引文件以进行跨域索引使用是必要的。 - hakre

8
如果您的网站地图超过10MB(未压缩)或有超过50,000个条目,谷歌要求您使用多个与Sitemap索引文件捆绑在一起的网站地图。请在robots.txt中指向一个类似于此的网站地图索引:
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
   <sitemap>
      <loc>http://www.example.com/sitemap1.xml.gz</loc>
      <lastmod>2012-10-01T18:23:17+00:00</lastmod>
   </sitemap>
   <sitemap>
      <loc>http://www.example.com/sitemap2.xml.gz</loc>
      <lastmod>2012-01-01</lastmod>
   </sitemap>
</sitemapindex>

2
不完全是。来自http://www.sitemaps.org/protocol.php的信息显示:“每个文本文件最多可以包含50,000个URL,文件大小不能超过10MB(10,485,760字节)。” - ayke
2
谷歌已经将每个站点地图文件允许的大小提升到50MB。 - Ultroman the Tacoman
2
在网站地图方面,是将robots指向sitemapindex.xml更好,还是有多个sitemap:行指向每个网站地图更好呢? - Warren
@WarrenDodsworth 我认为这并不重要,但如果你有一个"sitemapsitemap"文件,那么如果你选择这样做,只需提交一个文件给Google/Bing等搜索引擎,而不是每个站点地图文件单独提交,这会更容易些。 - Philiiiiiipp
Sitemaps已经标准化了50MB的限制:“一旦解压缩,文件大小不能超过50MB” https://www.sitemaps.org/protocol.html - Luke

4

建议创建一个站点地图索引文件,而不是将单独的XML URL放入robots.txt文件中。

然后,在您的robots.txt文件中放置索引站点地图URL,如下所示。

Sitemap: http://www.yoursite.com/sitemap_index.xml

如果您想学习如何创建索引站点地图URL,请跟随这个 sitemap.org的指南
最佳实践:
- 如果您的网站有大量此类内容,请分别创建图像站点地图和视频站点地图。 - 检查robots文件的拼写,它应该是robots.txt,不要使用robot.txt或任何错拼。将robots.txt文件直接放在根目录下。 - 欲了解更多信息,请访问robots.txt的官方网站

0

您需要在您的文件sitemap.xml中指定以下代码:

<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
    <sitemap>
        <loc>http://www.exemple.com/sitemap1.xml.gz</loc>
    </sitemap>
    <sitemap>
        <loc>http://www.exemple.com/sitemap2.xml.gz</loc>
    </sitemap>
</sitemapindex>

来源:https://support.google.com/webmasters/answer/75712?hl=fr#


-4

虽然可以编写多个站点地图,但是如何处理这些地图取决于搜索引擎。我怀疑许多搜索引擎要么会继续“消化”更多的标记,要么会将它们发现的最后一个站点地图视为真正的站点地图。

我的建议是:“如果我想让 ____ 搜索引擎索引我的网站,我能否定义多个站点地图?”


1
是的,这似乎是合理的。我想在Google的常见问题解答中读到他们支持这个。 - user306942
1
谷歌确实支持这一点,但如果您想要确保,只需在网站管理员工具中手动提交Sitemap文件即可。 - John Mueller
1
-1 这在协议规范中有明确说明。这里的回答只是无法阅读并假设其他人 - 特别是实现者 - 也不会阅读它的可悲借口。不支持 robots.txt 中的站点地图的可能性要高得多,而不是按照规范支持。 - hakre
@hakre - 如果你仔细阅读我的回答,你会发现它非常精确,-1 是你的决定。为什么不下次先写下你的第二个笔记,然后再做决定呢?... - Etamar Laron
@EtamarLaron:你是想说答案不正确,但也不值得被 DV 吗?只需要一条评论?我不确定这是否正确。而且你也没有回复第二条评论,如果你这样做了,我会很幸运,这样我就可以重新审视 DV 了。没有什么是铁板一块的。 - hakre
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接