<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.4.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-illyes-aipref-cbcp-01" category="info" submissionType="independent" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.30.2 -->
  <front>
    <title abbrev="cbcp">Crawler best practices</title>
    <seriesInfo name="Internet-Draft" value="draft-illyes-aipref-cbcp-01"/>
    <author initials="G." surname="Illyes" fullname="Gary Illyes">
      <organization>Independent</organization>
      <address>
        <email>synack@garyillyes.com</email>
      </address>
    </author>
    <author initials="M." surname="Kuehlewind" fullname="Mirja Kühlewind">
      <organization>Ericsson</organization>
      <address>
        <email>mirja.kuehlewind@ericsson.com</email>
      </address>
    </author>
    <author initials="A." surname="Kohn" fullname="AJ Kohn">
      <organization>Blind Five Year Old</organization>
      <address>
        <email>aj@blindfiveyearold.com</email>
      </address>
    </author>
    <date year="2025" month="September" day="30"/>
    <keyword>next generation</keyword>
    <keyword>unicorn</keyword>
    <keyword>sparkling distributed ledger</keyword>
    <abstract>
      <?line 44?>

<t>This document describes best pratices for web crawlers.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/garyillyes/cbcp"/>.</t>
    </note>
  </front>
  <middle>
    <?line 49?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Automatic clients, such as crawlers and bots, are used to access web resources,
including indexing for search engines or, more recently, training data for new
artifical intelligence (AI) applications. As crawling activity increases,
automatic clients must behave appropriately and respect the constraints of the
resources they access. This includes clearly documenting how they can be
identified and how their behavior can be influenced. Therefore, crawler
operators are asked to follow the best practices for crawling outlined in this
document.</t>
      <t>To further assist website owners, it should also be considered to create a
central registry where website owners can look up well-behaved crawlers. Note
that while self-declared research crawlers, including privacy and malware
discovery crawlers, and contractual crawlers are welcome to adopt these practices,
due to the nature of their relationsh with sites, they may exempt themselves
from any of the Crawler Best Practices with a rationale.</t>
    </section>
    <section anchor="recommended-best-practices">
      <name>Recommended Best Practices</name>
      <t>The following best practices should be followed and are already applied by a
vast majority of large-scale crawlers on the Internet:</t>
      <ol spacing="normal" type="1"><li>
          <t>Crawlers must support and respect the Robots Exclusion Protocol.</t>
        </li>
        <li>
          <t>Crawlers must be easily identifiable through their user agent string.</t>
        </li>
        <li>
          <t>Crawlers must not interfere with the regular operation of a site.</t>
        </li>
        <li>
          <t>Crawlers must support caching directives.</t>
        </li>
        <li>
          <t>Crawlers must expose the  ranges they are crawling from in a standardized format.</t>
        </li>
        <li>
          <t>Crawlers must expose a page that explains how the crawling can be blocked, whether
the page is rendered, amd how the crawled data is used.</t>
        </li>
      </ol>
      <section anchor="crawlers-must-respect-the-robots-exclusion-protocol">
        <name>Crawlers must respect the Robots Exclusion Protocol</name>
        <t>All well behaved-crawlers must support the REP as defined in
<xref section="2.2.1" sectionFormat="of" target="REP"/> to allow site owners to opt out from crawling.</t>
        <t>Especially if the website chooses not to use a robots.txt file as defined
by the REP, crawlers further need to respect the <tt>X-robots-tag</tt> in the HTTP header.</t>
      </section>
      <section anchor="crawlers-must-be-easily-identifiable-through-their-user-agent-string">
        <name>Crawlers must be easily identifiable through their user agent string</name>
        <t>As outlined in <xref section="2.2.1" sectionFormat="of" target="REP"/> (Robots Exclusion Protocol; REP),
