Guides

llms.txt Generation

Last updated by
Harlan Wilton
in feat: `contentSignal` module config.

Nuxt AI Ready generates /llms.txt and /llms-full.txt during prerender following the llms.txt standard.

/llms.txt

The llms.txt file provides a concise overview of your site for AI systems. It's generated on build based on the inferred metadata and structure of your pages.

The structure schema looks like the below, for a live example see nuxtseo.com/llms.txt:

# <Site Title>

> <Site Description>

## Pages

- [Page Title](/page-link): Meta Description
  ...

## <...Section Title>

- [<Section Link Title>](/section-link): <Section Link Description>
  ...
  
<...Section Notes>

You can customize the sections and notes via the module configuration (see below).

Configuration

Add custom sections:

nuxt.config.ts
export default defineNuxtConfig({
  aiReady: {
    llmsTxt: {
      sections: [
        {
          title: 'Getting Started',
          description: 'Learn how to use our API',
          links: [
            {
              title: 'API Documentation',
              href: '/docs/api',
              description: 'Complete API reference'
            }
          ]
        }
      ],
      notes: 'Built with Nuxt AI Ready'
    }
  }
})

Full config: /docs/ai-ready/api/config

Hook for Advanced Customization

Modify content before writing:

nuxt.config.ts
export default defineNuxtConfig({
  hooks: {
    'ai-ready:llms-txt': (payload) => {
      payload.content += '\n\n## Custom APIs\n\n'
    }
  }
})

Hook details: /docs/ai-ready/api/nuxt-hooks#ai-ready-llms-txt

/llms-full.txt

The llms-full.txt file contains all of your indexable pages content converted to Markdown. This is useful for AI systems that want to ingest the full content of your site for training or retrieval-augmented generation (RAG).

You shouldn't need to modify this file directly, but you can use the same hook above to append additional information if needed.

export default defineNuxtConfig({
  hooks: {
    'ai-ready:llms-txt': (payload) => {
      payload.fullContent += '\n\n## Something Else\n\n'
    }
  }
})
Did this page help you?