首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何排除robots.txt和robots.txt标签的所有机器人,Googlebot和宾博特除外

如何排除robots.txt和robots.txt标签的所有机器人,Googlebot和宾博特除外
EN

Stack Overflow用户
提问于 2019-05-08 22:07:56
回答 1查看 5.5K关注 0票数 4

我有两个关于爬虫和机器人的问题。

背景信息

我只希望谷歌和必应被排除在“不允许”和“无索引”的限制之外。换句话说,除了谷歌和必应,我希望所有搜索引擎都遵循“不允许”和“不索引”的规则。此外,我还想为我提到的搜索引擎提供一个“nosnippet”函数(所有这些功能都支持“nosnippet”)。我应该使用哪些代码来完成这个任务(同时使用robots.txt和)?

我希望在robots.txt文件和htacess文件中都使用它作为robots.txt标记。我知道robots.txt可能已经过时了,但是我希望对爬行器有明确的说明,即使它们被认为是“无效的”和“过时的”,除非您不这么认为。

问题1

我是否正确地使用了以下代码,只允许Google和Bing索引(以防止其他搜索引擎在其结果中显示),以及阻止Bing和Google在搜索结果中显示片段?

X-机器人-标记代码(这是正确的吗?)不要认为我需要在googlebot和bingbot中添加"index“,因为"index”是一个默认值,但不确定)。

代码语言:javascript
运行
复制
X-Robots-Tag: googlebot: nosnippet
X-Robots-Tag: bingbot: nosnippet
X-Robots-Tag: otherbot: noindex

robots.txt代码(这是正确的吗?我认为第一个是,但不确定。)

代码语言:javascript
运行
复制
    User-agent: Googlebot
    Disallow:
    User-agent: Bingbot
    Disallow:
    User-agent: *
    Disallow: /

代码语言:javascript
运行
复制
    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标记代码都找到正确的代码,这些代码对于我正在构建的这个函数来说不会发生冲突。

EN

回答 1

Stack Overflow用户

发布于 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,看看它是否允许爬行:

  • 如果允许爬行,机器人将请求文档,然后才知道不允许对其进行索引。显然,它已经爬行了文档,并且仍然允许它爬行。
  • 如果不允许爬行,bot不会请求文档,因此永远不会知道也不允许对其进行索引,因为它需要爬行文档才能查看HTTP头或HTML元素。

Noindex字段在robots.txt中可以解决这一冲突,谷歌似乎支持它作为experimental feature,但你不能指望它能工作。

因此,您必须选择:您不希望出现在其他搜索引擎的结果( robots.txt)中(→X-Robots-Tag),或者不希望其他搜索引擎的机器人爬行您的文档(→)。

X-机器人-标签

如果您想针对所有其他的机器人(而不是像您的otherbot所建议的那样列出每个机器人,这几乎是不可能的),那么您应该使用

代码语言:javascript
运行
复制
X-Robots-Tag: bingbot: nosnippet
X-Robots-Tag: googlebot: nosnippet
X-Robots-Tag: noindex

(我认为Bingbot/Googlebot忽略了最后一行,因为它们已经匹配了前面的一行,但可以肯定的是,您可以将index添加到两个机器人的行中。)

robots.txt

记录(每条记录以User-agent行开头)需要用空行分隔:

代码语言:javascript
运行
复制
User-agent: *
Disallow: /

User-agent: Bingbot
Disallow:

User-agent: Googlebot
Disallow:

order of the records并不重要,除非bot“侦听”robots.txt中的多个名称(它将遵循与其名称匹配的第一个记录;并且只有在没有名称匹配的情况下,它才会跟随*记录)。因此,在添加空行之后,您的两个robots.txt文件都很好。

您还可以为两个机器人使用一条记录:

代码语言:javascript
运行
复制
User-agent: *
Disallow: /

User-agent: Bingbot
User-agent: Googlebot
Disallow:
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56049660

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档