## Keine First-Party-Konvention (noch nicht)

Next.js bringt Metadaten-Dateikonventionen für `robots.txt` und `sitemap.xml` mit — du exportierst eine Funktion aus `app/robots.ts`, und das Framework liefert die Datei aus. **Für llms.txt existiert keine solche Konvention** (es gibt einen offenen Feature-Request, vercel/next.js-Diskussion #80692), also verdrahtest du es selbst. Zwei Muster, beide trivial:

## Muster 1: statische Datei

Leg `llms.txt` in `public/` ab. Next.js liefert alles darin im Root aus, also `public/llms.txt` → `yoursite.com/llms.txt`. Fertig.

Die richtige Wahl, wenn sich deine Schlüsselseiten selten ändern. Das Risiko ist Drift: Die Datei beschreibt, was deine Website *war*.

## Muster 2: Route-Handler

Für Inhalte, die sich bewegen — Doku, Produkte, Posts — generiere die Datei aus derselben Source of Truth wie deine Seiten:

```
// app/llms.txt/route.ts
import { getDocs } from '@/lib/content';

export async function GET() {
  const docs = await getDocs();
  const body = [
    '# Acme',
    '',
    '> Acme ist eine Widget-API für Entwickler.',
    '',
    '## Docs',
    ...docs.map(d => `- [${d.title}](/docs/${d.slug}): ${d.summary}`),
    '',
    '## Maschinenlesbare Oberflächen',
    '- [OpenAPI-Spezifikation](/openapi.json): vollständiges API-Schema',
  ].join('\n');
  return new Response(body, {
    headers: { 'Content-Type': 'text/plain; charset=utf-8' },
  });
}
```

Füge `export const revalidate = 3600` hinzu, wenn deine Content-Quelle teuer ist. Dasselbe Muster liefert [llms-full.txt](/kb/de/llms-full-txt) aus, wenn du den Volltext-Begleiter willst.

## Was hineingehört

Kuration schlägt Vollständigkeit: was die Website ist (eine Blockquote), das Dutzend Seiten, bei denen ein Agent anfangen sollte, mit Einzeiler-Zusammenfassungen, und Querverweise auf deine Maschinen-Oberflächen — die [OpenAPI-Spezifikation](/kb/de/openapi) und ein etwaiger [MCP-Endpunkt](/kb/de/mcp) sind die wertvollsten Zeilen der Datei. Vollständige Format-Guidance: [der llms.txt-Guide](/kb/de/llms-txt).

## Validieren

Lass [den llms.txt-Validator](/tools/llms-txt-validator) gegen dein Deployment laufen — Existenz, Parsebarkeit, navigierbare Struktur — oder [scanne die Website](/) für das komplette Agent-Readiness-Bild.

## Häufig gestellte Fragen

### Hat Next.js eine llms.ts-Metadatenkonvention wie robots.ts?

Nein. Die Metadaten-Dateikonventionen decken robots.txt, sitemap.xml, Icons und OG-Images ab — nicht llms.txt. Ein Feature-Request ist offen; bis dahin nutze public/llms.txt oder einen Route-Handler.

### Sollte der Route-Handler einen speziellen Content-Type setzen?

Liefere sie als text/plain (oder text/markdown) mit UTF-8 aus. Agenten parsen die Markdown-Struktur aus dem Body; entscheidend ist, dass die Route mit 200 und dem Inhalt direkt antwortet.

### Statische Datei oder Route-Handler?

Statisch, wenn deine Schlüsselseiten stabil sind. Route-Handler, wenn die Datei irgendetwas listet, das sich ändert — es ist der Unterschied zwischen Dokumentation und einem Schnappschuss.

## Verwandte Themen

- [llms.txt — der komplette Guide](/kb/de/llms-txt)
- [llms-full.txt](/kb/de/llms-full-txt)
- [llms.txt für Shopify](/kb/de/llms-txt-for-shopify) · [llms.txt für WordPress](/kb/de/llms-txt-for-wordpress)
