AIPREF Content-Usage Attachment
Overview
The AIPREF attachment draft is the IETF working-group document that tells a publisher where to put an AI usage preference so that crawlers find it while fetching content: "Methods are defined for associating usage preferences with content that is obtained using the HTTP protocol. This document defines attachment methods using the Robots Exclusion Protocol and HTTP header fields." [1]. It adds a Content-Usage header to HTTP responses and a Content-Usage rule to robots.txt, and it would formally update the Robots Exclusion Protocol to allow that rule [1]. The meaning of the preference, such as whether AI training or search is allowed, comes from the separate vocabulary draft; this draft only carries the string [1][18]. Like the vocabulary, it states a preference rather than enforcing one, and the working group has not yet sent it to the IESG [18][2].
How it works
- HTTP header. "The Content-Usage field is a structured field dictionary, as defined in Section 3.2 of [FIELDS]. This field follows the vocabulary and processing rules in [VOCAB]." "Informally, usage preferences apply to the content of a message, not the resource." "The Content-Usage field does not have any special effect on caching." The draft's example response carries
Content-Usage: train-ai=n[1]. - robots.txt rule. "This creates a two-stage arrangement that distinguishes acquisition and usage. Acquisition relies on Allow/Disallow rules; usage preference relies on Content-Usage rules." "Usage preferences apply only to those resources that can be crawled according to Allow/Disallow rules; no preferences are implied for resources that are disallowed." "The ordering of rules in a group carries no semantics." A rule may start with a path, matched by the same longest-prefix rule as Allow and Disallow [1].
- Example. The draft's robots.txt example,
User-Agent: * Allow: / Disallow: /never/ Content-Usage: train-ai=n Content-Usage: /ai-ok/ train-ai=y, givestrain-ai=yunder /ai-ok/, no preference under /never/ andtrain-ai=nelsewhere for all crawlers other than ExampleBot. The text for ExampleBot still says "That crawler would be able to obtain all content and apply usage preferences of "ai=y" as defined in [VOCAB]." although its line readsContent-Usage: train-ai=y[1]. - Conflicts. For conflicting rules with the same path: "Note that this differs from the Allow/Disallow rules, where a conflict leads to the more permissive option, allowing crawling." [1] The vocabulary's combination rule is "If any statement of preference indicates that the usage is disallowed, the result is that the usage is disallowed." [18]. The draft sets no order between the header and robots.txt; on the list, Tyler Martin proposed "Precedence should follow signaling specificity, not attachment mechanism." (2026-03-02) [19].
- Timing. "This means that updates to "robots.txt" do not retroactively apply to resources." Crawlers may cache robots.txt for up to a day [1].
- Open questions. GitHub issue #103 (open) asks whether the robots.txt path should move into the structured value: "I would suggest that the entire value of
Content-Usagebe a proper structured field value enabling a single parser." [20]. At IETF 125, Mark Nottingham said: "What we're running up against is because we're chartered in a way where the vocabulary is separate from the attachment mechanism." [21]. The April 2026 interim planned "June 2026: Virtual interim meeting focusing on "use" category proposals and restarting discussions on the attachment specification." [22]. Martin Thomson wrote of -05: "There are more changes to the attachment this time, which are mostly to address drift in the vocabulary document." [17].
Who uses it
- SpinXO (www.spinxo.com) —
https://www.spinxo.com/robots.txt· Checked 2026-10-29 · robots.txt carries "AI usage preference (draft-ietf-aipref-attach)." followed byContent-Usage: train-ai=y, search=y[25], and the home page sends the headercontent-usage: train-ai=y, search=y[26] - Launchpad (launchpad.net, with bugs., code. and answers.launchpad.net) —
https://launchpad.net/robots.txt· Checked 2026-10-29 ·Content-Usage: ai=nin the robots.txt group for all user agents, next to a Content-Signal line [27][28][29][30] - Ubuntu Changelogs (changelogs.ubuntu.com) —
https://changelogs.ubuntu.com/robots.txt· Checked 2026-10-29 ·Content-Usage: ai=n[31] - They Said So (theysaidso.com) —
https://theysaidso.com/robots.txt· Checked 2026-10-29 ·Content-Usage: ai=n, next to a Content-Signal line [32] - follow.it —
https://follow.it/robots.txt· Checked 2026-10-29 ·Content-Usage: bots=y, train-ai=nin a block headed# START nuxt-robots (indexable); "bots" is not a label in the current vocabulary [33][18]
Who reads it
- Google for Developers, robots.txt documentation (How Google Interprets the robots.txt Specification, last updated 2026-10-23) · vendor docs say:
“Google supports the following fields (other fields such as crawl-delay aren't supported):” [37] followed by user-agent, allow, disallow and sitemap only.
- Cloudflare (Michael Tremante, ai-control list) ([ai-control] Cloudflare's Content Signal Policy, 2025-09-24) · vendor says:
“We see this as an interim measure to address immediate needs, while work is done towards standardization.” [39]
- Cloudflare Blog (Have it both ways: stay discoverable in search while disallowing AI training, 2026-09-15) · vendor says:
“As standards such as ai-prefs mature, we will revisit this approach.” [40]
- Cloudflare press release (Cloudflare Helps End the Search-or-AI-Training Tradeoff, 2026-09-15) · vendor says:
“Today's controls are designed to work alongside these emerging standards.” [41]
Recent coverage
- LLM4Agents (2026-08-29) — https://llm4agents.com/blog/aipref-vocabulary-agent-access-audit:
“The three Content-Usage deployments are worth naming, because there are only three. launchpad.net and semafor.com both emit Content-Usage: ai=n.” On 2026-10-29 the robots.txt of www.semafor.com had no Content-Usage line (see Who uses it). [44]
- Media Morpheus Research (2026-09-26) — https://mediamorpheuspress.com/blog/can-you-tell-an-ai-not-to-train-on-your-site:
“Neither has been submitted to the IESG.” [45]
- AI Crawler Check (2026-10-18) — https://aicrawlercheck.com/blog/ietf-aipref-content-usage-robots-txt:
“No major AI company has said publicly that its crawler reads Content-Usage yet, while every major one documents its tokens.” [46]
See also
References
- G. Illyes (Google) and M. Thomson (Mozilla), Associating AI Usage Preferences with Content in HTTP, draft-ietf-aipref-attach-05, Internet-Draft, 19 August 2026, checked 2026-10-29: "Methods are defined for associating usage preferences with content that is obtained using the HTTP protocol. This document defines attachment methods using the Robots Exclusion Protocol and HTTP header fields." "This document updates RFC 9309 to allow for the inclusion of usage preferences." "Updates: 9309 (if approved)" "This Internet-Draft will expire on 20 February 2027." "This document only defines how the strings or byte sequences are conveyed so that statements of preference can be associated with content." "Content-Usage: train-ai=n This is some content." "The Content-Usage field is a structured field dictionary, as defined in Section 3.2 of [FIELDS]. This field follows the vocabulary and processing rules in [VOCAB]." "Informally, usage preferences apply to the content of a message, not the resource." "The Content-Usage field does not have any special effect on caching." "This creates a two-stage arrangement that distinguishes acquisition and usage. Acquisition relies on Allow/Disallow rules; usage preference relies on Content-Usage rules." "Usage preferences apply only to those resources that can be crawled according to Allow/Disallow rules; no preferences are implied for resources that are disallowed." "The ordering of rules in a group carries no semantics." "Note that this differs from the Allow/Disallow rules, where a conflict leads to the more permissive option, allowing crawling." "This means that updates to "robots.txt" do not retroactively apply to resources." "User-Agent: * Allow: / Disallow: /never/ Content-Usage: train-ai=n Content-Usage: /ai-ok/ train-ai=y" "That crawler would be able to obtain all content and apply usage preferences of "ai=y" as defined in [VOCAB]." "Field Name: Content-Usage Status: permanent Structured Type: Dictionary" "draft-ietf-aipref-vocab-07, 19 August 2026" — https://www.ietf.org/archive/id/draft-ietf-aipref-attach-05.txt
- IETF Datatracker, draft-ietf-aipref-attach document page, checked 2026-10-29: "Document Type Active Internet-Draft (aipref WG) Authors Gary Illyes, Martin Thomson Last updated 2026-08-18 Replaces draft-it-aipref-attachment" "Intended RFC status Proposed Standard" "WG state WG Document Associated WG milestone Aug 2026 Standard track protocol specification(s) to associate the AI-related preferences to the IESG for publication" "IESG state I-D Exists" — https://datatracker.ietf.org/doc/draft-ietf-aipref-attach/
- IETF Datatracker, draft-ietf-aipref-attach history (dates as shown by the Datatracker), checked 2026-10-29: "2025-06-15 00 Mark Nottingham WG -00 approved" "2025-09-04 03 Mark Nottingham IETF WG state changed to In WG Last Call from WG Document" "2025-11-03 04 Mark Nottingham IETF WG state changed to WG Document from In WG Last Call" "2026-05-01 04 (System) Document has expired" "2026-08-18 05 Martin Thomson New version available: draft-ietf-aipref-attach-05.txt" — https://datatracker.ietf.org/doc/draft-ietf-aipref-attach/history/
- IETF Datatracker API, draft-ietf-aipref-attach document record, checked 2026-10-29: ""rev": "05"" ""time": "2026-08-19T04:25:16Z"" ""expires": "2027-02-20T04:25:16Z"" — https://datatracker.ietf.org/api/v1/doc/document/draft-ietf-aipref-attach/?format=json
- IETF Datatracker API, new-revision events for draft-ietf-aipref-attach (posting times in UTC), checked 2026-10-29: ""total_count": 6" — https://datatracker.ietf.org/api/v1/doc/newrevisiondocevent/?doc__name=draft-ietf-aipref-attach&format=json&limit=50
- IETF Datatracker API, documents of type RFC in group aipref, checked 2026-10-29: ""total_count": 0" — https://datatracker.ietf.org/api/v1/doc/document/?group__acronym=aipref&type=rfc&format=json
- IETF Datatracker, AI Preferences (aipref) working group, About page with charter and milestones, checked 2026-10-29: "Chairs Mark Nottingham, Suresh Krishnan Area Director Mike Bishop" "Standard track document(s) describing means of attaching or associating those preferences with content in IETF-defined protocols and formats, including but not limited to using Well-Known URIs (RFC 8615) such as the Robots Exclusion Protocol (RFC 9309), and HTTP response header fields" "2026-08-31 Aug 2026 Standard track protocol specification(s) to associate the AI-related preferences to the IESG for publication draft-ietf-aipref-attach" — https://datatracker.ietf.org/wg/aipref/about/
- IETF Datatracker, aipref working group history, checked 2026-10-29: "2025-09-23 Mike Bishop Changed milestone "Standard track protocol specification(s) to associate the AI-related preferences to the IESG for publication", set due date to August 2026 from August 2025" — https://datatracker.ietf.org/wg/aipref/history/
- IETF Datatracker, draft-it-aipref-attachment, checked 2026-10-29: "Replaced Internet-Draft (candidate for aipref WG) Expired & archived Authors Gary Illyes, Martin Thomson Last updated 2025-05-27 Replaced by draft-ietf-aipref-attach" — https://datatracker.ietf.org/doc/draft-it-aipref-attachment/
- G. Illyes and M. Thomson, draft-it-aipref-attachment-00, individual Internet-Draft, 28 May 2025, checked 2026-10-29: "Indicating Preferences Regarding Content Usage" "Content-Usage: ai=n" — https://www.ietf.org/archive/id/draft-it-aipref-attachment-00.txt
- Mark Nottingham, [ai-control] Call for Adoption: draft-it-aipref-attachment-00, ai-control mailing list, 2025-05-28 (+1000), checked 2026-10-29: "As you might recall, in Brussels we asked for Martin and Gary to draft a proposed document for adoption as our attachment work item." "As before, adopting a document does not imply consensus on its contents; issues can and will be raised to change it." — https://mailarchive.ietf.org/arch/msg/ai-control/MTCUmLJTNzLmLboXuJ1i2uSZ-XI/
- G. Illyes and M. Thomson, draft-ietf-aipref-attach-02, 21 July 2025, checked 2026-10-29: "Associating AI Usage Preferences With Content" "Content-Usage: train-ai=n" — https://www.ietf.org/archive/id/draft-ietf-aipref-attach-02.txt
- G. Illyes and M. Thomson, draft-ietf-aipref-attach-03, 5 September 2025, checked 2026-10-29: "Associating AI Usage Preferences with Content in HTTP draft-ietf-aipref-attach-03" — https://www.ietf.org/archive/id/draft-ietf-aipref-attach-03.txt
- IETF Datatracker for the aipref chairs, [ai-control] WG Last Call: draft-ietf-aipref-attach-03 (Ends 2025-09-18), ai-control mailing list, 2025-09-04 (-0700), checked 2026-10-29: "This message starts a 2-week WG Last Call for this document." — https://mailarchive.ietf.org/arch/msg/ai-control/LF4qTxITge4ID8QPsjOcNUUrDO4/
- Mark Nottingham and Suresh Krishnan, IETF Blog, Enabling Publishers to Express Preferences for AI Crawlers: An Update on the AIPREF Working Group, 2025-10-30, checked 2026-10-29: "The response was not one we anticipated: several participants raised fundamental issues about the nature of the Internet-Drafts (I-Ds), forcing the group to reconsider its approach." — https://www.ietf.org/blog/ai-pref-update/
- G. Illyes and M. Thomson, draft-ietf-aipref-attach-04, 28 October 2025, checked 2026-10-29: "Expires: 1 May 2026" — https://www.ietf.org/archive/id/draft-ietf-aipref-attach-04.txt
- Martin Thomson, [ai-control] New drafts for the 2026-08 meeting, ai-control mailing list, 2026-08-19, checked 2026-10-29: "There are more changes to the attachment this time, which are mostly to address drift in the vocabulary document." — https://mailarchive.ietf.org/arch/msg/ai-control/NfkU6egM1OEU1HNyKf809D5xDxU/
- P. Keller (Open Future) and M. Thomson (Mozilla, editor), A Vocabulary For Expressing AI Usage Preferences, draft-ietf-aipref-vocab-08, 14 September 2026, checked 2026-10-29: "when processing a parsed Dictionary to obtain preferences, any unknown labels MUST be ignored." "If any statement of preference indicates that the usage is disallowed, the result is that the usage is disallowed." "An entity that receives usage preferences has a choice whether to follow those preferences." "Preferences are not a security mechanism." — https://www.ietf.org/archive/id/draft-ietf-aipref-vocab-08.txt
- Tyler Martin, [ai-control] Re: [Question] Priority conflict between HTTP Header and Robots.txt in draft-ietf-aipref-attach, ai-control mailing list, 2026-03-02, checked 2026-10-29: "Precedence should follow signaling specificity, not attachment mechanism." — https://mailarchive.ietf.org/arch/msg/ai-control/f4m54TzYVGLah-_cGmfe1n6tUS0/
- GitHub API, ietf-wg-aipref/drafts issue #103, "Should the path in Content-Usage of Robots.txt be part of a structured field?" (opened by lrosenthol, 2025-07-21 UTC, still open), checked 2026-10-29: "I would suggest that the entire value of `Content-Usage` be a proper structured field value enabling a single parser." — https://api.github.com/repos/ietf-wg-aipref/drafts/issues/103
- IETF Datatracker, AI Preferences minutes, IETF 125 (2026-03-16), checked 2026-10-29: "What we're running up against is because we're chartered in a way where the vocabulary is separate from the attachment mechanism." — https://datatracker.ietf.org/doc/minutes-125-aipref/
- IETF Datatracker, AI Preferences interim meeting minutes, 14–16 April 2026, checked 2026-10-29: "June 2026: Virtual interim meeting focusing on "use" category proposals and restarting discussions on the attachment specification." — https://datatracker.ietf.org/doc/minutes-interim-2026-aipref-01-202604141315/
- IANA, Hypertext Transfer Protocol (HTTP) Field Name Registry (text), checked 2026-10-29; no Content-Usage entry: "Hypertext Transfer Protocol (HTTP) Field Name Registry" — https://www.iana.org/assignments/http-fields/http-fields.txt
- Editor's copy of the attachment draft on GitHub Pages, checked 2026-10-29: "Associating AI Usage Preferences with Content in HTTP" — https://ietf-wg-aipref.github.io/drafts/draft-ietf-aipref-attach.html
- SpinXO, robots.txt, checked 2026-10-29: "AI usage preference (draft-ietf-aipref-attach)." "Content-Usage: train-ai=y, search=y" — https://www.spinxo.com/robots.txt
- SpinXO, home page HTTP response header, checked 2026-10-29: "content-usage: train-ai=y, search=y" — https://www.spinxo.com/
- Launchpad, robots.txt, checked 2026-10-29: "Content-Usage: ai=n" — https://launchpad.net/robots.txt
- Launchpad Bugs, robots.txt, checked 2026-10-29: "Content-Usage: ai=n" — https://bugs.launchpad.net/robots.txt
- Launchpad Code, robots.txt, checked 2026-10-29: "Content-Usage: ai=n" — https://code.launchpad.net/robots.txt
- Launchpad Answers, robots.txt, checked 2026-10-29: "Content-Usage: ai=n" — https://answers.launchpad.net/robots.txt
- Ubuntu Changelogs, robots.txt, checked 2026-10-29: "Content-Usage: ai=n" — https://changelogs.ubuntu.com/robots.txt
- They Said So, robots.txt, checked 2026-10-29: "Content-Usage: ai=n" — https://theysaidso.com/robots.txt
- follow.it, robots.txt, checked 2026-10-29: "# START nuxt-robots (indexable)" "Content-Usage: bots=y, train-ai=n" — https://follow.it/robots.txt
- Dries Buytaert, dri.es home page HTTP response headers, checked 2026-10-29: "content-usage: ai=y" "content-signal: ai-train=yes, search=yes, ai-input=yes" — https://dri.es/
- Gazzetta del Sud, robots.txt, checked 2026-10-29: "Content-Usage: ai=n" — https://gazzettadelsud.it/robots.txt
- robotstxt.com, AI robots.txt template page, checked 2026-10-29: "Content-Usage: train-ai=n" — https://robotstxt.com/ai
- Google for Developers, How Google Interprets the robots.txt Specification, last updated 2026-10-23, checked 2026-10-29: "Google supports the following fields (other fields such as crawl-delay aren't supported):" — https://developers.google.com/crawling/docs/robots-txt/robots-txt-spec
- IMozz, ai SiteReady, Content-Usage (aipref): robots.txt and HTTP header snippets, 2026-10-11, checked 2026-10-29: "I could not find a primary source from a major crawler operator saying it reads Content-Usage, so treat support as unknown and uneven." — https://www.ai-siteready.com/blog/content-usage-aipref-robots-txt-http
- Michael Tremante, [ai-control] Cloudflare's Content Signal Policy, ai-control mailing list, 2025-09-24, checked 2026-10-29: "We see this as an interim measure to address immediate needs, while work is done towards standardization." — https://mailarchive.ietf.org/arch/msg/ai-control/EANb9b9bljOanLBFm5FRerYlxyI/
- Bryan Becker, Cloudflare Blog, Have it both ways: stay discoverable in search while disallowing AI training, 2026-09-15, checked 2026-10-29: "As standards such as ai-prefs mature, we will revisit this approach." — https://blog.cloudflare.com/accountable-mixed-use-ai-crawlers/
- Cloudflare press release, Cloudflare Helps End the Search-or-AI-Training Tradeoff, 2026-09-15, checked 2026-10-29: "Today's controls are designed to work alongside these emerging standards." — https://www.cloudflare.com/press/press-releases/2026/cloudflare-helps-end-the-search-or-ai-training-tradeoff/
- Nuxt SEO, AI Directives · Nuxt Robots, last updated 2026-07-16, checked 2026-10-29: "The Content-Usage directive follows the IETF AI Preferences specification, providing a standardized way to express automation preferences." — https://nuxtseo.com/docs/robots/guides/ai-directives
- PEAC Protocol, Content Signals integration page (undated), checked 2026-10-29: "PEAC records these signals as evidence but does not enforce them." — https://www.peacprotocol.org/integrations/content-signals
- LLM4Agents, AIPREF at the deadline: auditing the vocabulary agents are supposed to read, 2026-08-29, checked 2026-10-29: "The three Content-Usage deployments are worth naming, because there are only three. launchpad.net and semafor.com both emit Content-Usage: ai=n." — https://llm4agents.com/blog/aipref-vocabulary-agent-access-audit
- Media Morpheus Research, Can You Tell an AI Not to Train on Your Site? The IETF Is Standardising How to Ask., 2026-09-26, checked 2026-10-29: "Neither has been submitted to the IESG." — https://mediamorpheuspress.com/blog/can-you-tell-an-ai-not-to-train-on-your-site
- AI Crawler Check, Content-Usage in robots.txt: The IETF AIPREF Standard Explained, 2026-10-18, checked 2026-10-29: "No major AI company has said publicly that its crawler reads Content-Usage yet, while every major one documents its tokens." — https://aicrawlercheck.com/blog/ietf-aipref-content-usage-robots-txt
- Will Allen, Cloudflare Blog, Giving users choice with Cloudflare's new Content Signals Policy, 2025-09-24, checked 2026-10-29: "This policy defines three content signals - search, ai-input, and ai-train - and their relevance to crawlers." — https://blog.cloudflare.com/content-signals-policy/