---
title: "No /llms.txt (geo/llms-txt-missing)"
description: "geo/llms-txt-missing: llms.txt is a curated Markdown index for inference-time agents, used mostly by coding agents."
canonical: https://void-design.vercel.app/rules/geo/llms-txt-missing
lastModified: 2026-09-16
---

# No /llms.txt

`geo/llms-txt-missing` · severity **info** · category AI search · detected by `void geo` and `void audit`

## Why it matters

llms.txt is a curated Markdown index for inference-time agents, used mostly by coding agents. Adoption is cheap but evidence of answer-engine use is thin (97% of files got zero requests in Ahrefs' 2026 study), so this is informational.

## How to fix it

Add app/llms.txt/route.ts with an H1, a > summary and sections of links to Markdown pages.

## Example

```ts
// app/llms.txt/route.ts
export const dynamic = 'force-static'
export function GET() {
  const body = [
    '# Acme',
    '',
    '> Acme builds fast widgets for teams. Open source, MIT licensed.',
    '',
    '## Docs',
    '',
    '- [Quick start](https://acme.example/docs/quick-start.md): install and render a widget in 2 minutes',
    '',
    '## Optional',
    '',
    '- [Changelog](https://acme.example/changelog.md)',
  ].join('\n')
  return new Response(body, { headers: { 'Content-Type': 'text/markdown; charset=utf-8' } })
}
```

## References

- https://llmstxt.org/
- https://developer.chrome.com/docs/lighthouse/agentic-browsing/llms-txt
- https://ahrefs.com/blog/llmstxt-study/

## More ai search rules

`void geo` reports 41 rules in this category. Generative-engine optimisation: whether AI crawlers that don't run JavaScript see the same content, valid and visible JSON-LD, an explicit AI robots policy, llms.txt, Markdown mirrors and answer-first writing.

- `markdown-alternate` No working Markdown alternate for this content page — [geo/markdown-alternate](https://void-design.vercel.app/rules/geo/markdown-alternate)
- `markdown-mirror-indexable` Markdown mirror can compete with the HTML page, or diverges from it — [geo/markdown-mirror-indexable](https://void-design.vercel.app/rules/geo/markdown-mirror-indexable)
- `markdown-negotiation-vary` Accept: text/markdown negotiation without Vary: Accept — [geo/markdown-negotiation-vary](https://void-design.vercel.app/rules/geo/markdown-negotiation-vary)
- `markdown-negotiation` No Markdown response for Accept: text/markdown — [geo/markdown-negotiation](https://void-design.vercel.app/rules/geo/markdown-negotiation)
- `llms-txt-error` /llms.txt returns a server error — [geo/llms-txt-error](https://void-design.vercel.app/rules/geo/llms-txt-error)
- `llms-txt-invalid` /llms.txt doesn't follow the llms.txt format — [geo/llms-txt-invalid](https://void-design.vercel.app/rules/geo/llms-txt-invalid)
- `llms-txt-broken-links` /llms.txt links to URLs that fail — [geo/llms-txt-broken-links](https://void-design.vercel.app/rules/geo/llms-txt-broken-links)
- `llms-txt-not-linked` llms.txt exists but isn't linked from the home page — [geo/llms-txt-not-linked](https://void-design.vercel.app/rules/geo/llms-txt-not-linked)

Detected by `void geo` and `void audit`. Explain it in a terminal: `void rules geo/llms-txt-missing`
