Blog / Three crawler documentation pages name robots.txt, and none names TDMRep

Three crawler documentation pages name robots.txt, and none names TDMRep

The W3C TDM Reservation Protocol defines four places a site can record that AI mining rights are reserved. Read on 4 August 2026, the crawler documentation published by OpenAI, Anthropic and Google names robots.txt in every case and mentions none of the four.

In short

  • The TDM Reservation Protocol, published as a Final Community Group Report by its W3C Community Group on 10 May 2024, defines four places a site records whether text and data mining rights are reserved: a file at /.well-known/tdmrep.json, a tdm-reservation HTTP response header, a tdm-reservation HTML meta tag, and metadata embedded in EPUB and PDF files.
  • robots.txt is not one of those four channels, and a TDM reservation is not an access control: the value 1 declares that mining rights are reserved, and nothing in the protocol asks a crawler to skip the page or stops it fetching one.
  • OpenAI's crawler documentation, Anthropic's crawler support article and Google's crawler overview, all read on 4 August 2026, each name robots.txt as the mechanism a site owner uses, and none of the three mentions TDM, tdm-reservation or TDMRep anywhere.
  • IANA lists tdmrep.json in its Well-Known URIs registry with status provisional, registered on 15 February 2024 with W3C as change controller, while robots.txt does not appear in that registry at all because RFC 9309 defines it separately.
  • Lantad measured none of this. Its scanner reads robots.txt and the rendered page, does not request /.well-known/tdmrep.json, and publishes no figure for how many sites carry a TDM reservation.

There are now two different questions a site owner can ask about an AI crawler, and the web has answered them with two different files. The first question is whether a crawler is permitted to fetch a page at all, which robots.txt has answered since 1994. The second is whether the content it fetches may lawfully be mined to train or ground a model, which is a rights question rather than an access question, and robots.txt was never designed to carry it. The TDM Reservation Protocol, usually shortened to TDMRep, is the W3C community's answer to the second question, and it is the specific mechanism a European rightsholder is most often pointed at.

This post reports what that specification says and what three crawler vendors' own documentation says, both read directly on 4 August 2026. Lantad ran no crawl for it, holds no measurement of TDMRep deployment, and the numbers below are counts of things written in published documents rather than observations of any website's behaviour. The reason it belongs on this blog is narrower and worth stating up front: TDMRep decides where a reservation is written, and where a signal is written decides whether any external scan can see it. That is the same problem this site hit when it found that the EU AI Act never writes robots.txt, approached from the opposite end.

TechniqueWhere it is writtenVisible to an external page scan
Well-known file/.well-known/tdmrep.jsonYes, one extra GET
HTTP headertdm-reservation response headerYes, already in the response
HTML metadatameta name tdm-reservation in headYes, already in the DOM
EPUB and PDF metadataInside the document fileOnly if the file is fetched
The four techniques defined by the TDM Reservation Protocol, W3C Community Group Final Report of 10 May 2024. The right-hand column is an observation about where each channel lives, not a measurement of any site.

What the TDM Reservation Protocol actually specifies

TDMRep is a Final Community Group Report published on 10 May 2024, edited by Laurent Le Meur of EDRLab for the Text and Data Mining Reservation Protocol Community Group. Its status section is unambiguous about what that means, and the sentence is worth reading before treating the document as a standard: it states that the specification is not a W3C Standard nor is it on the W3C Standards Track. That is not a criticism of the work, it is a description of its authority. A Community Group Report carries no W3C endorsement, and any weight it has comes from adoption and from the legal instrument it was written to serve rather than from the consensus process that produces a Recommendation.

The data model is deliberately small. A reservation has one mandatory property, tdm-reservation, whose value is 0 or 1. The value 1 means, in the specification's words, that TDM rights are reserved, and that if a TDM policy is set an agent may use it to find out how to acquire authorisation to mine the content. The value 0 means rights are not reserved and an agent can mine the content without contacting the rightsholder. A second optional property, tdm-policy, holds a URL pointing at the terms. Two fields and a link is the whole vocabulary, which is a reasonable design for something that has to be readable by a machine that will never negotiate.

Four techniques carry those fields, and the specification defines all four rather than picking one. A JSON file at /.well-known/tdmrep.json holds an array of rules, each with a mandatory location pattern, a mandatory tdm-reservation value and an optional tdm-policy URL, so a site can reserve rights over one directory and leave another open. A tdm-reservation HTTP response header carries the same value on a per-response basis. An HTML meta tag with the name tdm-reservation carries it per document, alongside an optional tdm-policy meta. EPUB and PDF files carry it in their own embedded metadata, which is the channel that explains the protocol's centre of gravity among book and journal publishers.

