【问题标题】:Usage of 'Allow' in robots.txtrobots.txt 中“允许”的使用
【发布时间】:2017-02-28 22:10:24
【问题描述】:

最近看到一个网站的robots.txt如下:

User-agent: *
Allow: /login
Allow: /register

我只能找到 Allow 条目,没有找到 Disallow 条目。

this,我可以理解robots.txt 几乎是Disallow 要抓取的页面的黑名单文件。因此,Allow 仅用于允许已被Disallow 阻止的域的子部分。类似这样:

Allow: /crawlthis
Disallow: /

但是,那个 robots.txt 没有 Disallow 条目。那么,这个 robots.txt 会让 Google 抓取所有页面吗?或者,它是否只允许带有Allow标签的指定页面?

【问题讨论】:

    标签: seo web-crawler robots.txt googlebot


    【解决方案1】:

    您说得对,这个 robots.txt 文件允许 Google 抓取网站上的所有页面。可以在此处找到详尽的指南:http://www.robotstxt.org/robotstxt.html

    如果您希望 googleBot 只被允许抓取指定的页面,那么正确的格式是:

    User Agent:*
    Disallow:/
    Allow: /login
    Allow: /register
    

    (我通常会禁止这些特定页面,因为它们不会为搜索者提供太多价值。)

    请务必注意,Allow 命令行仅适用于某些机器人(包括 Googlebot)

    【讨论】:

    • (官方标准只提到了“User-Agent”和“Disallow”。“*”和“$”在Disallow指令中也没有正式的特殊含义。)
    【解决方案2】:

    拥有包含Allow 行但没有Disallow 行的robots.txt 记录是没有意义的。无论如何,默认情况下都允许抓取所有内容。

    根据original robots.txt specification(它没有定义Allow),它甚至是无效的,因为至少需要一个Disallow行(我的粗体强调):

    记录以一条或多条User-agent 行开头,然后是一条或多条 Disallow 行[…]

    至少有一个 Disallow 字段需要出现在记录中。


    换句话说,像这样的记录

    User-agent: *
    Allow: /login
    Allow: /register
    

    相当于记录

    User-agent: *
    Disallow:
    

    即允许抓取所有内容,包括(但不限于)路径以/login/register 开头的URL。

    【讨论】:

      猜你喜欢
      • 2023-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-18
      • 2016-08-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-02
      相关资源
      最近更新 更多