{"id":261248,"date":"2025-11-17T19:27:43","date_gmt":"2025-11-17T19:27:43","guid":{"rendered":"https:\/\/es.wordpress.org\/plugins\/ai-content-signals\/"},"modified":"2026-06-05T19:44:30","modified_gmt":"2026-06-05T19:44:30","slug":"ai-content-signals","status":"publish","type":"plugin","link":"https:\/\/xho.wordpress.org\/plugins\/ai-content-signals\/","author":1320655,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.3.0","stable_tag":"1.3.0","tested":"7.0","requires":"5.6","requires_php":"7.4","requires_plugins":null,"header_name":"AI Content Signals","header_author":"Fernando Tellado","header_description":"Add Content Signals to your robots.txt to control how AI crawlers can use your content. Configure signals for search indexing, AI input, and AI training.","assets_banners_color":"ffffff","last_updated":"2026-06-05 19:44:30","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/servicios.ayudawp.com","header_author_uri":"https:\/\/ayudawp.com","rating":5,"author_block_rating":0,"active_installs":500,"downloads":2192,"num_ratings":3,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"fernandot","date":"2025-11-26 07:51:27"},"1.0.1":{"tag":"1.0.1","author":"fernandot","date":"2025-12-28 17:52:20"},"1.1.0":{"tag":"1.1.0","author":"fernandot","date":"2026-03-17 17:16:14"},"1.2.0":{"tag":"1.2.0","author":"fernandot","date":"2026-03-26 09:37:14"},"1.2.1":{"tag":"1.2.1","author":"fernandot","date":"2026-03-27 18:42:55"},"1.2.2":{"tag":"1.2.2","author":"fernandot","date":"2026-03-27 18:56:54"},"1.3.0":{"tag":"1.3.0","author":"fernandot","date":"2026-06-05 19:44:30"}},"upgrade_notice":{"1.3.0":"<p>New optional output surfaces: a robots meta tag (noai, noimageai), an X-Robots-Tag header, and a W3C TDMRep file at \/.well-known\/tdmrep.json. All disabled by default; your robots.txt output is unchanged.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":3},"assets_icons":{"icon-128x128.gif":{"filename":"icon-128x128.gif","revision":3397536,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.gif":{"filename":"icon-256x256.gif","revision":3397536,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500-es.jpg":{"filename":"banner-1544x500-es.jpg","revision":3397627,"resolution":"1544x500","location":"assets","locale":"es","width":1544,"height":500},"banner-1544x500.jpg":{"filename":"banner-1544x500.jpg","revision":3397627,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250-es.jpg":{"filename":"banner-772x250-es.jpg","revision":3397627,"resolution":"772x250","location":"assets","locale":"es","width":772,"height":250},"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":3397627,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{"blueprint.json":{"filename":"blueprint.json","revision":3562704,"resolution":false,"location":"assets","locale":"","contents":"{\"$schema\":\"https:\\\/\\\/playground.wordpress.net\\\/blueprint-schema.json\",\"preferredVersions\":{\"php\":\"latest\",\"wp\":\"latest\"},\"phpExtensionBundles\":[\"kitchen-sink\"],\"features\":{\"networking\":true},\"steps\":[{\"step\":\"login\",\"username\":\"admin\",\"password\":\"password\"},{\"step\":\"installPlugin\",\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"ai-content-signals\"},\"options\":{\"activate\":true}}],\"landingPage\":\"\\\/wp-admin\\\/options-general.php?page=ai-content-signals\"}"}},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1","1.1.0","1.2.0","1.2.1","1.2.2","1.3.0"],"block_files":[],"assets_screenshots":{"screenshot-1-es.jpg":{"filename":"screenshot-1-es.jpg","revision":3397536,"resolution":"1","location":"assets","locale":"es","width":1920,"height":774},"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3397536,"resolution":"1","location":"assets","locale":"","width":1920,"height":774},"screenshot-2-es.jpg":{"filename":"screenshot-2-es.jpg","revision":3397536,"resolution":"2","location":"assets","locale":"es","width":1920,"height":1200},"screenshot-2.jpg":{"filename":"screenshot-2.jpg","revision":3397536,"resolution":"2","location":"assets","locale":"","width":1920,"height":1200},"screenshot-3-es.jpg":{"filename":"screenshot-3-es.jpg","revision":3397536,"resolution":"3","location":"assets","locale":"es","width":1920,"height":880},"screenshot-3.jpg":{"filename":"screenshot-3.jpg","revision":3397536,"resolution":"3","location":"assets","locale":"","width":1920,"height":880},"screenshot-4-es.jpg":{"filename":"screenshot-4-es.jpg","revision":3397536,"resolution":"4","location":"assets","locale":"es","width":1920,"height":1469},"screenshot-4.jpg":{"filename":"screenshot-4.jpg","revision":3397536,"resolution":"4","location":"assets","locale":"","width":1920,"height":1469},"screenshot-5-es.jpg":{"filename":"screenshot-5-es.jpg","revision":3491683,"resolution":"5","location":"assets","locale":"es","width":1920,"height":592},"screenshot-5.jpg":{"filename":"screenshot-5.jpg","revision":3491683,"resolution":"5","location":"assets","locale":"","width":1920,"height":561}},"screenshots":{"1":"Main settings page with global Content Signals configuration","2":"Bot-specific settings for granular control","3":"Custom bots section for adding new AI crawlers","4":"Live preview of generated robots.txt content","5":"Export, import, and restore default settings"}},"plugin_section":[],"plugin_tags":[2353,3882,12928,12753,186],"plugin_category":[55],"plugin_contributors":[245779,133550],"plugin_business_model":[],"class_list":["post-261248","plugin","type-plugin","status-publish","hentry","plugin_tags-ai","plugin_tags-cloudflare","plugin_tags-crawlers","plugin_tags-robots-txt","plugin_tags-seo","plugin_category-seo-and-marketing","plugin_contributors-ayudawp","plugin_contributors-fernandot","plugin_committers-ayudawp","plugin_committers-fernandot","plugin_support_reps-ayudawp"],"banners":{"banner":"https:\/\/ps.w.org\/ai-content-signals\/assets\/banner-772x250.jpg?rev=3397627","banner_2x":"https:\/\/ps.w.org\/ai-content-signals\/assets\/banner-1544x500.jpg?rev=3397627","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/ai-content-signals\/assets\/icon-128x128.gif?rev=3397536","icon_2x":"https:\/\/ps.w.org\/ai-content-signals\/assets\/icon-256x256.gif?rev=3397536","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/ai-content-signals\/assets\/screenshot-1.jpg?rev=3397536","caption":"Main settings page with global Content Signals configuration"},{"src":"https:\/\/ps.w.org\/ai-content-signals\/assets\/screenshot-2.jpg?rev=3397536","caption":"Bot-specific settings for granular control"},{"src":"https:\/\/ps.w.org\/ai-content-signals\/assets\/screenshot-3.jpg?rev=3397536","caption":"Custom bots section for adding new AI crawlers"},{"src":"https:\/\/ps.w.org\/ai-content-signals\/assets\/screenshot-4.jpg?rev=3397536","caption":"Live preview of generated robots.txt content"},{"src":"https:\/\/ps.w.org\/ai-content-signals\/assets\/screenshot-5.jpg?rev=3491683","caption":"Export, import, and restore default settings"}],"raw_content":"<!--section=description-->\n<p>AI Content Signals lets you declare, in a machine-readable way, how AI systems may use your content: for search indexing, real-time AI answers (RAG), or model training. It started with Cloudflare's Content Signals in robots.txt and now expresses the same preferences across several surfaces, so more crawlers and tools can read them:<\/p>\n\n<ul>\n<li><strong>robots.txt<\/strong> \u2014 Cloudflare Content Signals (search \/ ai-input \/ ai-train)<\/li>\n<li><strong>HTTP header<\/strong> \u2014 <code>X-Robots-Tag: noai, noimageai<\/code><\/li>\n<li><strong>HTML meta<\/strong> \u2014 robots <code>noai, noimageai<\/code><\/li>\n<li><strong>\/.well-known\/tdmrep.json<\/strong> \u2014 W3C Text and Data Mining Reservation Protocol<\/li>\n<li><strong>EU Directive 2019\/790<\/strong> rights reservation<\/li>\n<\/ul>\n\n<p>Everything is opt-in and does not change your robots.txt output unless you enable it.<\/p>\n\n<p><strong>The signals you control<\/strong><\/p>\n\n<p>You set three preferences, and AI Content Signals expresses each one in the right format on every surface you enable:<\/p>\n\n<ul>\n<li><strong>search<\/strong> \u2014 allow or deny search indexing and traditional search results (links and short snippets)<\/li>\n<li><strong>ai-input<\/strong> \u2014 allow or deny using your content for real-time AI answers (RAG, grounding, AI Overviews)<\/li>\n<li><strong>ai-train<\/strong> \u2014 allow or deny using your content to train or fine-tune AI models<\/li>\n<\/ul>\n\n<p>These three come from Cloudflare's Content Signals vocabulary, written to your robots.txt. When you deny AI training, the same opt-out is also emitted on any other surface you enable: <code>noai, noimageai<\/code> in an HTML meta tag and an <code>X-Robots-Tag<\/code> header, plus a <code>tdm-reservation<\/code> in your TDMRep manifest. Declaring the same preference in several places means a crawler that ignores one signal may still honor another.<\/p>\n\n<p><strong>Key Features<\/strong><\/p>\n\n<ul>\n<li>Easy-to-use settings page in WordPress admin<\/li>\n<li>Set global defaults for all crawlers<\/li>\n<li>Configure specific settings for individual AI bots (GPTBot, ClaudeBot, PerplexityBot, etc.)<\/li>\n<li>Add custom bot User-Agents<\/li>\n<li>Supports both physical and virtual robots.txt files<\/li>\n<li>Option to create physical robots.txt with basic WordPress rules<\/li>\n<li>Preview generated Content Signals before applying<\/li>\n<li>Export and import settings as JSON for easy migration between sites<\/li>\n<li>Optional legal text with EU Directive reference<\/li>\n<li>Developer-friendly: filter hook to extend the predefined bots list<\/li>\n<li>Works with existing robots.txt from SEO plugins<\/li>\n<li>Automatic sitemap detection and inclusion<\/li>\n<li>Optional extra output surfaces: HTML robots meta tag (noai, noimageai), X-Robots-Tag header, and a W3C TDMRep file at \/.well-known\/tdmrep.json<\/li>\n<\/ul>\n\n<p><strong>Supported Bots<\/strong><\/p>\n\n<p>The plugin includes predefined settings for 28 major AI crawlers:<\/p>\n\n<ul>\n<li>OpenAI GPTBot, OAI-SearchBot, and ChatGPT-User<\/li>\n<li>Anthropic ClaudeBot, Claude-Web, and anthropic-ai<\/li>\n<li>Perplexity Bot and Perplexity-User<\/li>\n<li>Google Extended (Gemini) and GoogleOther<\/li>\n<li>Amazon Bot<\/li>\n<li>Apple Extended<\/li>\n<li>Meta\/Facebook Bot and meta-externalagent<\/li>\n<li>DuckDuckGo DuckAssistBot<\/li>\n<li>Allen Institute AI2Bot<\/li>\n<li>Mistral AI<\/li>\n<li>ByteDance Bytespider<\/li>\n<li>DeepSeek AI<\/li>\n<li>xAI Grok<\/li>\n<li>Huawei Pangu<\/li>\n<li>Common Crawl, Cohere AI, Diffbot, You.com Bot, and more<\/li>\n<\/ul>\n\n<p><strong>Important Notice<\/strong><\/p>\n\n<p>Content Signals is a declarative standard - it expresses your preferences but does not technically enforce them. AI companies are not legally required to respect these signals, though the plugin includes legal text referencing EU copyright directives.<\/p>\n\n<p>The IETF AI Preferences (AIPREF) Working Group is currently developing a formal standard based on similar concepts. This plugin implements the current Cloudflare Content Signals specification and will be updated as standards evolve.<\/p>\n\n<p>This plugin works best when combined with other protection measures like traditional robots.txt rules and server-level bot management.<\/p>\n\n<h3>Support<\/h3>\n\n<p>Need help or have suggestions?<\/p>\n\n<ul>\n<li><a href=\"https:\/\/servicios.ayudawp.com\">Official website<\/a><\/li>\n<li><a href=\"https:\/\/wordpress.org\/support\/plugin\/ai-content-signals\/\">WordPress support forum<\/a><\/li>\n<li><a href=\"https:\/\/www.youtube.com\/AyudaWordPressES\">YouTube channel<\/a><\/li>\n<li><a href=\"https:\/\/ayudawp.com\">Documentation and tutorials<\/a><\/li>\n<\/ul>\n\n<p>Love the plugin? Please leave us a <a href=\"https:\/\/wordpress.org\/support\/plugin\/ai-content-signals\/reviews\/#new-post\">5-star review<\/a> and help spread the word!<\/p>\n\n<h3>About AyudaWP.com<\/h3>\n\n<p>We are specialists in WordPress security, SEO, and performance optimization plugins. We create tools that solve real problems for WordPress site owners while maintaining the highest coding standards and accessibility requirements.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to <code>\/wp-content\/plugins\/ai-content-signals\/<\/code>, or install through the WordPress plugins screen<\/li>\n<li>Activate the plugin through the 'Plugins' screen in WordPress<\/li>\n<li>Go to Settings &gt; AI Content Signals to configure your preferences<\/li>\n<li>Save settings to apply Content Signals to your robots.txt<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"what%20happens%20if%20i%20have%20a%20physical%20robots.txt%20file%3F\"><h3>What happens if I have a physical robots.txt file?<\/h3><\/dt>\n<dd><p>The plugin will detect your physical robots.txt file and append Content Signals to the end of it. Make sure the file is writable (permissions 644 recommended).<\/p><\/dd>\n<dt id=\"can%20the%20plugin%20create%20a%20robots.txt%20file%20if%20i%20don%27t%20have%20one%3F\"><h3>Can the plugin create a robots.txt file if I don't have one?<\/h3><\/dt>\n<dd><p>Yes! You can enable the option \"Create physical robots.txt file if it doesn't exist\" in the settings. This will create a basic robots.txt with standard WordPress rules plus your Content Signals.<\/p><\/dd>\n<dt id=\"what%20rules%20are%20included%20in%20the%20automatically%20created%20robots.txt%3F\"><h3>What rules are included in the automatically created robots.txt?<\/h3><\/dt>\n<dd><p>The plugin creates a basic robots.txt with these rules:\n* Disallow \/wp-admin\/ (except admin-ajax.php)\n* Disallow \/wp-includes\/\n* Disallow \/wp-content\/plugins\/\n* Disallow \/wp-content\/themes\/\n* Disallow \/wp-content\/cache\/\n* Disallow readme.html and license.txt\n* Automatically includes your WordPress sitemap if available<\/p><\/dd>\n<dt id=\"what%20if%20i%20use%20an%20seo%20plugin%20that%20manages%20robots.txt%3F\"><h3>What if I use an SEO plugin that manages robots.txt?<\/h3><\/dt>\n<dd><p>No problem! The plugin uses WordPress's robots_txt filter, so it will add Content Signals to the virtual robots.txt generated by your SEO plugin without conflicts.<\/p><\/dd>\n<dt id=\"will%20ai%20crawlers%20actually%20respect%20these%20signals%3F\"><h3>Will AI crawlers actually respect these signals?<\/h3><\/dt>\n<dd><p>Content Signals is a proposed standard and not all AI companies have committed to respecting it. It's a way to express your preferences, but not a guarantee of enforcement. However, major AI companies like OpenAI, Anthropic, and Google have shown interest in respecting such signals.<\/p><\/dd>\n<dt id=\"can%20i%20use%20this%20with%20cloudflare%3F\"><h3>Can I use this with Cloudflare?<\/h3><\/dt>\n<dd><p>Yes! If you use Cloudflare's managed robots.txt, you can still use this plugin. The settings will apply to your WordPress-generated robots.txt.<\/p><\/dd>\n<dt id=\"what%20are%20the%20default%20settings%3F\"><h3>What are the default settings?<\/h3><\/dt>\n<dd><p>By default, all signals are set to \"yes\" (allowed) for all user-agents. The option to create a physical robots.txt is disabled by default. You can change any of these settings in the settings page.<\/p><\/dd>\n<dt id=\"how%20do%20i%20remove%20content%20signals%20completely%3F\"><h3>How do I remove Content Signals completely?<\/h3><\/dt>\n<dd><p>Simply uninstall the plugin. The uninstall process will remove all settings and clean up your physical robots.txt if applicable.<\/p><\/dd>\n<dt id=\"can%20i%20transfer%20settings%20between%20sites%3F\"><h3>Can I transfer settings between sites?<\/h3><\/dt>\n<dd><p>Yes! Use the Export button on the settings page to download a JSON file with your full configuration, then use Import on another site to restore it. This includes global settings, individual bot overrides, and custom bots.<\/p><\/dd>\n<dt id=\"is%20content%20signals%20an%20official%20web%20standard%3F\"><h3>Is Content Signals an official web standard?<\/h3><\/dt>\n<dd><p>Not yet. Cloudflare published the Content Signals Policy in September 2025 and released it under CC0. The IETF has since created the AI Preferences (AIPREF) Working Group to develop a formal standard based on similar concepts. The plugin implements the current Cloudflare specification and will be updated as standards evolve.<\/p><\/dd>\n<dt id=\"can%20developers%20extend%20the%20bot%20list%20programmatically%3F\"><h3>Can developers extend the bot list programmatically?<\/h3><\/dt>\n<dd><p>Yes. Use the <code>ayudawp_acs_predefined_bots<\/code> filter to add or remove bots without modifying the plugin. Add this to your theme's <code>functions.php<\/code> or a custom plugin:<\/p>\n\n<pre><code>add_filter( 'ayudawp_acs_predefined_bots', function( $bots ) {\n    \/\/ Add a new bot.\n    $bots['MyCustomBot'] = 'My Custom AI Bot';\n\n    \/\/ Remove an existing bot.\n    unset( $bots['Omgilibot'] );\n\n    return $bots;\n} );\n<\/code><\/pre>\n\n<p>The array key is the User-Agent string used in robots.txt and the value is the label displayed in the settings page.<\/p><\/dd>\n<dt id=\"do%20i%20need%20to%20manually%20edit%20my%20robots.txt%20file%3F\"><h3>Do I need to manually edit my robots.txt file?<\/h3><\/dt>\n<dd><p>No! The plugin handles everything automatically. Just configure your preferences in the settings page and save.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>New: Output surfaces beyond robots.txt. Optionally emit a robots meta tag with noai, noimageai in the page head when AI training is blocked.<\/li>\n<li>New: Optionally send an X-Robots-Tag: noai, noimageai HTTP response header on the front-end.<\/li>\n<li>New: Optionally serve a W3C TDMRep manifest at \/.well-known\/tdmrep.json to reserve text and data mining rights.<\/li>\n<li>Improved: Added a settings-page notice explaining how AI Content Signals and VigIA complement each other.<\/li>\n<li>Improved: Refreshed the recommended plugins shown in the promotional banner.<\/li>\n<\/ul>\n\n<p>For older changelog entries, please check the <a href=\"https:\/\/plugins.svn.wordpress.org\/ai-content-signals\/trunk\/changelog.txt\">changelog.txt<\/a> file<\/p>","raw_excerpt":"Control how AI uses your content \u2014 search, AI answers or training \u2014 via robots.txt Content Signals, HTTP headers, meta tags and TDMRep.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/xho.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/261248","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/xho.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/xho.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/xho.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=261248"}],"author":[{"embeddable":true,"href":"https:\/\/xho.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/fernandot"}],"wp:attachment":[{"href":"https:\/\/xho.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=261248"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/xho.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=261248"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/xho.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=261248"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/xho.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=261248"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/xho.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=261248"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/xho.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=261248"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}