{"id":300958,"date":"2026-06-26T09:43:21","date_gmt":"2026-06-26T09:43:21","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/eloqio-ai-content-reservation\/"},"modified":"2026-06-26T09:43:08","modified_gmt":"2026-06-26T09:43:08","slug":"eloqio-ai-content-reservation","status":"publish","type":"plugin","link":"https:\/\/es-do.wordpress.org\/plugins\/eloqio-ai-content-reservation\/","author":23481736,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.2","stable_tag":"1.0.2","tested":"6.9.4","requires":"6.5","requires_php":"7.4","requires_plugins":null,"header_name":"ELOQIO AI Content Reservation","header_author":"ELOQIO","header_description":"Implements the W3C TDM Reservation Protocol to signal AI training opt-out on your WordPress content. Exposes \/.well-known\/tdmrep.json, a tdm-reservation HTTP header, and a matching HTML meta tag.","assets_banners_color":"aa995e","last_updated":"2026-06-26 09:43:08","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/eloqio\/eloqio-ai-content-reservation","header_author_uri":"https:\/\/eloq.io","rating":0,"author_block_rating":0,"active_installs":0,"downloads":57,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.2":{"tag":"1.0.2","author":"eloqio","date":"2026-06-26 09:43:08"}},"upgrade_notice":{"1.0.2":"<p>Adds the <code>eloqio_acr_settings<\/code> developer filter. No change to default behaviour.<\/p>","1.0.1":"<p>Security hardening on the TDMRep JSON endpoint following WordPress.org review feedback.<\/p>","1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3587028,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3587028,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3587028,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3587028,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.2"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Settings screen under Settings \u2192 ELOQIO AI Content Reservation.","2":"The JSON endpoint served at \/.well-known\/tdmrep.json.","3":"Site Health check confirming the endpoint is reachable."}},"plugin_section":[],"plugin_tags":[2353,2972,396,186,268983],"plugin_category":[54,55],"plugin_contributors":[268984],"plugin_business_model":[],"class_list":["post-300958","plugin","type-plugin","status-publish","hentry","plugin_tags-ai","plugin_tags-copyright","plugin_tags-privacy","plugin_tags-seo","plugin_tags-tdm","plugin_category-security-and-spam-protection","plugin_category-seo-and-marketing","plugin_contributors-eloqio","plugin_committers-eloqio"],"banners":{"banner":"https:\/\/ps.w.org\/eloqio-ai-content-reservation\/assets\/banner-772x250.png?rev=3587028","banner_2x":"https:\/\/ps.w.org\/eloqio-ai-content-reservation\/assets\/banner-1544x500.png?rev=3587028","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/eloqio-ai-content-reservation\/assets\/icon-128x128.png?rev=3587028","icon_2x":"https:\/\/ps.w.org\/eloqio-ai-content-reservation\/assets\/icon-256x256.png?rev=3587028","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>ELOQIO AI Content Reservation<\/strong> implements the <a href=\"https:\/\/www.w3.org\/community\/reports\/tdmrep\/CG-FINAL-tdmrep-20240510\/\">W3C TDM Reservation Protocol (TDMRep)<\/a> 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.<\/p>\n\n<p>Unlike <code>robots.txt<\/code>, which is a voluntary convention, TDMRep has <strong>legal weight<\/strong>. AI providers that ignore a properly deployed TDMRep signal expose themselves to substantial fines under the EU AI Act starting August 2026.<\/p>\n\n<h4>What this plugin does<\/h4>\n\n<ul>\n<li>Serves <code>\/.well-known\/tdmrep.json<\/code> dynamically \u2014 no file to create, no FTP required<\/li>\n<li>Adds the <code>tdm-reservation<\/code> HTTP header on every front-end response<\/li>\n<li>Injects the matching <code>&lt;meta name=\"tdm-reservation\"&gt;<\/code> tag in the HTML head<\/li>\n<li>Supports the optional <code>tdm-policy<\/code> URL to link to your human-readable policy document<\/li>\n<li>Ships with a Site Health check that verifies the endpoint responds correctly<\/li>\n<li>Zero dependencies, zero tracking, zero external API calls<\/li>\n<\/ul>\n\n<h4>Why three delivery methods?<\/h4>\n\n<p>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.<\/p>\n\n<h4>Evidence preservation<\/h4>\n\n<p>After activating the plugin, submit your endpoint URL to the <a href=\"https:\/\/web.archive.org\/\">Wayback Machine<\/a> 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.<\/p>\n\n<h4>Who is this for?<\/h4>\n\n<p>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 <code>robots.txt<\/code> for defence in depth.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to the <code>\/wp-content\/plugins\/eloqio-ai-content-reservation<\/code> directory, or install the plugin through the WordPress plugins screen directly.<\/li>\n<li>Activate the plugin through the 'Plugins' screen in WordPress.<\/li>\n<li>Go to <strong>Settings \u2192 ELOQIO AI Content Reservation<\/strong> to verify or adjust the reservation value.<\/li>\n<li>Visit <code>https:\/\/your-site.com\/.well-known\/tdmrep.json<\/code> to confirm the endpoint is live.<\/li>\n<li>(Optional) Archive the endpoint URL on the Wayback Machine for evidence.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20block%20ai%20crawlers%3F\"><h3>Does this plugin block AI crawlers?<\/h3><\/dt>\n<dd><p>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 <code>robots.txt<\/code> rules or WAF filters.<\/p><\/dd>\n<dt id=\"does%20it%20work%20retroactively%3F\"><h3>Does it work retroactively?<\/h3><\/dt>\n<dd><p>No. TDMRep only applies to crawls performed after you deployed the signal. Content already collected before activation is not covered.<\/p><\/dd>\n<dt id=\"does%20it%20affect%20seo%3F\"><h3>Does it affect SEO?<\/h3><\/dt>\n<dd><p>No. Google Search and Bing are not affected. TDMRep targets TDM\/AI training crawlers specifically. Google's AI training (Google-Extended) reads a separate <code>robots.txt<\/code> directive.<\/p><\/dd>\n<dt id=\"is%20there%20a%20performance%20impact%3F\"><h3>Is there a performance impact?<\/h3><\/dt>\n<dd><p>Negligible. The endpoint is served in a single PHP request, the HTTP header is one <code>header()<\/code> call, and the meta tag is three lines of HTML.<\/p><\/dd>\n<dt id=\"can%20i%20reserve%20only%20part%20of%20my%20site%3F\"><h3>Can I reserve only part of my site?<\/h3><\/dt>\n<dd><p>The current version applies to the entire site (<code>location: \/<\/code>). Per-post granularity is on the roadmap for future versions if demand justifies the added complexity.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Add the <code>eloqio_acr_settings<\/code> 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.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Security: drop the <code>JSON_UNESCAPED_SLASHES<\/code> flag on the TDMRep endpoint output, per the WordPress.org review feedback on late escaping of echoed data.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<li>Dynamic <code>\/.well-known\/tdmrep.json<\/code> endpoint.<\/li>\n<li><code>tdm-reservation<\/code> HTTP header on all front-end responses.<\/li>\n<li><code>&lt;meta name=\"tdm-reservation\"&gt;<\/code> tag injection.<\/li>\n<li>Optional <code>tdm-policy<\/code> URL support.<\/li>\n<li>Site Health async check.<\/li>\n<li>French and English translations included.<\/li>\n<\/ul>","raw_excerpt":"Signal your AI training opt-out through the W3C TDM Reservation Protocol. One click, three delivery methods, zero configuration file to upload.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/es-do.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/300958","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/es-do.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/es-do.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/es-do.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=300958"}],"author":[{"embeddable":true,"href":"https:\/\/es-do.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/eloqio"}],"wp:attachment":[{"href":"https:\/\/es-do.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=300958"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/es-do.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=300958"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/es-do.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=300958"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/es-do.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=300958"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/es-do.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=300958"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/es-do.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=300958"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}