編集チームではApp Routerで、静的app/robots.txtと生成app/robots.tsまたはapp/robots.jsを要件に応じて選びます。
静的で足りる場合は単純にします
固定ポリシーならランタイム依存を増やさない構成を優先します。
生成時はMetadataRoute.Robotsを使います
import type { MetadataRoute } from 'next'
export default function robots(): MetadataRoute.Robots {
return { rules: { userAgent: '*', allow: '/' }, sitemap: 'https://example.com/sitemap.xml' }
}
cacheとdynamic動作を確認します
生成metadata routeのcacheは実装によって変わります。コードだけでなく公開レスポンスも確認します。
previewは別のアクセス制御で守ります
非公開previewには認証を使い、Sitemap:がpreview hostを指していないかも確認します。