Guides

AI Directives

Last updated by
Harlan Wilton
in doc: clean up.

AI Directives allow you to express preferences about how AI systems, search engines, and automated tools should interact with your content. Two standards are supported:

  • Content-Usage - IETF standard with broader automation categories
  • Content-Signal - Cloudflare's widely-deployed implementation focused on AI use cases

Both can be used together in your robots.txt file and are enforced through the robots.txt protocol.

Important: AI directives rely on voluntary compliance by crawlers and AI systems. They are not enforced by web servers and should be combined with other protection methods for sensitive content.

Content-Usage (IETF aipref-vocab)

The Content-Usage directive follows the IETF AI Preferences specification, providing a standardized way to express automation preferences.

Categories

CategoryDescriptionExample Use Case
train-aiFoundation Model ProductionTraining large language models

Values

  • y - Allow this category of use
  • n - Disallow this category of use

Syntax

robots.txt
User-agent: *
Content-Usage: <category>=<value>[, <category>=<value>]
Content-Usage: /path/ <category>=<value>[, <category>=<value>]

Examples

Block AI Training Globally

robots.txt
User-agent: *
Allow: /
Content-Usage: train-ai=n

Allow Bots, Block AI Training

robots.txt
User-agent: *
Allow: /
Content-Usage: bots=y, train-ai=n

Path-Specific Rules

robots.txt
User-agent: *
Allow: /
Content-Usage: train-ai=n
Content-Usage: /docs/ train-ai=y
Content-Usage: /api/ train-ai=n

Programmatic Configuration

Object Format (Recommended) - Type-safe with autocomplete:

nuxt.config.ts
export default defineNuxtConfig({
  robots: {
    groups: [
      {
        userAgent: '*',
        allow: '/',
        contentUsage: {
          'train-ai': 'n'
        }
      }
    ]
  }
})

Content-Signal (Cloudflare/IETF aipref-contentsignals)

Content-Signal is Cloudflare's implementation based on IETF aipref-contentsignals.

Categories

CategoryDescriptionExample Use Case
searchSearch ApplicationsIndexing for search results and snippets
ai-inputAI InputRAG, grounding, generative AI search answers
ai-trainAI TrainingTraining or fine-tuning AI models

Values

  • yes - Allow this category of use
  • no - Disallow this category of use

Syntax

robots.txt
User-agent: *
Content-Signal: <category>=<value>[, <category>=<value>]
Content-Signal: /path/ <category>=<value>[, <category>=<value>]

Examples

robots.txt
User-agent: *
Allow: /
Content-Signal: ai-train=no, search=yes

Block All AI Usage

robots.txt
User-agent: *
Allow: /
Content-Signal: ai-train=no, ai-input=no, search=yes

Path-Specific Rules

robots.txt
User-agent: *
Allow: /
Content-Signal: ai-train=no, search=yes
Content-Signal: /docs/ ai-input=yes
Content-Signal: /api/ ai-train=no, ai-input=no, search=no

Programmatic Configuration

Object Format (Recommended) - Type-safe with autocomplete:

nuxt.config.ts
export default defineNuxtConfig({
  robots: {
    groups: [
      {
        userAgent: '*',
        allow: '/',
        contentSignal: {
          'ai-train': 'no',
          'search': 'yes'
        }
      }
    ]
  }
})

Using Both Together

You can use both Content-Usage and Content-Signal in the same robots.txt for comprehensive coverage:

robots.txt
User-agent: *
Allow: /
Content-Usage: bots=y, train-ai=n
Content-Signal: ai-train=no, search=yes
export default defineNuxtConfig({
  robots: {
    groups: [
      {
        userAgent: '*',
        allow: '/',
        contentUsage: {
          'train-ai': 'n'
        },
        contentSignal: {
          'ai-train': 'no',
          'search': 'yes'
        }
      }
    ]
  }
})

Examples

Block All AI Training

User-agent: *
Allow: /
Content-Usage: train-ai=n

Documentation-Only Training

User-agent: *
Allow: /
Content-Usage: train-ai=n
Content-Usage: /docs/ train-ai=y
Did this page help you?