Index of every page on this site: llms.txt

llms.txt for Nuxt Sites

Publish and verify llms.txt for your Nuxt documentation with Nuxt AI Ready. Understand the proposal and its search limits.
Harlan Wilton5 mins read Published Updated
What you'll learn
  • llms.txt gives agents a site overview and links to useful documentation. It remains a proposal.
  • Nuxt AI Ready can generate the index and a full-content export from prerendered pages.
  • Google Search ignores llms.txt for visibility and rankings. Other systems can choose to use it.

When an agent reads your documentation, it needs to find the right pages. The llms.txt proposal gives it a small Markdown entry point with context and links. The detail stays in the linked pages, which the agent can fetch when needed.

Publishing the file does not guarantee that an assistant will read it. It also does not improve Google Search rankings, according to Google's AI optimization guidance. Use it when you want to provide an explicit entry point to your public documentation.

Quick Setup

If your app uses @nuxtjs/seo v6, you already have Nuxt AI Ready 3. Skip the install step and keep @nuxtjs/seo in modules.

Otherwise, add Nuxt AI Ready to your Nuxt 4 app on its own:

npx nuxt module add nuxt-ai-ready

This example uses Nuxt AI Ready 3 and a static deployment. Use a Node version supported by Nuxt. Node 24 provides the SQLite driver needed for this example.

Create a page at app/pages/docs/installation.vue:

app/pages/docs/installation.vue
<script setup lang="ts">
useSeoMeta({ title: 'Installation', description: 'Install the example project.' })
</script>

<template>
  <main>
    <h1>Installation</h1>
    <p>Install and configure the example project.</p>
  </main>
</template>

Then configure the module and prerender that page:

nuxt.config.ts
export default defineNuxtConfig({
  // With @nuxtjs/seo v6, list '@nuxtjs/seo' here instead.
  modules: ['nuxt-ai-ready'],
  site: {
    url: 'https://example.com',
    name: 'Example Docs',
    description: 'Documentation for the example project.',
  },
  aiReady: {
    llmsTxt: {
      markdownLinks: true,
      sections: [{
        title: 'Getting Started',
        links: [{
          title: 'Installation',
          href: 'https://example.com/docs/installation.md',
          description: 'Install and configure the example project.',
        }],
      }],
    },
  },
  nitro: {
    prerender: { routes: ['/docs/installation'] },
  },
})

Replace https://example.com with your production origin. The custom link points to the Markdown version of the page you created. The site configuration supplies the title, description, and canonical origin.

Generate the site:

pnpm exec nuxt generate

Inspect .output/public/llms.txt, .output/public/llms-full.txt, and .output/public/docs/installation.md. Serve the generated site locally before checking their HTTP responses.

When llms.txt Matters

Documentation is a useful starting point: you can highlight installation instructions, API references, and version-specific guidance. The proposal also supports other public information that agents need to understand a site. Choose links that answer likely reader questions rather than copying every URL into a manual list.

If no tool in your workflow uses llms.txt, you may not need a separate overview. Keep the public pages useful and accessible regardless.

llms.txt vs robots.txt

FilePurposeFormat
robots.txtGive crawlers instructions about which URLs they may crawlCrawler directives
llms.txtGive agents context and links to useful informationMarkdown

llms.txt does not control access or make content private. Use robots.txt for crawler instructions and application authentication for private content.

File Format

The proposal requires an H1 containing the project or site name. A summary, heading-free context, and H2 link lists can follow it:

/llms.txt
# Example Docs

> Documentation for the example project.

Use the installation guide before the API reference.

## Getting Started

- [Installation](https://example.com/docs/installation.md): Install and configure the project.

## Optional

- [Changelog](https://example.com/changelog.md): Release history.

This is illustrative output. Publish only links that exist on your site. The Optional section groups links an agent can skip when it needs less context.

Version 2 of the proposal also allows scoped files such as /docs/llms.txt. The most specific file covers the pages beneath its path. It recommends Markdown page variants and discovery links with rel="alternate" and rel="describedby". See the current proposal for the full format.

Nuxt AI Ready Configuration

The current module uses aiReady.llmsTxt for file configuration. Site metadata belongs in site, as shown above. The following examples use Nuxt AI Ready, so replace older nuxt-llms configuration when following this guide. If you use @nuxtjs/seo v6, keep @nuxtjs/seo in modules instead of nuxt-ai-ready.

Manual Sections

Custom sections let you choose the links and their descriptions. For secondary links, set optional: true on the section:

nuxt.config.ts
export default defineNuxtConfig({
  modules: ['nuxt-ai-ready'],
  aiReady: {
    llmsTxt: {
      sections: [{
        title: 'Release History',
        optional: true,
        links: [{
          title: 'Changelog',
          href: 'https://example.com/changelog.md',
        }],
      }],
    },
  },
})

If your changelog has a Markdown page, replace the example URL with its address. The module combines optional section links under one ## Optional heading.

With Nuxt Content

If your pages use Nuxt Content, prerender their public routes so they enter the generated output. Nuxt AI Ready discovers rendered pages and sitemap routes rather than using the older llms.content.collections example.

Custom sections and discovered page links are separate. markdownLinks: true points eligible generated page links at Markdown versions. Write your manual section URLs explicitly, as the quick setup does. See llms.txt Generation for discovery details.

Extended Version

llms-full.txt contains full page content rather than an overview of links. It is an export provided by the module, outside the llms.txt proposal.

Prerendering includes processed pages in the static export. A plain server build does not guarantee that all page bodies appear there. On a server, the full export reads stored pages; ordinary page visits do not populate that index. For server deployments, follow runtime indexing.

Testing Your llms.txt

On your local static preview, request the generated files:

curl -i http://localhost:3000/llms.txt
curl -i http://localhost:3000/docs/installation.md
curl -i http://localhost:3000/llms-full.txt

Use the port reported by your preview server. Each request should return 200 and readable text. The index should show your site name and installation link. The Markdown page and full export should contain the installation instructions. Check every manual link against the deployed origin too.

You can then give an agent the index URL and ask a question answered by one of its links. That checks your chosen workflow; it does not prove automatic discovery by other assistants.

Who Uses llms.txt?

The proposal describes agents reading the overview and following relevant links on demand. It lists documentation platforms and integrations that publish or consume these files. Check a client's own documentation before relying on automatic fetching. A site publishing llms.txt does not establish that every crawler or assistant uses it.

llms.txt and GEO

If you want AI Search Optimization, check the search provider's requirements before changing your documentation format. Google states that llms.txt neither helps nor harms Search visibility or rankings. That guidance covers Google Search, including its generative AI features. It does not establish how other services consume the file.

Full Nuxt SEO Stack

Use Nuxt AI Ready for this documentation workflow. @nuxtjs/seo v6 includes Nuxt AI Ready and the sitemap, robots.txt, metadata, and structured data modules. See the Nuxt SEO docs for the broader site setup. Choose the modules your site needs.

Checklist

Checklist
  • Configure the site origin, name, and description.
  • Prerender the public pages included in your static export.
  • Confirm the index, Markdown pages, and full export load as readable text.
  • Check every manual link and its page content.
  • Keep crawler permissions separate from documentation links.
Was this page helpful?