generateMetadata、sitemap 和 robots 在项目里怎么落地
App Router 系列第三篇,讨论框架级 SEO 能力如何真正服务教程站,而不是停留在 API 会用。
发布于 2026-04-11更新于 2026-04-14约 2 分钟阅读
#App Router#SEO#Next.js
Tutorial Path
App Router 实战系列
当前位置:03 / 04
把框架原生能力转成真正稳定的 SEO 输出。
App Router 给了我们很好的 SEO 入口,但好入口不代表一定会得到好结果。很多项目虽然会写 generateMetadata,却仍然在标题、描述、canonical、图片和发布信息上保持着一堆重复实现。真正重要的是把这些能力接到统一的数据边界上。
metadata 应该建立在稳定内容源上
如果详情页的 metadata 依赖某个临时对象、某段散落在页面里的字符串,那它迟早会和正文、列表卡片、RSS 摘要脱节。更好的方式是让 generateMetadata 直接复用内容读取层已经校验好的数据。这样你只维护一套 frontmatter,标题和摘要就能在多个场景里保持一致。
sitemap 和 robots 是结构声明,不是装饰文件
这两个文件不是上线前为了“看起来完整”才补上的。它们其实在声明网站对外的边界:哪些页面属于公开内容集合,哪些路由是系统内部实现,哪些 URL 值得被持续抓取。
对教程站来说,分类页、博客页、项目页、笔记页通常都应该进入 sitemap,而后台页面、临时接口和纯管理路径则不应该暴露。
小结
当 metadata、sitemap 和 robots 都建立在统一内容模型上时,SEO 才真正从“页面配置”升级成“站点能力”。App Router 系列最后一篇,我们收束到一个更偏架构的问题:页面组织为什么不能只靠文件夹堆出来。