The location patterns in the well-known file are not a new matching language. The specification re-uses the robots.txt wording and tells agents that, for interoperability, they should follow the rules Google documents in How Google interprets the robots.txt specification under URL matching based on path values. That is a sensible reuse and it produces a small trap for anyone reading quickly: the file borrows robots.txt path semantics while being a completely separate file with a completely different meaning, in much the way that a page can carry rich structured data and still be unreadable to the crawler that never fetched it. Same syntax, different question.

Sample Illustrative, not a measurement of any real site.

GET /.well-known/tdmrep.json

  • Request the well-known file before scraping 200 application/json
  • location (mandatory), a robots.txt style path pattern /directory-a/
  • tdm-reservation (mandatory), 0 or 1 1 = rights reserved
  • tdm-policy (optional), URL of the terms absent in the minimal form
  • What the file asks the agent not to do mine the content
  • What the file asks the agent not to fetch nothing
The shape of a well-known TDMRep file as the specification defines it, W3C Community Group Final Report of 10 May 2024. Constructed from the specification's field definitions, not captured from any real site.

robots.txt is not one of the four channels, and it answers a different question

The most common misreading of this area is that TDMRep and robots.txt are competing ways to say the same thing, so a site that has written one has covered the other. They are not, and the difference is structural rather than a matter of emphasis. RFC 9309 standardises robots.txt as a protocol for telling an automated client which URLs on a host it may request. Every rule in it is about access. A Disallow line is a request not to fetch, and the whole file is evaluated by selecting a group whose product token matches the client's name, which is why a robots.txt tester has to be told which crawler it is testing as.

TDMRep never touches access. Its fields describe what may be done with content the agent has lawfully obtained. A site can serve a tdm-reservation of 1 on a page that robots.txt allows every crawler to fetch, and there is no contradiction in that: fetch it, index it, do not mine it. It can equally disallow GPTBot in robots.txt and carry no TDM reservation anywhere, in which case it has restricted access without making any rights statement at all. Treating either file as a substitute for the other produces a confident wrong answer in both directions, and it is the sort of wrong answer that only shows up in a dispute.

The legal framing is what makes the distinction matter rather than being a taxonomy exercise. The specification describes itself as a technical answer to the constraints set by Article 4 of the European copyright directive, and summarises that exception as applying on condition that the use of content for TDM has not been expressly reserved by rightsholders in an appropriate manner, such as machine-readable means. The directive it refers to is Directive (EU) 2019/790, and the phrase carrying the weight is machine-readable means. TDMRep exists because that phrase names a requirement without naming a format, and somebody had to propose one.

Whether a Disallow line also satisfies that phrase is a legal question this post is not qualified to settle, and it is genuinely contested rather than merely unsettled in the abstract. What can be said precisely is the engineering half. robots.txt encodes an access decision keyed to a crawler name; TDMRep encodes a rights declaration keyed to a path, with no crawler name anywhere in the model. A system reading only one of them cannot reconstruct the other, and the failure is silent, in the same family as the finding that a 404 and a 503 on robots.txt mean opposite things while looking equally like an error to anyone not reading the specification.

robots.txt, RFC 9309

  • Question: may this client fetch this URL
  • Keyed to: a crawler product token
  • Effect of a rule: a request not to fetch
  • Location: one file at the host root
  • Silent on: what may be done with the content

TDMRep, W3C Community Group

  • Question: are mining rights reserved
  • Keyed to: a path pattern, no crawler name
  • Effect of a rule: a declaration, not a block
  • Location: four channels, one of them a file
  • Silent on: whether the fetch is allowed
What each file answers, from RFC 9309 and the TDMRep Community Group Report. A comparison of two specifications, not a measurement of how any site uses them.

What OpenAI, Anthropic and Google tell site owners to use

A protocol is only worth deploying if the agents it addresses read it, so the question that decides whether TDMRep is operationally real is what the crawler operators document. Three pages were read directly on 4 August 2026, one from each of the three vendors whose crawlers appear most often in the logs of the sites this scanner is pointed at. The result is uniform, and uniform in a way that is easy to state and easy for a reader to check in about two minutes.

