Ga naar de inhoud

SEO en zoeken

Zoeken komt van Fumadocs. Onedocs voegt helpers toe voor de sitemap, bestanden robots.txt en llms.txt, allemaal ingesteld als routes van de Next.js App Router. Zie voor paginametadata en Open Graph-afbeeldingen onedocs/metadata en onedocs/og in de API-referentie.

Onedocs gebruikt de ingebouwde Orama-zoekfunctie van Fumadocs. Maak een route API aan:

TypeScript
import { source } from "@/lib/source";
import { createFromSource } from "fumadocs-core/search/server";

export const { GET } = createFromSource(source);

Het zoekvenster dat RootProvider toevoegt, doorzoekt standaard /api/search; verdere configuratie is niet nodig.

Sitemap

Genereer een sitemap op /sitemap.xml:

TypeScript
import { generateSitemap } from "onedocs/seo";
import meta from "../../content/docs/meta.json";

const baseUrl = "https://yourdomain.com";

export default function sitemap() {
  return generateSitemap({
    baseUrl,
    pages: meta.pages ?? [],
  });
}

generateSitemap vermeldt de hoofdmap van de site en vervolgens één URL per item in pages onder /docs. Items die beginnen met --- (scheidingstekens in de zijbalk) worden overgeslagen, en index verwijst naar /docs zelf. De items worden overgenomen zoals opgegeven; pagina's in submappen hebben dus een eigen item nodig, bijvoorbeeld "guides/setup".

Robots.txt

Genereer een robots.txt op /robots.txt:

TypeScript
import { generateRobots } from "onedocs/seo";

const baseUrl = "https://yourdomain.com";

export default function robots() {
  return generateRobots({ baseUrl });
}

Dit maakt het volgende aan:

Code
User-Agent: *
Allow: /

Host: https://yourdomain.com
Sitemap: https://yourdomain.com/sitemap.xml

LLMs.txt

LLMs.txt helpt AI-assistenten uw documentatie te begrijpen. Onedocs kan zowel samenvattingen als versies met de volledige inhoud genereren.

Samenvattingsversie

Maak /llms.txt met paginatitels en beschrijvingen:

TypeScript
import { createLLMsSource, generateLLMsText } from "onedocs/llms";
import { source } from "@/lib/source";
import config from "../../../onedocs.config";

export async function GET() {
  const llmsSource = createLLMsSource(source);
  const text = await generateLLMsText(llmsSource, {
    title: config.title,
    description: config.description,
  });

  return new Response(text, {
    headers: { "Content-Type": "text/plain; charset=utf-8" },
  });
}

Het bestand begint met de titel en beschrijving, vermeldt elke pagina als - Title: URL met de beschrijving ervan en eindigt met een verwijzing naar /llms-full.txt. Beide functies nemen de omhulde bron uit createLLMsSource, niet de bron Fumadocs zelf, en retourneren een promise.

Versie met volledige inhoud

Maak /llms-full.txt met de volledige documentatie:

TypeScript
import { createLLMsSource, generateLLMsFullText } from "onedocs/llms";
import { source } from "@/lib/source";

export async function GET() {
  const llmsSource = createLLMsSource(source);
  const text = await generateLLMsFullText(llmsSource);

  return new Response(text, {
    headers: { "Content-Type": "text/plain; charset=utf-8" },
  });
}

Elke pagina wordt weergegeven met de titel, URL, beschrijving en verwerkte Markdown, met --- tussen de pagina's.

De paginatekst komt uit de verwerkte Markdown van Fumadocs MDX, die standaard uitgeschakeld is. Zonder deze optie bevat llms-full.txt alleen titels, URL's en beschrijvingen (#3). Schakel de optie in source.config.ts in:

TypeScript
import { defineDocs } from "fumadocs-mdx/config";

export const docs = defineDocs({
  dir: "content/docs",
  docs: {
    postprocess: {
      includeProcessedMarkdown: true,
    },
  },
});

Configuratieopties

Sitemapopties

TypeScript
generateSitemap({
  baseUrl: "https://yourdomain.com",
  pages: ["index", "getting-started", "configuration"],
  docsPath: "/docs", // Default: "/docs"
});

Robots-opties

TypeScript
generateRobots({
  baseUrl: "https://yourdomain.com",
  sitemapPath: "/sitemap.xml", // Default: "/sitemap.xml"
});

Wat u krijgt

Na het instellen van deze routes:

URL Wat het doet
/api/search?query=... Zoekendpoint API
/sitemap.xml XML-sitemap voor zoekmachines
/robots.txt Robotsbestand met verwijzing naar sitemap
/llms.txt Samenvatting voor AI-assistenten
/llms-full.txt Volledige documentatie voor AI-assistenten