Sitemap dan Robots.txt untuk SEO
Membuat sitemap.xml dan robots.txt otomatis agar Google mengindeks semua halaman penting.
Kenapa perlu?
Sitemap memberi tahu Google daftar halaman di situsmu dan kapan terakhir diperbarui. Robots.txt memberi tahu crawler halaman mana yang boleh dan tidak boleh diakses. Tanpa keduanya, Google tetap bisa menemukan halamanmu, tapi lebih lambat dan tidak terkontrol.
Sitemap dinamis
Buat file app/sitemap.ts. Next.js otomatis menyajikannya di /sitemap.xml:
// app/sitemap.ts
import type { MetadataRoute } from "next";
export default async function sitemap(): Promise<MetadataRoute.Sitemap> {
const artikel = await getDaftarSlug(); // dari database/API
return [
{ url: "https://tokoku.id", lastModified: new Date() },
{ url: "https://tokoku.id/tentang", lastModified: new Date() },
...artikel.map((slug) => ({
url: "https://tokoku.id/blog/" + slug,
lastModified: new Date(),
})),
];
}Untuk situs besar (ribuan URL), pecah menjadi beberapa sitemap dengan generateSitemaps.
Robots.txt
// app/robots.ts
import type { MetadataRoute } from "next";
export default function robots(): MetadataRoute.Robots {
return {
rules: [
{
userAgent: "*",
allow: "/",
disallow: ["/admin/", "/api/"],
},
],
sitemap: "https://tokoku.id/sitemap.xml",
};
}Ini melarang crawler mengakses halaman admin dan API, tapi mengizinkan sisanya.
Verifikasi
Setelah deploy, buka /sitemap.xml dan /robots.txt di browser untuk memastikan tersaji. Lalu daftarkan sitemap di Google Search Console agar Google segera mengindeks.
Tips praktis
Untuk situs dengan ribuan URL, pecah sitemap menjadi beberapa file memakai sitemap index agar tiap file tetap ringan. Setelah deploy, buka Google Search Console secara berkala untuk memastikan tidak ada error crawl. Sitemap yang sehat membuat artikel barumu terindeks dalam hitungan hari, bukan minggu.
Kesalahan umum pemula
- Memasukkan halaman privat ke sitemap. Dashboard dan admin tidak bisa diakses Google dan hanya menghasilkan error crawl.
- Lupa mendaftarkan sitemap ke Search Console. Sitemap yang tidak didaftarkan tetap ditemukan, tapi jauh lebih lambat terindeks.
- URL tidak konsisten. Sitemap memakai
http://padahal situsnyahttps://, atau lupa trailing slash. Konsisten dengan canonical URL.
Latihan singkat
- Buat
sitemap.tsdanrobots.ts, deploy ke Vercel (atau jalankan build lokal), lalu buka/sitemap.xmldi browser. - Tambahkan 5 URL artikel dummy ke sitemap dan pastikan semuanya valid (tidak 404).
Rangkuman
app/sitemap.tsmenghasilkan/sitemap.xmlotomatis, bisa dinamis dari database.app/robots.tsmengatur aturan crawler dan menunjuk lokasi sitemap.- Hanya masukkan halaman publik ke sitemap, bukan halaman login/admin.
- Daftarkan sitemap di Google Search Console agar cepat terindeks.
Catatan teknis: Jangan memasukkan halaman yang butuh login (dashboard, admin) ke sitemap. Google tidak bisa mengaksesnya dan akan mencatat error crawl. Sitemap hanya untuk halaman publik.