---
title: "llms.txt for Nuxt Sites"
description: "Generate a spec-compliant llms.txt for your Nuxt docs with nuxt-llms, one config block and it builds at deploy time."
canonical_url: "https://nuxtseo.com/learn-seo/nuxt/controlling-crawlers/llms-txt"
last_updated: "2026-07-16"
---

<key-takeaways>

- llms.txt is a Markdown file at `/llms.txt` that gives AI tools a curated entry point to your docs instead of your whole site
- Install `nuxt-llms` and it generates `/llms.txt` and `/llms-full.txt` automatically from your config or Nuxt Content collections
- General search crawlers (GPTBot, ClaudeBot, PerplexityBot) don't request llms.txt today; the standard mainly serves AI coding assistants and MCP servers

</key-takeaways>

The [llms.txt standard](https://llmstxt.org/) gives AI assistants a concise summary of your site's content. It's robots.txt for AI inference: instead of blocking access, it points AI tools at your most useful documentation so they don't have to guess what matters in a context window too small for your whole site.

Jeremy Howard proposed the standard in September 2024. Adoption today is concentrated in AI coding assistants (Claude Code, Codex, Cursor) and MCP servers that explicitly fetch the file, rather than general-purpose AI crawlers.

Nuxt has dedicated support via [nuxt-llms](https://github.com/harlan-zw/nuxt-llms): automatic generation from your config or content.

## Quick Setup

Install the module:

```bash
npx nuxi module add nuxt-llms
```

Configure in `nuxt.config.ts`:

```ts [nuxt.config.ts]
export default defineNuxtConfig({
  modules: ['nuxt-llms'],
  llms: {
    domain: 'https://example.com',
    title: 'My Nuxt App',
    description: 'Documentation for My Nuxt App',
    sections: [
      {
        title: 'Getting Started',
        links: [
          { title: 'Installation', href: '/docs/installation' },
          { title: 'Configuration', href: '/docs/configuration' }
        ]
      }
    ]
  }
})
```

The module generates `/llms.txt` and `/llms-full.txt` automatically at build time.

## When llms.txt Matters

llms.txt solves a specific problem: LLM context windows are too small to process entire websites. Your Nuxt documentation might be thousands of pages, but an AI assistant needs a curated entry point.

**llms.txt is useful for:**

- Documentation sites (API references, tutorials, guides)
- Open source projects
- Technical blogs with evergreen content
- Sites where AI assistants frequently reference your content

**llms.txt is overkill for:**

- Marketing sites without technical docs
- E-commerce product pages
- News sites with time-sensitive content
- Small sites with fewer than 10 pages

## llms.txt vs robots.txt

<table>
<thead>
  <tr>
    <th>
      Feature
    </th>
    
    <th>
      robots.txt
    </th>
    
    <th>
      llms.txt
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      Purpose
    </td>
    
    <td>
      Block/allow crawling
    </td>
    
    <td>
      Guide AI to useful content
    </td>
  </tr>
  
  <tr>
    <td>
      Format
    </td>
    
    <td>
      Custom syntax
    </td>
    
    <td>
      Markdown
    </td>
  </tr>
  
  <tr>
    <td>
      When used
    </td>
    
    <td>
      Training data collection
    </td>
    
    <td>
      Inference (answering questions)
    </td>
  </tr>
  
  <tr>
    <td>
      Crawler support
    </td>
    
    <td>
      All major crawlers
    </td>
    
    <td>
      Limited, AI coding tools
    </td>
  </tr>
  
  <tr>
    <td>
      Required
    </td>
    
    <td>
      No
    </td>
    
    <td>
      No
    </td>
  </tr>
</tbody>
</table>

AI crawlers don't request llms.txt during inference today. GPTBot, ClaudeBot, and PerplexityBot rely on standard crawling and pre-built indexes, not llms.txt. The primary use case is AI coding assistants (Claude Code, Codex, Cursor) and MCP servers that explicitly fetch llms.txt to understand project documentation.

## File Format

llms.txt uses a structured Markdown format. It only requires the H1 title. Everything else is optional.

```markdown [/llms.txt]
# Nuxt SEO Documentation

> Complete SEO toolkit for Nuxt applications. Handles sitemaps, robots.txt, OG images, and schema.org.

Key modules: sitemap, robots, og-image, schema-org, seo-utils.

## Getting Started

- [Installation](https://nuxtseo.com/docs/nuxt-seo/getting-started/introduction): Install the full Nuxt SEO module
- [Site Config](https://nuxtseo.com/docs/site-config/getting-started/introduction): Configure your site URL and name

## Modules

- [Sitemap](https://nuxtseo.com/docs/sitemap/getting-started/introduction): Automatic sitemap generation
- [Robots](https://nuxtseo.com/docs/robots/getting-started/introduction): robots.txt and meta robots
- [OG Image](https://nuxtseo.com/docs/og-image/getting-started/introduction): Dynamic social images

## Optional

- [Changelog](https://github.com/harlan-zw/nuxt-seo/blob/main/CHANGELOG.md)
```

The H1 title is the only required element, the name of your project or site. Everything else is optional:

- **Blockquote**: brief summary with key information for understanding the rest of the file.
- **Body content**: paragraphs, lists, or any Markdown except headings, giving context about the project.
- **H2 sections**: file lists with links to detailed documentation. Each entry is a Markdown link with an optional description:

```markdown
- [Link Text](https://url): Optional description of what this page covers
```

- **Optional section**: an H2 titled "Optional" marks content that AI can skip if context is limited.

## nuxt-llms Configuration

### Manual Sections

Define sections explicitly when you want full control:

```ts [nuxt.config.ts]
export default defineNuxtConfig({
  modules: ['nuxt-llms'],
  llms: {
    domain: 'https://example.com',
    title: 'My Nuxt App',
    description: 'A Nuxt 3 application with TypeScript.',
    sections: [
      {
        title: 'Documentation',
        links: [
          { title: 'API Reference', href: '/docs/api' },
          { title: 'Components', href: '/docs/components' },
          { title: 'Getting Started', href: '/docs/setup' }
        ]
      },
      {
        title: 'Optional',
        links: [
          { title: 'Changelog', href: '/changelog' }
        ]
      }
    ]
  }
})
```

### With Nuxt Content

If you're using Nuxt Content, nuxt-llms can generate sections from your content automatically:

```ts [nuxt.config.ts]
export default defineNuxtConfig({
  modules: ['@nuxt/content', 'nuxt-llms'],
  llms: {
    domain: 'https://example.com',
    title: 'My Docs',
    // Automatically generates from /content/docs
    content: {
      collections: ['docs']
    }
  }
})
```

### Extended Version

The module generates both `/llms.txt` (concise) and `/llms-full.txt` (complete) automatically. AI tools can choose based on their context limits.

```ts [nuxt.config.ts]
export default defineNuxtConfig({
  llms: {
    // ... config
    full: {
      // Include full page content in llms-full.txt
      includeContent: true
    }
  }
})
```

## Testing Your llms.txt

1. **Check it loads**: visit `https://yoursite.com/llms.txt`
2. **Validate format**: ensure the H1 exists and links are absolute URLs
3. **Test with AI**: paste your llms.txt into [ChatGPT](https://chatgpt.com) or Claude and ask about your docs

Use the [mdream llms.txt validator](https://mdream.dev/tools/llms-txt/validator) to check your file for format issues, or browse the [mdream llms.txt explorer](https://mdream.dev/llms-txt) to see how other projects structure theirs.

## Who Uses llms.txt?

The standard has [2,500+ GitHub stars](https://github.com/AnswerDotAI/llms-txt) and growing adoption among documentation sites. Notable implementers include Answer.AI and fast.ai, whose nbdev projects generate llms.txt by default.

Adoption by AI providers remains limited:

- No major AI crawler (GPTBot, ClaudeBot, PerplexityBot) requests llms.txt during inference
- MCP servers and AI coding tools can use it when explicitly configured
- Documentation frameworks (VitePress, Docusaurus, Nuxt) generate it automatically

The spec is still emerging, so implementing llms.txt today is forward-looking: it positions your docs for AI integration as adoption grows.

## llms.txt and GEO

llms.txt complements [Generative Engine Optimization](/learn-seo/nuxt/launch-and-listen/ai-optimized-content) but serves a different purpose:

<table>
<thead>
  <tr>
    <th>
      GEO
    </th>
    
    <th>
      llms.txt
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      Optimizes content for AI citations
    </td>
    
    <td>
      Provides structured entry point to docs
    </td>
  </tr>
  
  <tr>
    <td>
      Targets AI search (ChatGPT, <a href="https://perplexity.ai" rel="nofollow">
        Perplexity
      </a>
      
      )
    </td>
    
    <td>
      Targets AI coding tools and MCP servers
    </td>
  </tr>
  
  <tr>
    <td>
      Uses schema.org, content structure
    </td>
    
    <td>
      Uses Markdown file format
    </td>
  </tr>
  
  <tr>
    <td>
      Improves visibility in AI responses
    </td>
    
    <td>
      Improves AI understanding of your project
    </td>
  </tr>
</tbody>
</table>

For maximum AI visibility, implement both:

1. Schema.org structured data for GEO (use [nuxt-schema-org](/docs/schema-org/getting-started/introduction))
2. llms.txt for documentation discovery (use nuxt-llms)
3. Content structure optimized for extraction

## Full Nuxt SEO Stack

For complete AI and search optimization, use the full Nuxt SEO module:

<module-card className="w-full" slug="nuxt-seo">



</module-card>

This includes automatic schema.org, sitemaps, robots.txt, and OG images, signals that help both traditional search and AI search understand your content.

## Checklist

<checklist id="nuxt-llms-txt">

- Install nuxt-llms and configure `domain`, `title`, and `description`
- Confirm `/llms.txt` and `/llms-full.txt` build and load correctly
- Write a clear H1 title and blockquote summary
- Organize links into H2 sections, with an "Optional" section for skippable content
- Validate the file with the mdream llms.txt validator

</checklist>
