llms.txt for Vue Sites · Nuxt SEO

[NuxtSEO](https://nuxtseo.com/ "Home")

- [Modules](https://nuxtseo.com/docs/nuxt-seo/getting-started/introduction)
- [Tools](https://nuxtseo.com/tools)
- [Pro](https://nuxtseo.com/pro)
- [Learn SEO](https://nuxtseo.com/learn-seo/nuxt) [Releases](https://nuxtseo.com/releases)

[1.4K](https://github.com/harlan-zw/nuxt-seo)

[Nuxt SEO on GitHub](https://github.com/harlan-zw/nuxt-seo)

Learn SEO

Master search optimization

Nuxt

 Vue

[SEO Checklist](https://nuxtseo.com/learn-seo/checklist) [Pre-Launch Warmup](https://nuxtseo.com/learn-seo/pre-launch-warmup) [Backlinks & Authority](https://nuxtseo.com/learn-seo/backlinks)

[Mastering Meta](https://nuxtseo.com/learn-seo/vue/mastering-meta)

- [Titles](https://nuxtseo.com/learn-seo/vue/mastering-meta/titles)
- [Meta Description](https://nuxtseo.com/learn-seo/vue/mastering-meta/descriptions)
- [Social Sharing](https://nuxtseo.com/learn-seo/vue/mastering-meta/social-sharing)
- [Schema.org](https://nuxtseo.com/learn-seo/vue/mastering-meta/schema-org)
- [Migrating vue-meta](https://nuxtseo.com/learn-seo/vue/mastering-meta/migrating-vue-meta)
- [Rich Results](https://nuxtseo.com/learn-seo/vue/mastering-meta/rich-results)
- [Image Alt Text](https://nuxtseo.com/learn-seo/vue/mastering-meta/alt-text)

[ Controlling Crawlers](https://nuxtseo.com/learn-seo/vue/controlling-crawlers)

- [Robots.txt](https://nuxtseo.com/learn-seo/vue/controlling-crawlers/robots-txt)
- [Sitemaps](https://nuxtseo.com/learn-seo/vue/controlling-crawlers/sitemaps)
- [Robot Meta Tag](https://nuxtseo.com/learn-seo/vue/controlling-crawlers/meta-tags)
- [Canonical Link Tag](https://nuxtseo.com/learn-seo/vue/controlling-crawlers/canonical-urls)
- [HTTP Redirects](https://nuxtseo.com/learn-seo/vue/controlling-crawlers/redirects)
- [Duplicate Content](https://nuxtseo.com/learn-seo/vue/controlling-crawlers/duplicate-content)
- [llms.txt](https://nuxtseo.com/learn-seo/vue/controlling-crawlers/llms-txt)

[ SPA SEO](https://nuxtseo.com/learn-seo/vue/spa)

- [Prerendering](https://nuxtseo.com/learn-seo/vue/spa/prerendering)
- [Dynamic Rendering](https://nuxtseo.com/learn-seo/vue/spa/dynamic-rendering)
- [Hydration & SEO](https://nuxtseo.com/learn-seo/vue/spa/hydration)

[ Routes & Rendering](https://nuxtseo.com/learn-seo/vue/routes-and-rendering)

- [URL Structure](https://nuxtseo.com/learn-seo/vue/routes-and-rendering/url-structure)
- [Pagination](https://nuxtseo.com/learn-seo/vue/routes-and-rendering/pagination)
- [Trailing Slashes](https://nuxtseo.com/learn-seo/vue/routes-and-rendering/trailing-slashes)
- [Query Parameters](https://nuxtseo.com/learn-seo/vue/routes-and-rendering/query-parameters)
- [Hreflang & i18n](https://nuxtseo.com/learn-seo/vue/routes-and-rendering/i18n)
- [404 Pages](https://nuxtseo.com/learn-seo/vue/routes-and-rendering/404-pages)
- [Dynamic Routes](https://nuxtseo.com/learn-seo/vue/routes-and-rendering/dynamic-routes)
- [Internal Linking](https://nuxtseo.com/learn-seo/vue/routes-and-rendering/internal-linking)
- [Rendering Modes](https://nuxtseo.com/learn-seo/vue/routes-and-rendering/rendering)
- [Programmatic SEO](https://nuxtseo.com/learn-seo/vue/routes-and-rendering/programmatic-seo)
- [Security](https://nuxtseo.com/learn-seo/vue/routes-and-rendering/security)

[ SSR Frameworks](https://nuxtseo.com/learn-seo/vue/ssr-frameworks)

- [Nuxt vs Quasar](https://nuxtseo.com/learn-seo/vue/ssr-frameworks/nuxt-vs-quasar)
- [Custom Vite SSR](https://nuxtseo.com/learn-seo/vue/ssr-frameworks/vite-ssr)
- [VitePress SEO](https://nuxtseo.com/learn-seo/vue/ssr-frameworks/vitepress)

[ Launch & Listen](https://nuxtseo.com/learn-seo/vue/launch-and-listen)

- [Getting Indexed](https://nuxtseo.com/learn-seo/vue/launch-and-listen/going-live)
- [Google Search Console](https://nuxtseo.com/learn-seo/vue/launch-and-listen/search-console)
- [Core Web Vitals](https://nuxtseo.com/learn-seo/vue/launch-and-listen/core-web-vitals)
- [Indexing Issues](https://nuxtseo.com/learn-seo/vue/launch-and-listen/indexing-issues)
- [SEO Monitoring](https://nuxtseo.com/learn-seo/vue/launch-and-listen/seo-monitoring)
- [Site Migration](https://nuxtseo.com/learn-seo/vue/launch-and-listen/site-migration)
- [IndexNow](https://nuxtseo.com/learn-seo/vue/launch-and-listen/indexnow)
- [Debugging](https://nuxtseo.com/learn-seo/vue/launch-and-listen/debugging)
- [AI Search Optimization](https://nuxtseo.com/learn-seo/vue/launch-and-listen/ai-optimized-content)

1. [Learn SEO for Vue](https://nuxtseo.com/learn-seo)
2.
3. [Controlling Crawlers](https://nuxtseo.com/learn-seo/vue/controlling-crawlers)
4.
5. [Llms Txt](https://nuxtseo.com/learn-seo/vue/controlling-crawlers/llms-txt)

# llms.txt for Vue Sites

Help AI assistants understand your Vue documentation with the llms.txt standard. Learn the file format, implementation, and when it matters.

[![Harlan Wilton](https://avatars.githubusercontent.com/u/5326365?v=4)Harlan Wilton](https://x.com/harlan-zw)8 mins read Published Dec 17, 2025 Updated Jan 29, 2026

The [llms.txt standard](https://llmstxt.org/) provides AI assistants with a concise summary of your site's content. Think of it as robots.txt for AI inference. not blocking access, but guiding AI to your most useful documentation.

[Jeremy Howard](https://github.com/AnswerDotAI/llms-txt) proposed the standard in September 2024. Unlike robots.txt, llms.txt uses Markdown and targets AI tools at inference time rather than crawlers at training time.

## [When llms.txt Matters](#when-llmstxt-matters)

llms.txt solves a specific problem: LLM context windows are too small to process entire websites. Your Vue 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](#llmstxt-vs-robotstxt)

| Feature | robots.txt | llms.txt |
| --- | --- | --- |
| Purpose | Block/allow crawling | Guide AI to useful content |
| Format | Custom syntax | Markdown |
| When used | Training data collection | Inference (answering questions) |
| Crawler support | All major crawlers | Limited. AI coding tools |
| Required | No | No |

**Important:** [AI crawlers don't currently request llms.txt](https://llmstxt.org/) during inference. GPTBot, ClaudeBot, and PerplexityBot use pre-built datasets and respect robots.txt, not llms.txt.

The primary use case today is AI coding assistants (Cursor, Claude Code, Windsurf) and MCP servers that explicitly fetch llms.txt to understand project documentation.

## [File Format](#file-format)

llms.txt uses a structured Markdown format. It only requires an H1 title; everything else is optional.

/llms.txt

```
# Vue Router Documentation

> Vue Router is the official router for Vue.js. It deeply integrates with Vue.js core to make building Single Page Applications easy.

Key concepts: route matching, nested routes, navigation guards, route meta fields.

## Getting Started

- [Installation](https://router.vuejs.org/installation.html): Install Vue Router via [npm](https://npmjs.com)
- [Quick Start](https://router.vuejs.org/guide/): Basic router setup
- [Dynamic Routing](https://router.vuejs.org/guide/essentials/dynamic-matching.html): Route params and patterns

## API Reference

- [Router Instance](https://router.vuejs.org/api/#router-instance-methods): push, replace, go, back, forward
- [Route Object](https://router.vuejs.org/api/#the-route-object): params, query, hash, matched
- [Navigation Guards](https://router.vuejs.org/guide/advanced/navigation-guards.html): beforeEach, beforeResolve, afterEach

## Optional

- [Changelog](https://github.com/vuejs/router/blob/main/CHANGELOG.md)
- [Migration from Vue 2](https://router.vuejs.org/guide/migration/)
```

### [Required Sections](#required-sections)

**H1 Title**: The only required element. Name of your project or site.

### [Optional Sections](#optional-sections)

**Blockquote**: Brief summary with key information for understanding the rest of the file.

**Body content**: Paragraphs, lists, or any Markdown except headings. Provides context about the project.

**H2 sections**: File lists with links to detailed documentation. Each entry is a Markdown link with optional description:

```
- [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.

## [Implementation](#implementation)

### [Static File](#static-file)

The simplest approach: create a static file in your public directory.

```
public/
  llms.txt
```

public/llms.txt

```
# My Vue App

> A Vue 3 application with TypeScript and [Vite](https://vite.dev).

## Documentation

- [API Reference](/docs/api): REST API endpoints
- [Components](/docs/components): Vue component library
- [Getting Started](/docs/setup): Installation and configuration

## Optional

- [Changelog](/changelog)
```

Your file will be available at `https://yoursite.com/llms.txt`.

### [Extended Version](#extended-version)

The spec also supports `/llms-full.txt` for complete documentation when context limits aren't a concern:

public/llms-full.txt

```
# My Vue App - Full Documentation

> Complete documentation including all API endpoints, components, and guides.

[Full content of your docs here, potentially thousands of lines]
```

AI tools can choose between the concise `/llms.txt` or complete `/llms-full.txt` based on their needs.

If you don't want to build your own generation script, the [mdream llms.txt generator](https://mdream.dev/tools/llms-txt/generator) can create one from any URL.

### [Build-Time Generation](#build-time-generation)

For large documentation sites, generate llms.txt from your content at build time:

scripts/generate-llms-txt.ts

```
import { readdir, readFile, writeFile } from 'node:fs/promises'
import { join } from 'node:path'

interface DocPage {
  title: string
  path: string
  description?: string
}

async function generateLlmsTxt() {
  const docsDir = './docs'
  const pages: DocPage[] = []

  // Scan docs directory for markdown files
  const files = await readdir(docsDir, { recursive: true })

  for (const file of files) {
    if (!file.endsWith('.md'))
      continue

    const content = await readFile(join(docsDir, file), 'utf-8')
    const titleMatch = content.match(/^#\s+(\S.*)$/m)
    const descMatch = content.match(/^>\s+(\S.*)$/m)

    if (titleMatch) {
      pages.push({
        title: titleMatch[1],
        path: \`/docs/${file.replace('.md', '')}\`,
        description: descMatch?.[1]
      })
    }
  }

  // Generate llms.txt content
  const llmsTxt = \`# My Vue Documentation

> API reference and guides for My Vue App.

## Documentation

${pages.map(p => \`- [${p.title}](${p.path})${p.description ? \`: ${p.description}\` : ''}\`).join('\n')}
\`

  await writeFile('./public/llms.txt', llmsTxt)
}

generateLlmsTxt()
```

Add to your build process:

package.json

```
{
  "scripts": {
    "build": "npm run generate:llms && vite build",
    "generate:llms": "tsx scripts/generate-llms-txt.ts"
  }
}
```

## [Framework Plugins](#framework-plugins)

Several documentation frameworks have llms.txt plugins:

### [VitePress](#vitepress)

```
npm install vitepress-plugin-llms
```

.vitepress/config.ts

```
import { defineConfig } from 'vitepress'
import llmstxt from 'vitepress-plugin-llms'

export default defineConfig({
  vite: {
    plugins: [llmstxt()]
  }
})
```

### [Docusaurus](#docusaurus)

```
npm install docusaurus-plugin-llms
```

docusaurus.config.js

```
export default {
  plugins: ['docusaurus-plugin-llms']
}
```

## [Testing Your llms.txt](#testing-your-llmstxt)

1. **Check it loads**: Visit `https://yoursite.com/llms.txt`
2. **Validate format**: Ensure 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/validate) to check your file for format issues, or browse the [mdream llms.txt hub](https://mdream.dev/hub) to see how other projects structure theirs.

## [Who Uses llms.txt?](#who-uses-llmstxt)

The standard has seen significant adoption by 2026, with over **800,000 sites** (including major docs like Stripe and [Cloudflare](https://cloudflare.com)) implementing it.

However, adoption by **general search crawlers** remains limited. As of Jan 2026:

- **No major AI training crawler** (GPTBot, ClaudeBot) requests llms.txt for discovery.
- **Primary Consumers**: AI Coding Assistants (Cursor, Windsurf, Claude Code) and MCP Servers are the main users. They use it to "learn" a library quickly.
- **Documentation frameworks** (VitePress, Docusaurus) generate it automatically.

The spec is still emerging. Implementing llms.txt today is essential for developer-focused tools but optional for general SEO.

## [llms.txt and GEO](#llmstxt-and-geo)

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

| GEO | llms.txt |
| --- | --- |
| Optimizes content for AI citations | Provides structured entry point to docs |
| Targets AI search (ChatGPT, [Perplexity](https://perplexity.ai)) | Targets AI coding tools and MCP servers |
| Uses schema.org, content structure | Uses Markdown file format |
| Improves visibility in AI responses | Improves AI understanding of your project |

For maximum AI visibility, implement both:

1. Schema.org structured data for GEO
2. llms.txt for documentation discovery
3. Content structure optimized for extraction

## [Using Nuxt?](#using-nuxt)

Nuxt has dedicated support for llms.txt via [nuxt-llms](https://github.com/harlan-zw/nuxt-llms):

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' }
        ]
      }
    ]
  }
})
```

[Learn more about AI optimization in Nuxt →](https://nuxtseo.com/learn-seo/nuxt/launch-and-listen/ai-optimized-content)

[The 2026 SEO Checklist for Nuxt & Vue Pre-launch setup, post-launch verification, and ongoing monitoring. Interactive checklist with links to every guide.](https://nuxtseo.com/learn-seo/checklist) [Haven't launched yet? Start with the Pre-Launch Warmup](https://nuxtseo.com/learn-seo/pre-launch-warmup)

---

[Duplicate Content Duplicate content wastes crawl budget and splits ranking signals. Here's how to find and fix it with canonical tags, redirects, and parameter handling.](https://nuxtseo.com/learn-seo/vue/controlling-crawlers/duplicate-content) [SPA SEO SEO for SPAs explained: why single page applications struggle with search engines and how to fix it. Learn when you need SSR, when prerendering works, and when client-side rendering is fine.](https://nuxtseo.com/learn-seo/vue/spa)

On this page

- [When llms.txt Matters](#when-llmstxt-matters)
- [llms.txt vs robots.txt](#llmstxt-vs-robotstxt)
- [File Format](#file-format)
- [Implementation](#implementation)
- [Framework Plugins](#framework-plugins)
- [Testing Your llms.txt](#testing-your-llmstxt)
- [Who Uses llms.txt?](#who-uses-llmstxt)
- [llms.txt and GEO](#llmstxt-and-geo)
- [Using Nuxt?](#using-nuxt)

[GitHub](https://github.com/harlan-zw/nuxt-seo) [ Discord](https://discord.com/invite/275MBUBvgP)

### [NuxtSEO](https://nuxtseo.com/ "Home")

- [Getting Started](https://nuxtseo.com/docs/nuxt-seo/getting-started/introduction)
- [MCP](https://nuxtseo.com/docs/nuxt-seo/guides/mcp)

Modules

- [Robots](https://nuxtseo.com/docs/robots/getting-started/introduction)
- [Sitemap](https://nuxtseo.com/docs/sitemap/getting-started/introduction)
- [OG Image](https://nuxtseo.com/docs/og-image/getting-started/introduction)
- [Schema.org](https://nuxtseo.com/docs/schema-org/getting-started/introduction)
- [Link Checker](https://nuxtseo.com/docs/link-checker/getting-started/introduction)
- [SEO Utils](https://nuxtseo.com/docs/seo-utils/getting-started/introduction)
- [Site Config](https://nuxtseo.com/docs/site-config/getting-started/introduction)
- [Skew Protection](https://nuxtseo.com/docs/skew-protection/getting-started/introduction)
- [AI Ready](https://nuxtseo.com/docs/ai-ready/getting-started/introduction)

### [NuxtSEO Pro](https://nuxtseo.com/pro "Nuxt SEO Pro")

- [Getting Started](https://nuxtseo.com/pro)
- [Dashboard](https://nuxtseo.com/pro/dashboard)
- [Pro MCP](https://nuxtseo.com/pro/docs/getting-started/mcp-setup)

### [Learn SEO](https://nuxtseo.com/learn-seo "Learn SEO")

Nuxt

- [Mastering Meta](https://nuxtseo.com/learn-seo/nuxt/mastering-meta)
- [Controlling Crawlers](https://nuxtseo.com/learn-seo/nuxt/controlling-crawlers)
- [Launch & Listen](https://nuxtseo.com/learn-seo/nuxt/launch-and-listen)
- [Routes & Rendering](https://nuxtseo.com/learn-seo/nuxt/routes-and-rendering)
- [Staying Secure](https://nuxtseo.com/learn-seo/nuxt/routes-and-rendering/security)

Vue

- [Vue SEO Guide](https://nuxtseo.com/learn-seo/vue)
- [Mastering Meta](https://nuxtseo.com/learn-seo/vue/mastering-meta)
- [Controlling Crawlers](https://nuxtseo.com/learn-seo/vue/controlling-crawlers)
- [SPA SEO](https://nuxtseo.com/learn-seo/vue/spa)
- [SSR Frameworks](https://nuxtseo.com/learn-seo/vue/ssr-frameworks)
- [SEO Checklist](https://nuxtseo.com/learn-seo/checklist)
- [Pre-Launch Warmup](https://nuxtseo.com/learn-seo/pre-launch-warmup)
- [Backlinks & Authority](https://nuxtseo.com/learn-seo/backlinks)

### [Tools](https://nuxtseo.com/tools "SEO Tools")

- [Social Share Debugger](https://nuxtseo.com/tools/social-share-debugger)
- [Robots.txt Generator](https://nuxtseo.com/tools/robots-txt-generator)
- [Meta Tag Checker](https://nuxtseo.com/tools/meta-tag-checker)
- [HTML to Markdown](https://nuxtseo.com/tools/html-to-markdown)
- [XML Sitemap Validator](https://nuxtseo.com/tools/xml-sitemap-validator)
- [Schema.org Validator](https://nuxtseo.com/tools/schema-validator)
- [Keyword Idea Generator](https://nuxtseo.com/tools/keyword-generator)
- [Keyword Research](https://nuxtseo.com/tools/keyword-research)
- [SERP Analyzer](https://nuxtseo.com/tools/serp-analyzer)
- [Domain Rankings](https://nuxtseo.com/tools/domain-rankings)

Copyright © 2023-2026 Harlan Wilton - [MIT License](https://github.com/harlan-zw/nuxt-seo/blob/main/license) · [mdream](https://mdream.dev)