=== ELOQIO AI Content Reservation === Contributors: eloqio Tags: ai, privacy, tdm, copyright, seo Requires at least: 6.5 Tested up to: 6.9 Requires PHP: 7.4 Stable tag: 1.0.2 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html Signal your AI training opt-out through the W3C TDM Reservation Protocol. One click, three delivery methods, zero configuration file to upload. == Description == **ELOQIO AI Content Reservation** implements the [W3C TDM Reservation Protocol (TDMRep)](https://www.w3.org/community/reports/tdmrep/CG-FINAL-tdmrep-20240510/) on your WordPress site. TDMRep is the technical counterpart of the European DSM Directive (Article 4) and the AI Act: it lets publishers legally reserve their rights regarding the use of their content for Text and Data Mining, including generative AI training. Unlike `robots.txt`, which is a voluntary convention, TDMRep has **legal weight**. AI providers that ignore a properly deployed TDMRep signal expose themselves to substantial fines under the EU AI Act starting August 2026. = What this plugin does = * Serves `/.well-known/tdmrep.json` dynamically — no file to create, no FTP required * Adds the `tdm-reservation` HTTP header on every front-end response * Injects the matching `` tag in the HTML head * Supports the optional `tdm-policy` URL to link to your human-readable policy document * Ships with a Site Health check that verifies the endpoint responds correctly * Zero dependencies, zero tracking, zero external API calls = Why three delivery methods? = The TDMRep specification allows crawlers to look for the signal in any of the three locations. Deploying all three maximises the chance that AI bots actually pick up your reservation. = Evidence preservation = After activating the plugin, submit your endpoint URL to the [Wayback Machine](https://web.archive.org/) to create a timestamped proof of publication. This is essential if you ever need to demonstrate the date from which your reservation was in force. = Who is this for? = News publishers, bloggers, authors, creative agencies, and any content creator who wants to keep a clear legal record of their opt-out from AI training. Combine this plugin with blocking rules for known AI crawlers in your `robots.txt` for defence in depth. == Installation == 1. Upload the plugin files to the `/wp-content/plugins/eloqio-ai-content-reservation` directory, or install the plugin through the WordPress plugins screen directly. 2. Activate the plugin through the 'Plugins' screen in WordPress. 3. Go to **Settings → ELOQIO AI Content Reservation** to verify or adjust the reservation value. 4. Visit `https://your-site.com/.well-known/tdmrep.json` to confirm the endpoint is live. 5. (Optional) Archive the endpoint URL on the Wayback Machine for evidence. == Frequently Asked Questions == = Does this plugin block AI crawlers? = No. TDMRep is a declarative legal signal, not a technical block. It tells compliant AI providers that your content is off-limits for training. For active blocking, combine it with `robots.txt` rules or WAF filters. = Does it work retroactively? = No. TDMRep only applies to crawls performed after you deployed the signal. Content already collected before activation is not covered. = Does it affect SEO? = No. Google Search and Bing are not affected. TDMRep targets TDM/AI training crawlers specifically. Google's AI training (Google-Extended) reads a separate `robots.txt` directive. = Is there a performance impact? = Negligible. The endpoint is served in a single PHP request, the HTTP header is one `header()` call, and the meta tag is three lines of HTML. = Can I reserve only part of my site? = The current version applies to the entire site (`location: /`). Per-post granularity is on the roadmap for future versions if demand justifies the added complexity. == Screenshots == 1. Settings screen under Settings → ELOQIO AI Content Reservation. 2. The JSON endpoint served at /.well-known/tdmrep.json. 3. Site Health check confirming the endpoint is reachable. == Changelog == = 1.0.2 = * Add the `eloqio_acr_settings` filter so a theme or companion plugin can drive the reservation value from a single source of truth, while the plugin stays fully autonomous without any hook. = 1.0.1 = * Security: drop the `JSON_UNESCAPED_SLASHES` flag on the TDMRep endpoint output, per the WordPress.org review feedback on late escaping of echoed data. = 1.0.0 = * Initial release. * Dynamic `/.well-known/tdmrep.json` endpoint. * `tdm-reservation` HTTP header on all front-end responses. * `` tag injection. * Optional `tdm-policy` URL support. * Site Health async check. * French and English translations included. == Upgrade Notice == = 1.0.2 = Adds the `eloqio_acr_settings` developer filter. No change to default behaviour. = 1.0.1 = Security hardening on the TDMRep JSON endpoint following WordPress.org review feedback. = 1.0.0 = Initial release.