OpenAI's crawler documentation documents four user agent tokens, GPTBot, OAI-SearchBot, OAI-AdsBot and ChatGPT-User, and states that OpenAI uses OAI-SearchBot and GPTBot robots.txt tags to enable webmasters to manage how their sites and content work with AI. It gives the split most site owners actually want, allowing OAI-SearchBot to appear in search results while disallowing GPTBot to keep content out of training, and it points at published IP ranges as a supporting measure. It does not mention TDM, tdm-reservation or TDMRep.

Anthropic's crawler article names ClaudeBot, Claude-User and Claude-SearchBot, says the bots respect do not crawl signals by honouring industry standard directives in robots.txt, and gives worked examples of a Crawl-delay and a Disallow for ClaudeBot. It warns that alternate methods such as blocking IP addresses may not work correctly or guarantee an opt-out. It does not mention TDM, tdm-reservation or TDMRep either.

Google's crawler overview, carrying Last updated 2026-06-12 UTC, identifies robots.txt as the mechanism and states that its common crawlers always respect robots.txt rules for automatic crawls. The same is true of it: no TDM, no tdm-reservation, no TDMRep. Three pages, three vendors, one named mechanism between them.

That is a negative result and it should be read as exactly what it is. Absence from a documentation page is not proof that no system anywhere at those companies reads a tdmrep.json, and none of the three pages is an exhaustive statement of everything its publisher honours. What it does establish is the thing a site owner has to act on, because a site owner can only follow instructions that exist: the published instructions from all three point at one file, and that file is not TDMRep's. This is the same shape as the earlier count on this blog showing six of the nine vendors in the registry publish exactly one crawler token, where the constraint on what a site can express turned out to be set by what vendors had bothered to name. The AI crawler registry behind this site's own checks is built from those same published pages, which is why it contains robots.txt tokens and nothing else.

PublisherPageMechanism namedTokens documentedMentions TDMRep
OpenAICrawler docsrobots.txt, plus published IP ranges4No
AnthropicCrawler support articlerobots.txt3No
GoogleCrawler overview, updated 2026-06-12robots.txtOverview page, not enumerated hereNo
Three vendor documentation pages, read on 4 August 2026. A record of what each page states, reported from the pages themselves and not measured by Lantad.

Where the reservation is written decides who can see it

The four channels are not interchangeable, because the specification gives them an order. A TDM agent must check the well-known file on the origin server before it starts scraping. A tdm-reservation HTTP header supersedes any value inferred from that file. HTML metadata supersedes the previous values. Metadata inside an EPUB or PDF supersedes those in turn. The most specific statement wins, which is the right design for a rights declaration and has a consequence anybody building a checker should sit with for a moment.

It means the site-level file does not tell you the answer for a page. A publisher can serve a tdmrep.json reserving nothing and then set tdm-reservation to 1 in the head of a particular article, and the correct answer for that article is 1. A tool that fetches only /.well-known/tdmrep.json and reports the site's position will be wrong about exactly the pages a publisher cared enough to mark individually. Reading the file alone is cheaper and gives a plausible answer, which is the combination that makes an incorrect check survive.

The specification also says an agent must keep the well-known file in cache to optimise further processing, and it sets no refresh interval at all. Compare that with robots.txt, where RFC 9309 asks crawlers not to use a cached copy for more than 24 hours and Google's documentation describes caching the file for up to a day. A cache with no stated maximum age means an edit to a reservation has no defined moment at which it takes effect for a given agent, which is a sharper version of a gap this blog has already reported, that a robots.txt edit does not take effect when you save it. At least there the interval is written down.

TDMRep is also not the only signal that lives outside robots.txt, and the pattern is becoming the norm rather than the exception. Microsoft's AI opt out is a meta tag rather than a product token. The IETF AIPREF working group is building a vocabulary and an attachment mechanism for the same problem from a different direction, which this blog covered as the AI preferences standard you cannot deploy yet. One more piece of context belongs here because it is checkable and rarely mentioned: IANA lists tdmrep.json in its Well-Known URIs registry with the status provisional, registered on 15 February 2024 with W3C as change controller, and that registry is at www.iana.org/assignments/well-known-uris/well-known-uris.xhtml. robots.txt is absent from it, being defined by its own RFC, and llms.txt is absent too. Provisional is a real registration and it is also not a permanent one.

The W3C group publishes an adopters file listing organisations that have implemented the protocol, and its composition is the most informative thing about it. Academic and STM publishers dominate, mostly deploying tdmrep.json with a policy URL, with trade publishers and a set of mostly French newspapers behind them. The only adoption figure the file carries is an undated estimate attributed to a national publishers' association, which is why no percentage from it appears in this post. That absence is the honest summary of the deployment evidence: the protocol has real adopters concentrated in publishing, and no public measurement of its presence across the web that meets the standard this blog applies to a number.

