[Skip to content](#_top)

[![OpenNav AI](/_astro/full-open-logo.CGezuffk.svg) OpenNav AI](https://opennav.ai/)

Search CtrlK

Cancel

[Docs](https://docs.opennav.ai/index.md)

[Quick Start](https://docs.opennav.ai/getting-started/index.md)

[SDK](https://docs.opennav.ai/sdk/index.md)

[OpenNav AI on X](https://x.com/OpenNavAI)

[Joshua Bellew on X](https://x.com/manofyear93)

[Email Joshua Bellew](mailto:joshua@opennav.ai)

- Start Here

  - [Overview](https://docs.opennav.ai/index.md)
  - [How It Works](https://docs.opennav.ai/how-it-works/index.md)
  - [Getting Started](https://docs.opennav.ai/getting-started/index.md)

- Use OpenNav

  - [CLI](https://docs.opennav.ai/cli/index.md)
  - [SDK](https://docs.opennav.ai/sdk/index.md)

- Frameworks

  - [Astro](https://docs.opennav.ai/frameworks/astro/index.md)
  - [Next.js](https://docs.opennav.ai/frameworks/next/index.md)
  - [Server-side frameworks Soon](https://docs.opennav.ai/frameworks/server-side/index.md)

- Platforms

  - [Cloudflare](https://docs.opennav.ai/platforms/cloudflare/index.md)

- Reference

  - [Generated Files](https://docs.opennav.ai/reference/generated-files/index.md)
  - [Content Extraction](https://docs.opennav.ai/reference/content-extraction/index.md)
  - [Access Guidance](https://docs.opennav.ai/reference/access-guidance/index.md)

- External

  - [AcceptMarkdown](https://acceptmarkdown.com/)
  - [Cloudflare Agent Readiness](https://blog.cloudflare.com/agent-readiness/)
  - [Is It Agent Ready?](https://isitagentready.com/)

[OpenNav AI on X](https://x.com/OpenNavAI)

[Joshua Bellew on X](https://x.com/manofyear93)

[Email Joshua Bellew](mailto:joshua@opennav.ai)

On this page

- [Overview](#_top)
- [When to use it](#when-to-use-it)
- [When to omit it](#when-to-omit-it)
- [contentSignals](#contentsignals)

## On this page

- [Overview](#_top)
- [When to use it](#when-to-use-it)
- [When to omit it](#when-to-omit-it)
- [contentSignals](#contentsignals)

# Access Guidance

`accessGuidance` is optional. If you omit it, OpenNav does not create or edit `robots.txt` for Content Signals.

Use it when you want the generated static output to include machine-readable content-use preferences in `robots.txt`. Content Signals are a convention for expressing preferences about how crawlers use content after they access it; see [Content Signals](https://contentsignals.org/) for the policy text and generator.

## When to use it

[Section titled “When to use it”](#when-to-use-it)

Configure access guidance when you want to publish an explicit preference for search indexing, real-time AI input use, or AI training while keeping the site publicly crawlable.

This is a good fit for docs, blogs, marketing sites, and public reference content where you want normal discovery to keep working, but you still want `robots.txt` to state how automated systems should use the content.

## When to omit it

[Section titled “When to omit it”](#when-to-omit-it)

Omit `accessGuidance` when you do not want OpenNav to manage any part of `robots.txt`, when your team already owns a hand-written Content Signals policy, or when you have not decided what preferences to publish.

Content Signals are not a technical block against scraping. They express site owner preferences, and some crawlers may ignore them. Use crawler controls, WAF rules, bot management, authentication, or paywalling when you need enforcement instead of preference signaling.

```txt
interface OpenNavAccessGuidanceOptions {  readonly contentSignals?: {    readonly search?: "allow" | "disallow";    readonly aiInput?: "allow" | "disallow";    readonly aiTrain?: "allow" | "disallow";  };}
```

## `contentSignals`

[Section titled “contentSignals”](#contentsignals)

Optional. Content-use preferences OpenNav writes into `robots.txt`.

The configured fields become one `Content-signal` directive.

#### `search`

Writes `search=yes` for `"allow"` or `search=no` for `"disallow"`. Use this field for search indexing and search snippets.

#### `aiInput`

Writes `ai-input=yes` for `"allow"` or `ai-input=no` for `"disallow"`. Use this field for real-time AI input use, such as grounding or retrieval.

#### `aiTrain`

Writes `ai-train=yes` for `"allow"` or `ai-train=no` for `"disallow"`. Use this field for model training or fine-tuning use.

Example configuration:

```txt
accessGuidance: {  contentSignals: {    search: "allow",    aiInput: "allow",    aiTrain: "disallow"  }}
```

With the example above, OpenNav writes:

```txt
Content-signal: search=yes, ai-input=yes, ai-train=no
```

OpenNav manages only the block between `# Begin OpenNav AI` and `# End OpenNav AI`. If `robots.txt` already contains unmanaged Content Signals, OpenNav returns a warning instead of changing that file.

[PreviousContent Extraction](https://docs.opennav.ai/reference/content-extraction/index.md)

[NextAcceptMarkdown](https://acceptmarkdown.com/)

---

Site index: [llms.txt](https://docs.opennav.ai/llms.txt)

<!-- opennav compatible="true" version="1.0" profile="static-agent-ready" build-fingerprint="sha256:ef7e48fe34cc" manifest="/.well-known/opennav.json" -->
