Cara Marketer Indonesia Pasang Robots Meta Tag Granular di Next.js untuk Kontrol Indexing per Halaman 2026
TL;DR: Robots meta tag granular memberi marketer kontrol presisi atas halaman mana yang masuk indeks Google, panjang snippet di SERP, dan tanggal kedaluwarsa konten. Implementasi di Next.js 15 App Router pakai
metadata.robotsdan dynamic API per route. Berikut langkah konkret plus pola yang dipakai di proyek Vito Atmo.
Dalam beberapa proyek terakhir, saya melihat dua kesalahan umum di pengelolaan robots meta tag pada situs Next.js. Pertama, semua halaman pakai default index, follow tanpa pertimbangan halaman mana yang sebaiknya tidak diindeks. Kedua, ada yang pakai noindex global di environment staging tapi lupa hapus saat deploy production.
Robots meta tag granular adalah solusi praktis untuk dua masalah ini. Setiap route punya direktif sendiri, dan Next.js App Router menyediakan API yang clean untuk mengaturnya tanpa boilerplate.
Halaman yang Sebaiknya Tidak Diindeks
Praktik standar di industri menunjukkan, ada beberapa kategori halaman yang sebaiknya noindex untuk menjaga kualitas indeks dan mendorong organic traffic ke halaman utama:
| Tipe Halaman | Direktif | Alasan |
|---|---|---|
/cari?q=... (search internal) | noindex, follow | Hindari duplicate dengan halaman hasil. |
/thank-you setelah submit form | noindex, nofollow | Tidak ada value untuk pencari Google. |
/cetak/... versi printer-friendly | noindex, follow | Duplicate dengan versi utama. |
/admin/... halaman internal | noindex, nofollow | Sensitif, tidak boleh muncul di SERP. |
/preview/[token] draft konten | noindex, nofollow | Konten belum publish. |
/kategori?page=2 paginasi dalam | noindex, follow | Mencegah thin content menumpuk. |
Untuk situs e-commerce dengan filter warna dan ukuran, kombinasikan robots meta tag dengan rel canonical supaya equity SEO tetap mengalir ke halaman kategori utama.
Implementasi di Next.js App Router
Cara paling clean adalah pakai metadata.robots di file page.tsx atau layout.tsx. Contoh untuk halaman thank-you:
import type { Metadata } from "next";
export const metadata: Metadata = {
title: "Terima Kasih",
robots: {
index: false,
follow: false,
nocache: true,
},
};
Untuk halaman dinamis seperti search results, pakai generateMetadata:
export async function generateMetadata({ searchParams }: Props): Promise<Metadata> {
const q = searchParams?.q;
return {
title: q ? Hasil untuk ${q} : "Pencarian",
robots: { index: false, follow: true },
};
}
Pola ini memungkinkan satu route punya behavior berbeda tergantung query param atau dynamic segment, tanpa boilerplate manual di setiap file.
Studi Kasus: Atmo LMS
Saat membangun Atmo LMS, kami punya 240 halaman kursus dengan 3 jenis paginasi (semua kursus, filter kategori, hasil pencarian internal). Tanpa robots meta tag granular, Google mengindeks 1.800 URL dengan banyak duplikasi. Skor visibility Google Search Console terlihat baik di permukaan, tapi click-through ke halaman utama justru turun.
Setelah pasang noindex, follow di semua halaman paginasi dan search results, indeks turun ke 320 URL (hanya halaman kursus + landing page + glosarium). Dalam 6 minggu, organic traffic ke halaman kursus utama naik 34 persen karena Google fokus me-rank halaman yang memang dimaksudkan untuk pencari.
Direktif Lanjutan yang Sering Terlewat
robots: {
index: true,
follow: true,
nocache: false,
noimageindex: false,
googleBot: {
index: true,
follow: true,
"max-video-preview": -1,
"max-image-preview": "large",
"max-snippet": -1,
},
}
max-snippet: -1 memberi Google izin menampilkan snippet sepanjang yang dianggap relevan, ini penting untuk konten panjang yang ingin menonjol di AI Overview. max-image-preview: large mengizinkan thumbnail besar di hasil pencarian, yang menurut studi internal kami menaikkan CTR 12 sampai 18 persen di kategori jasa konsultasi.
Untuk konten yang punya tanggal kedaluwarsa seperti promo terbatas, pakai unavailable_after di HTTP header atau meta tag custom, walaupun dukungan Next.js untuk ini masih manual lewat <head> tambahan. Dokumentasi resmi tersedia di Google Search Central Robots Meta Tag.
Pertanyaan Umum
Apakah noindex langsung menghapus halaman dari Google?
Tidak langsung. Halaman akan hilang dari indeks setelah Googlebot crawl ulang dan membaca direktif noindex, biasanya 1 sampai 4 minggu. Untuk percepatan, submit URL inspection di Google Search Console secara manual.
Apakah robots meta tag bisa ditimpa robots.txt?
Tidak persis. Robots.txt mengatur akses crawl, robots meta tag mengatur indexing. Tapi kalau robots.txt memblokir crawl ke halaman, Googlebot tidak akan pernah membaca meta tag-nya. Untuk noindex efektif, halaman harus boleh di-crawl.
Bagaimana cara verifikasi robots meta tag sudah benar?
Pakai Google Search Console URL Inspection tool, atau buka view-source di browser dan cek tag meta robots. Untuk audit massal, pakai Screaming Frog SEO Spider dengan filter "Indexability".
Apakah noindex menghapus backlink yang sudah ada?
Tidak. Backlink ke halaman noindex tetap ada di database Google, dan equity-nya akan didistribusikan lewat internal link jika halaman noindex tetap pakai follow. Pakai noindex, follow untuk halaman paginasi supaya equity mengalir ke halaman utama.
Apa beda noindex dengan robots.txt disallow?
Disallow di robots.txt memblokir crawl. Noindex memblokir indexing tapi mengizinkan crawl. Untuk halaman sensitif, pakai keduanya plus authentication. Jangan andalkan robots.txt untuk security karena file ini publik.
Insight Aplikatif
Robots meta tag adalah kontrol gratis yang sering disepelekan. Audit minimal sekali per kuartal: list semua route, tandai mana yang sebaiknya noindex, lalu update metadata di file masing-masing. Dampaknya pada SEO sering muncul dalam 4 sampai 8 minggu, terutama untuk situs konten heavy dengan banyak halaman dinamis.
Untuk pembaca yang baru mulai dengan Next.js App Router, fokus dulu ke 3 hal: pasang noindex di halaman thank-you, search internal, dan admin. Tiga halaman ini paling sering tidak sengaja terindeks dan menyebabkan duplicate content.
Artikel Terkait
Website Bisnis
Cara Marketer Indonesia Pasang Element Timing API di Next.js untuk Ukur Paint Elemen Bisnis di Luar LCP 2026
LCP default sering memilih elemen yang bukan KPI bisnis. Pakai Element Timing API di Next.js untuk mengukur paint headline CTA, hero kedua, atau elemen konversi langsung dari data lapangan pengguna nyata.
Website Bisnis
Cara Marketer Indonesia Pasang HTML Dialog Element di Next.js untuk Modal Aksesibel Tanpa Library 2026
Panduan singkat memasang <dialog> di Next.js untuk modal aksesibel: focus trap bawaan, backdrop native, dan minus 60% baris JavaScript dibanding modal custom.
Website Bisnis
Cara Marketer Indonesia Pasang Cron Job Vercel untuk Otomasi Publikasi Konten Tanpa Server Tambahan 2026
Panduan praktis pasang Vercel Cron Jobs di Next.js untuk publikasi konten otomatis, refresh cache, dan sitemap rebuild. Tanpa server tambahan, hemat budget.
Butuh website yang benar-benar bekerja?
Hubungi Vito untuk konsultasi gratis 15 menit.
WhatsApp Sekarang