The evaluation order the specification sets out for a TDM agent, W3C Community Group Final Report of 10 May 2024. A description of the specified algorithm, not a trace of any agent's real behaviour.

What this scanner checks, and what it does not

The part of this that is Lantad's to answer is narrow, and stating it plainly is more useful than implying broader coverage. This scanner measures whether a crawler can read a page: it fetches robots.txt and evaluates it per crawler token, fetches the page as a plain client and as a browser, and compares the two. It does not request /.well-known/tdmrep.json. It does not read a tdm-reservation header or meta tag. It holds no measurement of TDMRep deployment on any site, and nothing on this site should be read as one.

That gap is worth naming rather than quietly closing, because the two things are not the same measurement and merging them would be a category error. AI visibility as this site defines it is a readability question: can the client fetch the page, and does the served markup contain the prose a human sees. A TDM reservation answers a permissions question that is orthogonal to all of it. A site scoring well here can carry a reservation on every page, and a site with no reservation anywhere can be completely unreadable. Adding a tdmrep check to a readability score would make the number mean less, not more, which is the same reasoning set out in this site's scan methodology for what does and does not enter a grade.

There is a genuine argument for reporting it as a separate observation, and it is a strong one: the check is cheap, one GET against a fixed path plus two fields already present in a fetch this scanner performs anyway, and the answer is something a site owner frequently does not know about their own site. The argument against shipping it today is that a check reporting only the well-known file would be wrong about page-level overrides for precisely the pages a publisher marked deliberately, and a wrong permissions answer is worse than no permissions answer. Nothing is promised here on timing; this is a note about what is not measured, not a roadmap.

What a reader can do without any tool is short enough to write out. Decide whether the site's position is a rights position, an access position, or both, because they are separate decisions and most sites have only ever made the second one. If access is what is wanted, that is robots.txt, and it is keyed to crawler names published by the vendors, which is what LantadBot declares about itself and what this scanner reads back. If a rights reservation is what is wanted, TDMRep gives four places to write it, the well-known file is the one an external party can check, and the vendor documentation surveyed above means no major crawler currently tells you it will read it. Both of those can be true at once, and a site owner is better off knowing that than assuming a Disallow line has covered a question it never addressed. The dated write-ups behind claims like this one are collected on this site's research page.

  • robots.txt per token Checked Fetched and evaluated against the crawler registry
  • Server HTML and rendered page Checked Both fetched, then compared for prose parity
  • /.well-known/tdmrep.json Not requested No TDM reservation is read at site level
  • tdm-reservation header or meta Not read Present in responses the scanner already receives
  • TDMRep deployment rate No measurement Lantad publishes no figure and none is implied
What this scanner reads today. A description of Lantad's own pipeline, not a finding about any site.

Related

Common questions

Does robots.txt count as a machine-readable opt-out for AI training?

That is a contested legal question and this post does not settle it. What is verifiable is the engineering difference: robots.txt under RFC 9309 expresses whether a named client may fetch a URL, while a TDM reservation expresses whether content may be mined once obtained. They encode different things, and a system reading one cannot reconstruct the other.

Where do I write a TDM reservation on my website?

The TDM Reservation Protocol defines four places, and its Community Group Report of 10 May 2024 sets an order between them. A JSON file at /.well-known/tdmrep.json covers paths across the site, a tdm-reservation HTTP response header covers a response, an HTML meta tag of the same name covers a document, and EPUB and PDF files carry it in their embedded metadata. Each of those supersedes the one before it, so the most specific statement wins.

Do OpenAI, Google and Anthropic honour TDMRep?

Their published crawler documentation does not say so. Read on 4 August 2026, OpenAI's crawler documentation, Anthropic's crawler support article and Google's crawler overview each name robots.txt as the mechanism for site owners and none of the three mentions TDM, tdm-reservation or TDMRep. Absence from a documentation page is not proof that no internal system reads the file, but it is the whole of what a site owner has been told.

Does a TDM reservation stop AI crawlers reading my site?

No. A tdm-reservation value of 1 declares that mining rights are reserved and optionally links a policy URL where authorisation can be sought. Nothing in the protocol asks a crawler not to fetch a page, and nothing in it blocks a request. Access is the question robots.txt and your edge answer, and it is a separate decision.

See what AI can read on your site

Run a free scan and get a graded report of exactly what AI crawlers can and cannot read, with ranked fixes.