Sitemap
Hasilkan sitemap marketing dan robots.txt untuk mesin pencari.
Sitemap mencantumkan halaman aplikasi Anda. File ini membantu mesin pencari menemukan dan memahami rute.
Next.js menyajikan sitemap marketing dari apps/marketing/src/app/sitemap.ts. Saat Anda menambah halaman publik atau mengubah rute, perbarui file ini agar sitemap tetap akurat.
Konfigurasi
import { locales } from "@repo/i18n";
import { clientEnv } from "@repo/env/client";
import type { MetadataRoute } from "next";
export default function sitemap(): MetadataRoute.Sitemap {
const origin = clientEnv.NEXT_PUBLIC_MARKETING_URL;
const paths = ["", "/privacy-policy", "/terms-of-service", "/license"];
return paths.flatMap((path) =>
locales.map((locale) => {
const languages = Object.fromEntries(
locales.map((alt) => [alt, `${origin}/${alt}${path}`]),
);
return {
url: `${origin}/${locale}${path}`,
lastModified: new Date(),
changeFrequency: path ? "monthly" : "weekly",
priority: path ? 0.5 : 1,
alternates: { languages },
};
}),
);
}| Bagian | Sumber |
|---|---|
| Origin | NEXT_PUBLIC_MARKETING_URL lewat @repo/env/client |
| Locale | locales dari @repo/i18n (en, id) |
| Rute statis | Array paths |
| Hreflang | alternates.languages untuk setiap locale |
Beranda memakai changeFrequency: "weekly" dan priority: 1; path lain memakai "monthly" dan 0.5.
Menambah halaman statis
Tambahkan path (tanpa prefix locale) ke paths:
const paths = ["", "/privacy-policy", "/terms-of-service", "/license", "/changelog"];Itu menghasilkan entri untuk setiap locale, misalnya https://yoursite.com/en/changelog dan https://yoursite.com/id/changelog.
Path dinamis
Tanpa content collections
Marketing tidak memakai content-collections untuk blog atau legal MDX.
Salinan legal ada di i18n + halaman React. Untuk rute dinamis, kumpulkan
setiap path (dari filesystem, CMS, atau query) lalu map seperti
flatMap statis di atas.
/checkout/success sengaja tidak masuk sitemap saat ini — itu halaman pasca-pembelian, bukan target penemuan.
App docs punya sitemap sendiri di apps/docs/src/app/sitemap.ts (pohon halaman Fumadocs). Panduan ini hanya membahas marketing.
Pelajari lebih lanjut di dokumentasi sitemap Next.js.
Robots
apps/marketing/src/app/robots.ts mengizinkan semua crawler dan mengarahkannya ke sitemap:
export default function robots(): MetadataRoute.Robots {
return {
rules: [{ userAgent: "*", allow: "/" }],
sitemap: `${clientEnv.NEXT_PUBLIC_MARKETING_URL}/sitemap.xml`,
};
}Setel NEXT_PUBLIC_MARKETING_URL dengan benar di setiap environment — lihat Environment.