TurboJet
SEO

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

apps/marketing/src/app/sitemap.ts
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 },
			};
		}),
	);
}
BagianSumber
OriginNEXT_PUBLIC_MARKETING_URL lewat @repo/env/client
Localelocales dari @repo/i18n (en, id)
Rute statisArray paths
Hreflangalternates.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:

apps/marketing/src/app/robots.ts
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.

Terkait

  • Meta tags — title dan description per halaman
  • Aplikasi — ringkasan app marketing
  • i18n — locale yang dipakai di sitemap

Di halaman ini