Panduan robots.txt per platform

Next.js robots.txt: cara kami memakai App Router dan MetadataRoute.Robots

Alur tim untuk app/robots.txt, app/robots.ts, MetadataRoute.Robots, sitemap, cache, preview, dan deployment.

Oleh Robots.txt Tools Editorial TeamTerakhir diverifikasi 2026-10-012 menit baca

Metode editorial: panduan ini mendokumentasikan alur pemeriksaan yang digunakan Robots.txt Tools Editorial Team. Bahasa prosedural orang pertama menjelaskan metode tersebut, bukan klaim pengalaman proyek klien atau studi kasus pribadi.

Next.js robots.txt: cara kami memakai App Router dan MetadataRoute.Robots

Di App Router, kami memilih antara app/robots.txt statis dan app/robots.ts atau app/robots.js yang generated.

Kami memilih statis bila cukup

Kebijakan sederhana mengurangi runtime dependency dan lebih mudah diaudit.

Untuk generasi kami memakai MetadataRoute.Robots

import type { MetadataRoute } from 'next'
export default function robots(): MetadataRoute.Robots {
  return { rules: { userAgent: '*', allow: '/' }, sitemap: 'https://example.com/sitemap.xml' }
}

Kami mengecek cache dan dynamic behavior

Generated metadata route dapat memiliki cache sesuai implementasinya. Kami membandingkan source dengan response deployment.

Preview privat memakai access control

Kami memakai autentikasi dan mencegah Sitemap: mengarah ke preview host.

Kami memverifikasi deployment

Kami membuka /robots.txt, memakai validator dan menguji URL dengan tester.

Perilaku App Router saat ini

Next.js mendukung app/robots.txt statis serta app/robots.ts / app/robots.js yang menghasilkan MetadataRoute.Robots. Route metadata yang dihasilkan dapat di-cache tergantung implementasinya, sehingga kami memeriksa versi framework dan response publik, bukan menganggap setiap request menghitung ulang file.

Untuk policy stabil kami memilih statis. Generasi dipakai hanya bila memberi nilai nyata, misalnya beberapa crawler group atau hostname yang dikendalikan environment. Kami menghindari dependency API eksternal di route robots.

Kegagalan yang diuji saat deploy

Kami mengecek sitemap berisi preview host, middleware/proxy menangkap /robots.txt, konflik file statis dengan route generated, cache lama, dan branch staging aktif di production. Smoke test memeriksa status, content-type, body, dan hostname sitemap pada domain publik.

Hostname production dibuat eksplisit

Jika sitemap atau canonical bergantung pada environment variable, kami memakai nilai production yang jelas, bukan membentuk host dari request yang kebetulan datang. /robots.txt masuk ke smoke test deployment: status, content-type, body, dan hostname sitemap diperiksa. Konfigurasi penting yang hilang sebaiknya gagal lebih awal daripada diam-diam mempublikasikan domain preview.

Panduan terkait