使用 X-Robot-Tag 而不是 robots.txt 有什么好处吗?
Is there any advantage of using X-Robot-Tag instead of robots.txt?
看起来有两种主流的解决方案来指导爬虫索引什么和不索引什么:添加一个 X-Robot-Tag HTTP header,或者指示一个 robots.txt.
使用前者有什么优势吗?
使用 robots.txt
,您不能禁止对文档编制索引。
他们有不同的目的:
robots.txt
可以禁止 抓取(使用 Disallow
)
X-Robots-Tag
¹ 可以禁止 索引(使用 noindex
)
(并且两者都提供额外的不同功能,例如 X-Robots-Tag
中的 linking to your Sitemap in robots.txt
, disallowing following links,等等。)
抓取表示访问文档。 Indexing 意味着向索引中的文档(以及可能来自或关于)的文档提供 link。在典型情况下,机器人会在抓取文档后为其编制索引,但这不是必需的。
不允许爬取文档的机器人可能仍会为其编制索引(无需访问它)。不允许索引文档的机器人可能仍会抓取它。 You can’t disallow both.
¹ 请注意,header 称为 X-Robots-Tag
,而不是 X-Robot-Tag
。顺便说一句,元数据名称 robots
(对于 HTML meta
元素)是 HTTP header.
的替代项
看起来有两种主流的解决方案来指导爬虫索引什么和不索引什么:添加一个 X-Robot-Tag HTTP header,或者指示一个 robots.txt.
使用前者有什么优势吗?
使用 robots.txt
,您不能禁止对文档编制索引。
他们有不同的目的:
robots.txt
可以禁止 抓取(使用Disallow
)X-Robots-Tag
¹ 可以禁止 索引(使用noindex
)
(并且两者都提供额外的不同功能,例如 X-Robots-Tag
中的 linking to your Sitemap in robots.txt
, disallowing following links,等等。)
抓取表示访问文档。 Indexing 意味着向索引中的文档(以及可能来自或关于)的文档提供 link。在典型情况下,机器人会在抓取文档后为其编制索引,但这不是必需的。
不允许爬取文档的机器人可能仍会为其编制索引(无需访问它)。不允许索引文档的机器人可能仍会抓取它。 You can’t disallow both.
¹ 请注意,header 称为 X-Robots-Tag
,而不是 X-Robot-Tag
。顺便说一句,元数据名称 robots
(对于 HTML meta
元素)是 HTTP header.