Internet-Draft cbcp October 2026
Illyes, et al. Expires 25 April 2027 [Page]
Workgroup:
Network Working Group
Internet-Draft:
draft-illyes-webbotauth-cbcp-01
Published:
Intended Status:
Informational
Expires:
Authors:
G. Illyes
Google LLC
M. Kuehlewind
Ericsson
A. Kohn
Blind Five Year Old

Crawler best practices

Abstract

This document describes best practices for web crawlers.

Discussion Venues

This note is to be removed before publishing as an RFC.

Source for this draft and an issue tracker can be found at https://github.com/garyillyes/cbcp.

Status of This Memo

This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.

Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.

Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."

This Internet-Draft will expire on 25 April 2027.

▲

Table of Contents

1. Introduction

Automatic clients, colloquially referred to as crawlers and bots, are used to access web resources, including indexing for search engines or, more recently, training data for new artificial 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.

For the purposes of this document, a crawler is an automated HTTP [HTTP-SEMANTICS] client that retrieves resources across one or more web sites without direct human initiation of individual requests. A crawler discovers URIs during retrieval and schedules them for later processing. It relies on algorithmic prioritization and protocol-level instructions such as the Robots Exclusion Protocol [REP] to govern its behavior.

Note that these best practices are intended for crawlers, and are not necessarily appropriate for all automated clients (all "bots"), particularly user-directed AI agents, but other (non-crawler) bots may choose to adopt similar practices. Furthermore, there are valid reasons why some legitimate crawlers cannot or should not be expected to adopt these practices. For example, 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 relationship with sites, they may choose not to follow all of these practices.

Crawler operators that adopt these voluntary practices are encouraged to engage with efforts to develop new standards and practices for bots, and to revisit the recommended best practices as the state of the art evolves.

3. Conventions and Definitions

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.

4. Security Considerations

The best practices described in this document, as well as opt-out mechanisms such as [REP] and X-robots-tag, are voluntary and do not constitute access control or content security measures. Malicious or non-conformant clients can ignore these practices. To restrict access to sensitive resources, website owners SHOULD employ appropriate security mechanisms at the application or transport layer, such as HTTP Authentication [HTTP-SEMANTICS].

The User-Agent header field is unauthenticated and trivially spoofed. Website operators MUST NOT rely solely on the User-Agent string to grant privileged access or bypass security controls. When verifying a crawler's identity, website operators SHOULD corroborate the request's source IP address against the crawler operator's published IP ranges [JAFAR] or use cryptographic authentication mechanisms where available.

Endpoints hosting crawler documentation, client-ranges link relations [HTTP-LINK], and IP range files [JAFAR] SHOULD be served over HTTPS using Transport Layer Security (TLS) so that consumers can verify the authenticity and integrity of the published IP ranges before using them in access control or rate-limiting decisions.

Even legitimate crawlers can inadvertently degrade website availability or cause a denial of service if they crawl too aggressively, become trapped in infinite URI spaces, or trigger expensive server-side or client-side processing. Implementing the back-out, rate-limiting, and caching practices in this document mitigates, but does not eliminate, this risk.

The security considerations of [HTTP-SEMANTICS], [HTTP-CACHING], [HTTP-LINK], [REP], and [JAFAR] also apply.

5. IANA Considerations

This document has no IANA actions.

6. References

6.1. Normative References

[HTTP-CACHING]
Fielding, R., Ed., Nottingham, M., Ed., and J. Reschke, Ed., "HTTP Caching", STD 98, RFC 9111, DOI 10.17487/RFC9111, , <https://www.rfc-editor.org/rfc/rfc9111>.
Nottingham, M., "Web Linking", RFC 8288, DOI 10.17487/RFC8288, , <https://www.rfc-editor.org/rfc/rfc8288>.
[HTTP-SEMANTICS]
Fielding, R., Ed., Nottingham, M., Ed., and J. Reschke, Ed., "HTTP Semantics", STD 97, RFC 9110, DOI 10.17487/RFC9110, , <https://www.rfc-editor.org/rfc/rfc9110>.
[HTTPSIG-PROTOCOL]
Meunier, T. and S. Major, "HTTP Message Signatures for automated traffic", Work in Progress, Internet-Draft, draft-ietf-webbotauth-httpsig-protocol-00, , <https://datatracker.ietf.org/doc/html/draft-ietf-webbotauth-httpsig-protocol-00>.
[JAFAR]
Illyes, G., "A JSON-Based Format for Publishing IP Ranges of Automated HTTP Clients", Work in Progress, Internet-Draft, draft-illyes-webbotauth-jafar-01, , <https://datatracker.ietf.org/doc/html/draft-illyes-webbotauth-jafar-01>.
[REP]
Koster, M., Illyes, G., Zeller, H., and L. Sassman, "Robots Exclusion Protocol", RFC 9309, DOI 10.17487/RFC9309, , <https://www.rfc-editor.org/rfc/rfc9309>.
[RFC2119]
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, , <https://www.rfc-editor.org/rfc/rfc2119>.
[RFC8174]
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, , <https://www.rfc-editor.org/rfc/rfc8174>.
[ROBOTS-TAG]
Illyes, G., "Robots Exclusion Protocol Extension for URL Level Control", Work in Progress, Internet-Draft, draft-illyes-repext-04, , <https://datatracker.ietf.org/doc/html/draft-illyes-repext-04>.

Acknowledgments

TODO acknowledge.

Authors' Addresses

Gary Illyes
Google LLC
Mirja Kühlewind
Ericsson
AJ Kohn
Blind Five Year Old