# ai.txt: the grade accepts it, but publish llms.txt first

> ai.txt is a name, not a standard. We found two unrelated proposals using it and no crawler vendor that documents reading it. The grade accepts `/ai.txt` as an alternative to `/llms.txt` so sites that chose it are not penalised; if you are starting from zero, publish llms.txt.

Checked 2026-09-30 against Agent-Readiness Grade 1.3.0. HTML version: https://grade.agentexchange.work/fix/ai-txt

## What the grade checks

- `GET https://example.com/ai.txt` with a 7-second timeout. It counts when the answer is HTTP 200, text rather than an HTML page, and not empty.
- It earns the same point as `/llms.txt`, never a second one: one of the two files is enough.

Shares 1 point with llms.txt in the machine-readable surfaces area.

## Why it matters for AI agents and crawlers

The crawler documentation we read for these guides (OpenAI, Anthropic, Google, Perplexity, Apple, Amazon, Common Crawl, Meta) documents robots.txt tokens and never mentions ai.txt (checked 2026-09-30).

Spawning, a company that makes AI-training opt-out tools, published an ai.txt proposal for stating AI-training permissions; its pages were under maintenance when we checked on 2026-09-30, so we could not re-read it. A separate academic paper, [ai.txt: A Domain-Specific Language for Guiding AI Interactions with the Internet](https://arxiv.org/abs/2505.07834) (May 2025), defines a different format under the same name.

[llms.txt](https://grade.agentexchange.work/fix/llms-txt) has a published format, a Lighthouse audit and generator support in WordPress plugins and docs platforms. robots.txt remains the only file the crawler vendors say they obey.

## How to fix it

### 1. Prefer llms.txt

If you have neither file, publish [llms.txt](https://grade.agentexchange.work/fix/llms-txt): it earns the same point, and agents know what to do with it.

### 2. If you keep ai.txt, make it plain text

State your AI policy in plain sentences and point to the files that carry the machine rules. Serve it as `text/plain` at `/ai.txt` (web root on a static site or WordPress, `public/ai.txt` in Next.js, your static assets on Cloudflare).

ai.txt:

```text
# ai.txt for example.com
# Plain-language AI policy. Crawler rules: https://example.com/robots.txt
# Site guide for language models: https://example.com/llms.txt

AI search and answer engines may read and cite this site.
Content on this site may not be used to train AI models.
Questions: ai-policy@example.com
```

## How to verify

Check the status and content type.

```sh
curl -s -o /dev/null -w "%{http_code} %{content_type}\n" https://example.com/ai.txt
```

`200 text/plain`. A `text/html` answer is your site's catch-all page, which does not count.

Re-grade: https://grade.agentexchange.work/grade?url=example.com&fresh=1

## Questions

### Do AI crawlers read ai.txt?

None of the eight vendors whose crawler documentation we read mentions it (checked 2026-09-30). Put crawler rules in robots.txt.

### Should I publish both ai.txt and llms.txt?

Only if ai.txt says something llms.txt does not. For the grade, either one earns the point.

### Is ai.txt the same as llms.txt?

No. llms.txt is a Markdown guide to your pages under a published proposal; the ai.txt proposals are about permissions and share no format.

## Sources

- [The /llms.txt file, v2](https://llmstxt.org/) (llmstxt.org (Jeremy Howard, Answer.AI))
- [ai.txt: A Domain-Specific Language for Guiding AI Interactions with the Internet (arXiv 2505.07834)](https://arxiv.org/abs/2505.07834) (arXiv)
- [Overview of OpenAI Crawlers](https://developers.openai.com/api/docs/bots) (OpenAI)
- [Does Anthropic crawl data from the web, and how can site owners block the crawler?](https://support.claude.com/en/articles/8896518-does-anthropic-crawl-data-from-the-web-and-how-can-site-owners-block-the-crawler) (Anthropic)
- [Google's common crawlers](https://developers.google.com/crawling/docs/crawlers-fetchers/google-common-crawlers) (Google)

## Related

- [llms.txt](https://grade.agentexchange.work/fix/llms-txt.md): A Markdown guide to your key pages at /llms.txt, served as text, not as your HTML 404.
- [robots.txt for AI crawlers](https://grade.agentexchange.work/fix/robots-txt-ai-crawlers.md): robots.txt groups for eight AI crawler tokens; a blanket Disallow: / counts as blocked.
- [llms.txt generator](https://grade.agentexchange.work/tools/llms-txt-generator)
- [All fix guides](https://grade.agentexchange.work/fix)