the HTTP request header 'User-Agent' should clearly identify the crawler,
usually by including a URL that hosts the crawler's descrtion. For example:</t>
        <t><tt>User-Agent: Mozilla/5.0 (compatible; ExampleBot/0.1; +https://www.example.com/bot.html)</tt>.</t>
        <t>This is already a widely accepted practice among crawler operators. To remain
compliant, crawler operators must include unique identifiers for their crawlers
in the case-insensitive User-Agent, such as
"contains 'googlebot' and 'https://url/...'". Additionally, the name should clearly
identify both the crawler owner and its purpose as much as reasonably possible.</t>
      </section>
      <section anchor="crawlers-must-not-interfere-with-the-normal-operation-of-a-site">
        <name>Crawlers must not interfere with the normal operation of a site</name>
        <t>Depending on a site's setup (computing resources and software efficiency) and its
size, crawling may slow down the site or even take it offline altogether. Crawler
operators must ensure that their crawlers are equped with back-out logic that
relies on at least the standard signals defined by <xref section="15.6" sectionFormat="of" target="HTTP-SEMANTICS"/>,
preferably also additional heuristics such as a change in the relative response time
of the server.</t>
        <t>errors occur, to prevent repeatedly crawling the same source. Using the same data,
crawlers should, on a best effort basis, crawl the site at times of the day when
the site is estimated to have fewer human visitors.</t>
        <t>Generally, crawlers should avoid sending multle requests to the same resources
at the same time and should limit the crawling speed to prevent server overload, if
possible, following the limits outlined in the REP protocol. Additionally, resources
should not be re-crawled too often. Ideally, crawlers should restrict the depth of
crawling and the number of requests per resource to prevent loops.</t>
        <t>Crawlers should not attempt to bypass authentication or other access restrictions,
such as when login is required, CAPTCHAs are in use, or content is behind a paywall,
unless explicitly agreed upon with the website owner.</t>
        <t>Crawlers should primarily access resources using HTTP GET requests, resorting to
other methods (e.g., POST, PUT) only if there is a prior agreement with the publisher
or if the publisher's content management system automatically makes those calls when
JavaScrt runs. Generally, the load caused by executing JavaScrt should be
carefully considered or even avoided whenever possible.</t>
      </section>
      <section anchor="crawlers-must-support-caching-directives">
        <name>Crawlers must support caching directives</name>
        <t><xref target="HTTP-CACHING"/> HTTP caching removes the need of repeated access from crawlers to
the same URL.</t>
      </section>
      <section anchor="crawlers-must-expose-the-ip-ranges-they-use-for-crawling">
        <name>Crawlers must expose the IP ranges they use for crawling</name>
        <t>To complement the REP, crawler operators should publish the IP ranges they have
allocated for crawling in <xref target="JAFAR"/> format, and keep this information reasonably
up-to-date, according to the specification.</t>
        <t>The object containing the IP addresses must be linked from the page describing the
crawler, and it must also be referenced in the page's metadata for machine
readability. For example:</t>
        <t><tt>
&amp;lt;link rel="help" href="https://example.com/crawlerips.json"&amp;gt;
</tt></t>
      </section>
      <section anchor="crawlers-must-explain-how-the-crawled-data-is-used-and-how-the-crawler-can-be-blocked">
        <name>Crawlers must explain how the crawled data is used and how the crawler can be blocked</name>
        <t>Crawlers must be easily identifiable through their <tt>user-agent</tt> string, and they
should explain how the data they collect will be used. In practice, this is usually
done via the documentation page linked in the crawler's user agent. Additionally,
the documentation page should include a contact address for the crawler owner.</t>
        <t>The webpage should also provide an example REP file to block the crawler and a method
for verifying REP files.</t>
        <t>If the crawler has exempted itself of these best practices, the documentation
page should describe the reason for that.</t>
      </section>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>TODO Security</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <reference anchor="JAFAR">
        <front>
          <title>A JSON-Based Format for Publishing IP Ranges of Automated HTTP Clients</title>
          <author fullname="Gary Illyes" initials="G." surname="Illyes">
            <organization>Independent</organization>
          </author>
          <date day="30" month="September" year="2025"/>
          <abstract>
            <t>   This document defines a standardized JSON format for automated HTTP
   client (e.g., web crawlers, AI bots) operators to disclose their IP
   address ranges publicly.  A consistent, machine-readable format for
   IP range publication simplifies the task of identifying and verifying
   legitimate automated traffic, thereby decreasing maintenance load on
   website operators while reducing the risk of inadvertently blocking
   beneficial clients.  This specification codifies and extends common
   existing practices to provide a simple yet extensible format that
   accommodates a variety of use cases.

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-illyes-aipref-jafar-00"/>
      </reference>
      <reference anchor="REP">
        <front>
          <title>Robots Exclusion Protocol</title>
          <author fullname="M. Koster" initials="M." surname="Koster"/>
          <author fullname="G. Illyes" initials="G." surname="Illyes"/>
          <author fullname="H. Zeller" initials="H." surname="Zeller"/>
          <author fullname="L. Sassman" initials="L." surname="Sassman"/>
          <date month="September" year="2022"/>
          <abstract>
            <t>This document specifies and extends the "Robots Exclusion Protocol" method originally defined by Martijn Koster in 1994 for service owners to control how content served by their services may be accessed, if at all, by automatic clients known as crawlers. Specifically, it adds definition language for the protocol, instructions for handling errors, and instructions for caching.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9309"/>
        <seriesInfo name="DOI" value="10.17487/RFC9309"/>
      </reference>
      <reference anchor="HTTP-SEMANTICS">
        <front>
          <title>HTTP Semantics</title>
          <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
          <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
          <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
          <date month="June" year="2022"/>
          <abstract>
            <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes.</t>
            <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
          </abstract>
        </front>
        <seriesInfo name="STD" value="97"/>
        <seriesInfo name="RFC" value="9110"/>
        <seriesInfo name="DOI" value="10.17487/RFC9110"/>
      </reference>
      <reference anchor="HTTP-CACHING">
        <front>
          <title>HTTP Caching</title>
          <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
          <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
          <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
          <date month="June" year="2022"/>
          <abstract>
            <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document defines HTTP caches and the associated header fields that control cache behavior or indicate cacheable response messages.</t>
            <t>This document obsoletes RFC 7234.</t>
          </abstract>
        </front>
        <seriesInfo name="STD" value="98"/>
        <seriesInfo name="RFC" value="9111"/>
        <seriesInfo name="DOI" value="10.17487/RFC9111"/>
      </reference>
      <reference anchor="RFC2119">
        <front>
          <title>Key words for use in RFCs to Indicate Requirement Levels</title>
          <author fullname="S. Bradner" initials="S." surname="Bradner"/>
          <date month="March" year="1997"/>
          <abstract>
            <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="2119"/>
        <seriesInfo name="DOI" value="10.17487/RFC2119"/>
      </reference>
      <reference anchor="RFC8174">
        <front>
          <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
          <author fullname="B. Leiba" initials="B." surname="Leiba"/>
          <date month="May" year="2017"/>
          <abstract>
            <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="8174"/>
        <seriesInfo name="DOI" value="10.17487/RFC8174"/>
      </reference>
    </references>
    <?line 208?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
sPrw706TW9Dzx8eUK5pTJjynXLWDyrgD903XQfYVZMXSXRu6FYVzbXiKTCOp
PKl6Mj5us4es4ElDFA5MbGVUktTehqW84gC3Ue8YdT91DAPVXscTnxDUKt8R
eZVyDsq2mdbx+F2q3KYpUH1bCGcUOu7KkKSqSw1uxDyFUuOiMOwI5EudFrkF
nQasAkmn3O02UkM8me/sWqrQ3lRpJr3azlseFPbvGsc3nSi21e4us1saSFXb
Wk1XGXyJdeQq6s7UR1nf58RM2bntLdY1wkx/ZAly9ObdxeVonH7Lt6f8+fz4
b+9Ozo+f0+eLV9PXr/sPol1x8er03evnw6dh59HpmzfHb5+nzXgqdx6J0Zvp
z6OUjaPTs8uT07fT16PuInW4saeeHl26ycV4ArrB8BxEZz0n07Ojs//86+Ax
cO5P5y+OHh0cfA2oS1++OvjrY3yhbpJO446avnIZqLqmv3LQpRDSPFe1iUiI
MTEOOBqTB3Ve+PPP/yDP/PNQfjPL64PH37UPyOCdh53Pdh6yz24+ubE5OfGW
R7cc03tz5/mep3f1nf68873z+9bDb77nYWpy8NX336UcwgDT8NXkUdurVZc/
p89P+7e89GT6dnpz2U48Kf8rl1aqxPC6P7bQyMVipvl15QgkF7QliN8OExHV
xbejOWKjRx/b01W/EhH6H1n/2yPyHAAA

-->

</rfc>
