如果我们希望保持网络的开放与繁荣,就需要更多工具来表达内容创作者希望其数据如何被使用,同时又能允许开放访问。目前的权衡方式过于有限:网站运营者要么将内容开放给全网,冒着被人用于非预期用途的风险;要么将内容置于登录后访问,从而限制受众范围。
为了解决我们的客户目前对于其内容如何被爬虫和数据抓取工具所使用的担忧,我们推出了“内容信号政策”。这项政策是 robots.txt 的一项新增功能,允许您表明对于内容在被访问后如何被使用的偏好。
robots.txt 是一个托管在域名上的纯文本文件,它实施机器人排除协议 (Robots Exclusion Protocol)。它允许您指定哪些爬虫和机器人可以访问您网站的哪些部分。许多爬虫和部分机器人会遵守 robots.txt 文件,但并非所有都会。
例如,如果您想允许所有爬虫访问您网站的每个部分,您可以托管一个包含以下内容的 robots.txt 文件:
User-agent: *
Allow: /
用户代理是您的浏览器或机器人在访问某个资源时用来标识自身身份的方式。在本例中,星号 (*) 表示允许使用何种设备或浏览器的任何用户代理访问该内容。而在 Allow 字段中的斜杠 (/) 则表明访客可以访问网站的任意部分。
robots.txt 文件还可以通过在 # 符号后添加字符来添加注释。机器人和机器会忽略这些注释,但这是一种为审阅文件的人留下更易读注释的方法。下面是一个示例:
# .__________________________.
# | .___________________. |==|
# | | ................. | | |
# | | ::[ Dear robot ]: | | |
# | | ::::[ be nice ]:: | | |
# | | ::::::::::::::::: | | |
# | | ::::::::::::::::: | | |
# | | ::::::::::::::::: | | |
# | | ::::::::::::::::: | | ,|
# | !___________________! |(c|
# !_______________________!__!
# / \
# / [][][][][][][][][][][][][] \
# / [][][][][][][][][][][][][][] \
#( [][][][][____________][][][][] )
# \ ------------------------------ /
# \______________________________/
网站所有者可以通过列出某些用户代理(例如,仅允许某些机器人用户代理或浏览器用户代理)以及声明网站的哪些部分可以或不可以被抓取,使 robots.txt 更加具体。下面的示例告诉机器人跳过对存档路径的抓取。
User-agent: *
Disallow: /archives/
这里的例子更加具体,它告诉 Google 机器人跳过对归档路径的抓取。
User-agent: Googlebot
Disallow: /archives/
这让您能够指定哪些爬虫被允许访问,以及它们可以访问您网站的哪些部分。然而,它并不能让这些爬虫知道,在访问您的内容之后,它们可以对这些内容做些什么。正如许多人已经意识到的那样,我们需要一种机器可读的标准方式来传达“道路规则”——即您的内容在被访问后可以如何被使用。
这正是“内容信号政策”允许您表达的内容:您对于爬虫可以或不可以对您的内容做些什么的偏好。
有些公司每天都会从互联网上抓取海量数据。为这些数据抓取工具提供服务会给网站运营者带来实际成本,尤其是当他们得不到任何回报时——我们正面临一个典型的搭便车问题。而且情况只会变得更糟:我们预计到 2029 年底,互联网上的机器人流量将超过人类流量;到 2031 年,仅机器人活动所产生的流量就将超过当前整个互联网的流量总和。
这种状况之所以能够形成,是因为互联网上存在一种事实上的默认规则。以往的惯例是,您的数据会被采集使用,但作为内容创作者,您也会因此获得某种回报:要么是可以变现的引荐流量,要么至少能获得某种形式的署名,以表明您是内容的作者。回想一下博客早期的链接回溯机制,它就是一种向作品原作者致谢的方式。虽然当时没有金钱交易,但这种署名推动了未来的发现与传播,并具有其内在价值。这一惯例已被嵌入许多宽松型许可协议中,比如 MIT 和知识共享 (Creative Commons),它们都要求必须注明原作者。
那个世界已经改变了;如今,被抓取的内容有时会被用来在经济上与原作者竞争。这让很多人面临一个两难的选择:是要封锁对内容与数据的访问权限,还是接受引荐流量减少、署名权微乎其微的现实?如果唯一的选择只能是前者,那么网络上思想的开放交流就会受到损害,而 AI 生态系统中那些努力训练新模型的新进入者也将处于不公平的劣势。
内容信号政策集成在网站运营者的 robots.txt 文件中。它是以井号 (#) 开头的、人类可读的注释文本。该政策定义了三种内容信号——搜索、AI 输入和 AI 训练,以及它们与爬虫之间的关联。
网站运营商可以选择通过机器可读的内容信号来表达他们的偏好。
# As a condition of accessing this website, you agree to abide by the following content signals:
# (a) If a content-signal = yes, you may collect content for the corresponding use.
# (b) If a content-signal = no, you may not collect content for the corresponding use.
# (c) If the website operator does not include a content signal for a corresponding use, the website operator neither grants nor restricts permission via content signal with respect to the corresponding use.
# The content signals and their meanings are:
# search: building a search index and providing search results (e.g., returning hyperlinks and short excerpts from your website's contents). Search does not include providing AI-generated search summaries.
# ai-input: inputting content into one or more AI models (e.g., retrieval augmented generation, grounding, or other real-time taking of content for generative AI search answers).
# ai-train: training or fine-tuning AI models.
# ANY RESTRICTIONS EXPRESSED VIA CONTENT SIGNALS ARE EXPRESS RESERVATIONS OF RIGHTS UNDER ARTICLE 4 OF THE EUROPEAN UNION DIRECTIVE 2019/790 ON COPYRIGHT AND RELATED RIGHTS IN THE DIGITAL SINGLE MARKET.
此文本包含三个部分:
第一段向各公司说明了如何解读任一给定的内容信号。“是”表示允许,“否”表示禁止,而若未提供某一信号,则不传递任何含义。最后这种中立的选项非常重要:它让网站运营者可以针对某一项内容信号表达偏好,而又不必对其他信号也表明态度。
第二段定义了内容信号的词汇表。我们尽量简化了这些信号,以便任何访问内容的人都能轻松遵守。
最后一段提醒那些自动化获取数据的主体,这些内容信号在各个司法管辖区可能具有相应的法律权益。
随后,网站运营者可以使用以逗号分隔、值为“是”或“否”的机器可读文本,来声明他们的具体偏好。如果某网站运营者希望允许搜索引擎抓取,但禁止用于 AI 训练,且对 AI 输入未表达明确偏好,那么他们可以在自己的 robots.txt 文件中加入如下内容:
User-Agent: *
Content-Signal: search=yes, ai-train=no
Allow: /
如果网站运营商像上面的例子一样将 AI 输入的内容信号留空,这并不意味着他们对该用途没有偏好;这仅仅意味着他们没有使用 robots.txt 文件的这一部分来表达它。
如果您已经知道如何配置 robots.txt 文件,那么部署内容信号就非常简单:只需添加上述的内容信号政策,然后通过内容信号定义您的偏好即可。
我们希望让采用内容信号变得更加简单。Cloudflare 的客户已经为超过 380 万个域名启用了我们提供的托管 robots.txt 功能。通过这样做,他们选择向相关公司表明,不希望这些域名上的内容被用于 AI 训练。对于这些客户,我们将更新我们代表他们托管的 robots.txt 文件,以包含“内容信号政策”以及以下信号:
Content-Signal: search=yes, ai-train=no
我们不会为托管 robots.txt 的客户提供“AI 输入”信号。我们不清楚他们对该信号的偏好,因此我们不想妄加猜测。
从今天开始,我们还将为尚未配置 robots.txt 文件的所有免费客户区域提供带注释、易于理解的内容信号政策。实际上,这意味着对该域名的 robots.txt 请求将返回定义内容信号的注释。这些注释将被爬虫程序忽略。重要的是,它不会包含任何 Allow 或 Disallow 指令,也不会提供任何实际的内容信号。用户有权选择并在他们准备好时表达自己的实际偏好。目前拥有 robots.txt 文件的客户将不会看到任何变化。
使用免费计划的区域可以通过 Cloudflare 仪表板的“安全设置”部分以及“概览”部分来关闭内容信号政策。
要创建您自己的内容信号,只需将我们在 ContentSignals.org 上帮助您生成的文本复制并粘贴到您的 robots.txt 文件中,或立即通过“部署到 Cloudflare”按钮进行部署。如果您想禁用训练,也可以启用我们的托管 robots.txt 功能。
需要特别记住的是,内容信号表达的是偏好,它们并不是用于防止抓取的技术性对抗措施。有些公司可能会直接忽略这些信号。如果您是一位网站发布者,希望控制他人对您内容的使用,我们建议您最好将内容信号与 WAF 规则和 Bot Management 功能结合使用。
尽管这些 Cloudflare 功能旨在提升易用性,我们更希望推动全球范围内的广泛采用。为此,我们将此政策通过 CC0 许可协议发布,允许任何人自由实施与使用。
我们的客户完全掌握主动权,可以自行决定允许哪些爬虫以及阻止哪些爬虫。有些人想为超级智能编写代码,有些人则希望拥有更多控制权:我们认为他们应该拥有决定权。
内容信号允许任何人表达他们在内容被访问后希望这些内容如何被使用。实现表达偏好的这一能力,早已是众望所归。
我们知道仍有更多工作要做。仅仅发出“道路规则”信号是不够的,只有当其他人认可这些规则时,它们才能真正发挥作用。正因如此,我们将继续与标准机构合作,开发和标准化能够满足客户需求并被更广泛的互联网社区接受的解决方案。
我们希望您能与我们携手同行:开放的互联网值得我们为之奋斗。