TDMRep: The W3C Protocol That Gives Your AI Opt-Out Legal Teeth
robots.txt is a gentleman's agreement — crawlers can ignore it with zero legal consequence. TDMRep is backed by EU law. Here's how to implement it in under 10 minutes.
robots.txt vs. TDMRep: The Legal Difference
robots.txt is a technical convention from 1994. It was designed for search engine crawlers and has no legal enforcement mechanism. AI companies can and do ignore it with zero legal consequence.
TDMRep is explicitly referenced by the EU AI Act (2024/1689) and the EU Copyright in the Digital Single Market Directive (CDSM, Article 4) as a "machine-readable means" of reserving TDM rights. Under EU law, if you express a TDMRep reservation, AI companies operating in or selling to the EU must respect it — or face legal liability.
What Is TDMRep?
TDMRep (Text and Data Mining Reservation Protocol) is a W3C community specification that allows website owners to formally declare whether their content may be used for text and data mining purposes — including AI model training. It provides a machine-readable signal that can be checked automatically by compliant crawlers and used as evidence in legal proceedings.
Think of it this way: robots.txt is a "no trespassing" sign. TDMRep is a legally filed property deed. Both are useful. Together, they're much stronger than either alone.
Three Ways to Implement TDMRep
TDMRep offers three implementation methods. Use one, two, or all three for maximum coverage:
1. The tdmrep.json File (Recommended)
Place a tdmrep.json file at /.well-known/tdmrep.json on your domain. This covers your entire site with a single file.
{
"tdm": [
{
"policy": "https://yoursite.com/tdm-policy",
"tdm-reservation": 1
}
]
}tdm-reservation: 1 means "I reserve my TDM rights — you may not mine this content without permission." A value of 0 means "I do not reserve rights — mine freely."
2. HTTP Headers (Per-Resource Control)
Add a TDM-Reservation HTTP response header to individual pages or across your entire site via server configuration:
# Add to your nginx server block add_header TDM-Reservation 1; add_header TDM-Policy "https://yoursite.com/tdm-policy";
Header set TDM-Reservation "1" Header set TDM-Policy "https://yoursite.com/tdm-policy"
3. HTML Meta Tags (Per-Page Control)
Add meta tags to the <head> of individual pages where you want to reserve TDM rights:
<meta name="tdm-reservation" content="1"> <meta name="tdm-policy" content="https://yoursite.com/tdm-policy">
Implementing TDMRep in Next.js
For Next.js App Router projects, here's how to implement all three methods:
{
"tdm": [
{
"policy": "https://yoursite.com/tdm-policy",
"tdm-reservation": 1
}
]
}module.exports = {
async headers() {
return [
{
source: '/(.*)',
headers: [
{ key: 'TDM-Reservation', value: '1' },
{ key: 'TDM-Policy', value: 'https://yoursite.com/tdm-policy' },
],
},
];
},
};export const metadata = {
other: {
'tdm-reservation': '1',
'tdm-policy': 'https://yoursite.com/tdm-policy',
},
};Writing Your TDM Policy Page
The tdm-policy URL should point to a human-readable page on your site explaining your TDM rights reservation. This page serves as legal documentation. A minimal TDM policy should include:
A clear declaration that you reserve all text and data mining rights over your content.
Which content is covered (e.g., all content on the domain, or specific sections).
How AI companies can reach you to request a license for TDM use.
Reference to Article 4 of the EU CDSM Directive and/or the EU AI Act as the legal basis.
Whether you offer licenses for TDM use, and under what conditions.
The EU Legal Framework
TDMRep's legal teeth come from two pieces of EU legislation:
Using TDMRep and robots.txt Together
TDMRep and robots.txt serve complementary purposes. Use both for maximum protection:
- • Technical: tells crawlers not to access content
- • No legal enforcement mechanism
- • Respected voluntarily by most crawlers
- • Prevents data collection at the access point
- • Legal: declares your rights over content
- • Backed by EU CDSM Directive and AI Act
- • Creates legal liability for non-compliance
- • Applies even if content was already accessed
Belt and suspenders
robots.txt stops compliant crawlers from accessing your content. TDMRep creates a legal record that your rights are reserved — useful if a crawler ignores robots.txt and you need to pursue legal action. Use both.
Frequently Asked Questions
Does TDMRep work outside the EU?
The legal backing is strongest in the EU. Outside the EU, TDMRep serves as a formal, machine-readable expression of your intent — which can strengthen your position in fair use disputes in the US, or under similar frameworks in the UK, Japan, and elsewhere. Having an explicit reservation on record is always better than silence.
Do AI companies actually check TDMRep?
Adoption is growing. The EU AI Act requires general-purpose AI model providers to comply with TDM rights reservations. As enforcement ramps up through 2025-2026, major AI companies operating in or selling to EU markets will need to check TDMRep signals. Early adoption puts you ahead of the compliance curve.
Which implementation method should I use?
Use tdmrep.json for site-wide coverage (simplest). Add HTTP headers for per-resource control. Use HTML meta tags for individual pages with different policies. For maximum coverage, implement all three — different crawlers may check different signals.
Does TDMRep affect my SEO or search rankings?
No. TDMRep is specifically about text and data mining rights. It has no relationship with search engine crawling, indexing, or ranking. Google, Bing, and other search engines do not use TDMRep to make crawling or ranking decisions.
Related Guides
Is your site protected from AI bots?
Run a free scan to check your robots.txt, meta tags, and overall AI readiness score.