English TL;DR: A minimal, practical SEO setup for indie developers on Next.js (App Router) + Vercel: generate
sitemap.xml,robots.txt, an RSS feed, and consistent Open Graph/Twitter metadata. This post gives a checklist and a working implementation approach you can copy.
很多独立开发者会把「SEO」当成一个玄学或长期工程,结果就是:要么拖到很后面不做,要么一次性做太重、反而影响上线速度。
我的建议是:先做“最小可用 SEO”(MVP SEO)——让搜索引擎能稳定发现、抓取、理解你的页面;然后再迭代更高级的结构化数据、内链体系、专题页。
下面是一份可以直接照抄的清单,适用于:
- Next.js(App Router)
- Vercel 部署
- 以内容为主(博客/发布页/产品落地页)
0. 先明确目标:SEO 的第一阶段在解决什么?
第一阶段只解决 3 件事:
- 搜索引擎能找到你(Discover)
- 能稳定抓到你(Crawl)
- 能正确理解页面语义(Index)
如果你只做了这三点,很多站点已经能拿到第一波长尾流量。
1) sitemap.xml:告诉搜索引擎你有哪些页面
对于博客/内容站,sitemap 的价值非常大:
- 你新发文章更容易被发现
- 旧文也能被持续抓取更新
实现建议(Next.js App Router):
- 用
src/app/sitemap.ts生成 sitemap - 静态路由(/ /about /blog)+ 动态路由(/blog/[slug])一起生成
你需要保证:每篇文章都有稳定的 slug 和 date。
2) robots.txt:声明抓取规则 + 指向 sitemap
robots 的最小目标:
User-agent: *允许抓取- 声明
Sitemap: https://xxx.com/sitemap.xml
不要在 robots 里做复杂规则,早期越简单越好。
3) RSS:给“订阅”和“二次分发”一个标准出口
RSS 的意义不止是订阅:
- 一些聚合站/阅读器会抓 RSS
- 对于技术圈用户,RSS 是信任感
最小实现:
- 输出最新 20~50 篇文章
- 每条包含 title/link/description/pubDate
4) OG / Twitter 卡片:让分享链接更像“正规内容”
你在 X/Telegram/微信群里分享文章,OG 决定了:
- 标题显示是否正确
- 是否有摘要
- 是否有封面图
最小目标:
- 全站统一默认 OG
- 每篇文章覆盖自己的 title/description
后面可以再做动态 og:image(可选)。
5) canonical:避免重复 URL 稀释权重
如果你同时支持:
jqzdev.com→www.jqzdev.com跳转- 或 query 参数
canonical 能避免权重被稀释。
最小目标:每个页面设置稳定 canonical。
6) 下一步(第二阶段)我建议做什么
当你已经有 10+ 篇内容后,再做这些 ROI 更高:
- JSON-LD(Article / BlogPosting)
- 专题页(比如 /series/xxx)+ 强内链
- 站内搜索/标签
- 英文版(/en)+ hreflang
如果你也在做独立开发/个人站,我建议你把 SEO 当成一个“持续复利”的系统:每次发布内容,都让它更容易被发现。