Skip to content

Next.js SEO — robots.txt + sitemap

robots.ts

ts
// app/robots.ts
import type { MetadataRoute } from 'next'

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

sitemap.ts

ts
// app/sitemap.ts
export default function sitemap(): MetadataRoute.Sitemap {
  const posts = await getPosts()  // 从数据库获取
  return [
    { url: 'https://example.com', lastModified: new Date() },
    ...posts.map(p => ({ url: `https://example.com/posts/${p.id}`, lastModified: p.updatedAt })),
  ]
}

自动生成 /robots.txt/sitemap.xml,无需手动创建文件。