Vin*_*ceJ 5 html robots.txt meta-tags x-robots-tag
我有两个关于爬行器和机器人的问题。
\n\n我只想将 Google 和 Bing 排除在 \xe2\x80\x9cdisallow\xe2\x80\x9d 和 \xe2\x80\x9cnoindex\xe2\x80\x9d 限制之外。换句话说,我希望除 Google 和 Bing 之外的所有搜索引擎都遵循 \xe2\x80\x9cdisallow\xe2\x80\x9d 和 \xe2\x80\x9cnoindex\xe2\x80\x9d 规则。另外,我还想要一个用于我提到的搜索引擎的 \xe2\x80\x9cnosnippet\xe2\x80\x9d 功能(它们都支持 \xe2\x80\x9cnosnippet\xe2\x80\x9d)。我应该使用哪些代码来执行此操作(同时使用 robots.txt 和 X-Robots-Tag)?
\n\n我希望将其作为 X-Robots-Tag 包含在 robots.txt 文件和 htacess 文件中。我知道 robots.txt 可能已经过时,但我希望向爬虫提供清晰的说明,即使它们 \xe2\x80\x99re 被视为 \xe2\x80\x9cin effective\xe2\x80\x9d 和 \xe2\x80\x9coutdated\xe2\ x80\x9d 除非你另有想法。
\n\n我是否正确地获取了以下代码,仅允许 Google 和 Bing 建立索引(以防止其他搜索引擎在其结果中显示),并进一步阻止 Bing 和 Google 在其搜索结果中显示片段?
\n\nX-Robots-Tag 代码(这是正确的吗?我认为我不需要向 googlebot 和 bingbot 添加“index”,因为“index”是默认值,但不确定。)
\n\n\n\nX-Robots-Tag: googlebot: nosnippet\nX-Robots-Tag: bingbot: nosnippet\nX-Robots-Tag: otherbot: noindex\nRun Code Online (Sandbox Code Playgroud)\n\nrobots.txt 代码(这是正确的吗?我认为第一个是,但不确定。)
\n\n User-agent: Googlebot\n Disallow:\n User-agent: Bingbot\n Disallow:\n User-agent: *\n Disallow: /\nRun Code Online (Sandbox Code Playgroud)\n\n或者
\n\n User-agent: *\n Disallow: /\n User-agent: Googlebot\n Disallow:\n User-agent: Bingbot\n Disallow:\nRun Code Online (Sandbox Code Playgroud)\n\n我预计 robots.txt 和 X-Robots-Tag 之间会发生冲突,因为不允许函数和 noindex 函数不允许一起工作(使用 X-Robot-Tag 而不是 robots.txt 有什么优势吗?) 。我该如何解决这个问题,您有什么建议?
\n\n如前所述,这样做的主要目标是明确告诉所有较旧的机器人(仍在使用 robots.txt)和除 Google 和 Bing(使用 X-Robots-Tag)之外的所有较新的机器人不要在搜索中显示我的任何页面结果(我假设在 noindex 函数中总结)。我知道他们可能不会全部遵循它,但我希望他们所有人都知道,除了 Google 和 Bing 之外,不要在搜索结果中显示我的页面。为此,我希望为 robots.txt 代码和 X-Robots-Tag 代码找到正确的代码,这些代码对于我正在尝试构建的 HTML 网站来说,不会与此功能发生冲突。
\nrobots.txt 并没有过时。它\xe2\x80\x99s仍然是唯一开放/与供应商无关的方式来控制不应该被抓取的内容。X-Robots-Tag(以及相应的meta- robots)是唯一开放/与供应商无关的方式来控制不应该被索引的内容。
正如您\xe2\x80\x98 所知,您可以\xe2\x80\x99t 禁止同一 URL 两者。这是没有办法解决的。如果机器人想要抓取https://example.com/foo,它(希望)检查https://example.com/robots.txt是否允许它\xe2\x80\x99s 抓取它:
如果允许爬行,机器人会请求该文档,然后才知道不允许它\xe2\x80\x99对其建立索引。显然它已经抓取了文档,并且它\xe2\x80\x99s仍然允许抓取它。
如果不允许抓取,则机器人不会请求文档,因此永远不会知道它也不允许对其建立索引,因为它需要抓取文档才能查看 HTTP 标头或 HTML 元素。
robots.txt 中的一个Noindex字段可以解决此冲突,Google 似乎已将其作为实验性功能支持,但您不能期望它能够工作。
所以,你必须选择:don\xe2\x80\x99t你想出现在其他搜索引擎\xe2\x80\x99结果(\xe2\x86\x92 X-Robots-Tag),或者don\xe2\x80\ x99您希望其他搜索引擎\xe2\x80\x99机器人抓取您的文档(\xe2\x86\x92 robots.txt)。
\n\n如果您想定位所有其他机器人(而不是像您的otherbot建议那样列出每个机器人,这实际上是不可能的),您应该使用
X-Robots-Tag: bingbot: nosnippet\nX-Robots-Tag: googlebot: nosnippet\nX-Robots-Tag: noindex\nRun Code Online (Sandbox Code Playgroud)\n\n(我想 Bingbot/Googlebot 会忽略最后一行,因为它们已经与前一行匹配,但可以肯定的是,您可以添加index到两个机器人的行中。)
记录(每条记录以一行开头User-agent)需要用空行分隔:
User-agent: *\nDisallow: /\n\nUser-agent: Bingbot\nDisallow:\n\nUser-agent: Googlebot\nDisallow:\nRun Code Online (Sandbox Code Playgroud)\n\n记录的顺序\ xe2\x80\x99并不重要,除非机器人“监听”robots.txt中的多个名称(它将遵循与其名称匹配的第一个记录;并且仅当没有名称匹配时,它才会遵循记录*)。因此,添加空行后,两个 robots.txt 文件都很好。
您还可以为两个机器人使用一条记录:
\n\nUser-agent: *\nDisallow: /\n\nUser-agent: Bingbot\nUser-agent: Googlebot\nDisallow:\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
8494 次 |
| 最近记录: |