İçeriğe geç

SEO ve Arama

Arama, Fumadocs kaynağından gelir. Onedocs, site haritası, robots.txt ve llms.txt dosyaları için yardımcılar ekler; bunların tümü Next.js App Router route'ları olarak kurulur. Sayfa meta verileri ve Open Graph görselleri için API Referansı içindeki onedocs/metadata ve onedocs/og bölümlerine bakın.

Onedocs, Fumadocs kaynağındaki yerleşik Orama aramasını kullanır. Bir API route'u oluşturun:

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

export const { GET } = createFromSource(source);

RootProvider tarafından eklenen arama iletişim penceresi, varsayılan olarak /api/search sorgular; bu nedenle başka bir kurulum gerekmez.

Site haritası

/sitemap.xml konumunda bir site haritası oluşturun:

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 site kökünü listeler, ardından pages içindeki her giriş için URL ekler; bunların tümü /docs altındadır. --- ile başlayan girdiler (kenar çubuğu ayraçları) atlanır ve index doğrudan /docs olarak eşlenir. Girdileri verildiği gibi okur; bu nedenle alt klasörlerdeki sayfaların kendi girdileri olmalıdır, örneğin "guides/setup".

Robots.txt

Şu konumda bir robots.txt oluşturun: /robots.txt:

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

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

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

Bu, şunu oluşturur:

Kod
User-Agent: *
Allow: /

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

LLMs.txt

LLMs.txt, AI asistanlarının belgelerinizi anlamasına yardımcı olur. Onedocs hem özet hem de tam içerik sürümleri oluşturabilir.

Özet sürümü

Sayfa başlıkları ve açıklamalarıyla /llms.txt oluşturun:

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" },
  });
}

Dosya başlık ve açıklamayla başlar, her sayfayı açıklamasıyla birlikte - Title: URL olarak listeler ve /llms-full.txt işaretçisiyle biter. Her iki işlev de Fumadocs kaynağının kendisini değil, createLLMsSource içindeki sarmalanmış kaynağı alır ve bir promise döndürür.

Tam içerik sürümü

Eksiksiz belgelerle /llms-full.txt oluşturun:

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" },
  });
}

Her sayfa başlığı, URL, açıklaması ve işlenmiş Markdown ile yazılır; sayfaların arasına --- konur.

Sayfa metni, varsayılan olarak kapalı olan Fumadocs MDX'in işlenmiş Markdown içeriğinden gelir. Bu kapalıyken llms-full.txt yalnızca başlıkları, URL'leri ve açıklamaları içerir (özet#3). Bunu source.config.ts içinde etkinleştirin:

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

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

Yapılandırma seçenekleri

Site haritası seçenekleri

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

Robots seçenekleri

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

Size sundukları

Bu rotaları ayarladıktan sonra:

URL Ne işe yarar
/api/search?query=... Arama API uç noktası
/sitemap.xml Arama motorları için XML site haritası
/robots.txt Site haritası başvurusu içeren Robots dosyası
/llms.txt AI asistanları için özet
/llms-full.txt AI asistanları için tam belgeler