我有两个关于爬虫和机器人的问题。
背景信息
我只希望谷歌和必应被排除在“不允许”和“无索引”的限制之外。换句话说,除了谷歌和必应,我希望所有搜索引擎都遵循“不允许”和“不索引”的规则。此外,我还想为我提到的搜索引擎提供一个“nosnippet”函数(所有这些功能都支持“nosnippet”)。我应该使用哪些代码来完成这个任务(同时使用robots.txt和)?
我希望在robots.txt文件和htacess文件中都使用它作为robots.txt标记。我知道robots.txt可能已经过时了,但是我希望对爬行器有明确的说明,即使它们被认为是“无效的”和“过时的”,除非您不这么认为。
问题1
我是否正确地使用了以下代码,只允许Google和Bing索引(以防止其他搜索引擎在其结果中显示),以及阻止Bing和Google在搜索结果中显示片段?
X-机器人-标记代码(这是正确的吗?)不要认为我需要在googlebot和bingbot中添加"index“,因为"index”是一个默认值,但不确定)。
X-Robots-Tag: googlebot: nosnippet
X-Robots-Tag: bingbot: nosnippet
X-Robots-Tag: otherbot: noindex
robots.txt代码(这是正确的吗?我认为第一个是,但不确定。)
User-agent: Googlebot
Disallow:
User-agent: Bingbot
Disallow:
User-agent: *
Disallow: /
或
User-agent: *
Disallow: /
User-agent: Googlebot
Disallow:
User-agent: Bingbot
Disallow:
问题2: robots.txt和robots.txt之间的冲突
我预计robots.txt和X之间会发生冲突,原因是不允许函数和不允许使用的noindex函数(Is there any advantage of using X-Robot-Tag instead of robots.txt? )。我该如何解决这个问题,你的建议是什么?
最终目标
如前所述,其主要目标是明确告诉所有较老的机器人(仍在使用robots.txt)和除谷歌和必应(使用)之外的所有较新的机器人不要在搜索结果中显示我的任何页面(我假设这是noindex函数中的总结)。我知道他们可能不会都这么做,但我希望他们都知道,除了谷歌和必应,不要在搜索结果中显示我的页面。为此,我希望为robots.txt代码和robots.txt标记代码都找到正确的代码,这些代码对于我正在构建的这个函数来说不会发生冲突。
发布于 2019-05-10 01:35:04
robots.txt并没有过时。它仍然是控制不应该让爬行的的唯一开放/供应商无关的方法。corresponding (以及相应的meta
-robots
)是唯一一种与开放/供应商无关的方式来控制哪些不应该得到索引的。
如您所知,you can’t disallow both用于相同的URL。这是无可奈何的。如果一个机器人想要爬行https://example.com/foo
,它(希望)检查https://example.com/robots.txt
,看看它是否允许爬行:
Noindex
字段在robots.txt中可以解决这一冲突,谷歌似乎支持它作为experimental feature,但你不能指望它能工作。
因此,您必须选择:您不希望出现在其他搜索引擎的结果( robots.txt)中(→X-Robots-Tag),或者不希望其他搜索引擎的机器人爬行您的文档(→)。
X-机器人-标签
如果您想针对所有其他的机器人(而不是像您的otherbot
所建议的那样列出每个机器人,这几乎是不可能的),那么您应该使用
X-Robots-Tag: bingbot: nosnippet
X-Robots-Tag: googlebot: nosnippet
X-Robots-Tag: noindex
(我认为Bingbot/Googlebot忽略了最后一行,因为它们已经匹配了前面的一行,但可以肯定的是,您可以将index
添加到两个机器人的行中。)
robots.txt
记录(每条记录以User-agent
行开头)需要用空行分隔:
User-agent: *
Disallow: /
User-agent: Bingbot
Disallow:
User-agent: Googlebot
Disallow:
order of the records并不重要,除非bot“侦听”robots.txt中的多个名称(它将遵循与其名称匹配的第一个记录;并且只有在没有名称匹配的情况下,它才会跟随*
记录)。因此,在添加空行之后,您的两个robots.txt文件都很好。
您还可以为两个机器人使用一条记录:
User-agent: *
Disallow: /
User-agent: Bingbot
User-agent: Googlebot
Disallow:
https://stackoverflow.com/questions/56049660
复制相似问题