English TL;DR: Programmatic SEO is an engineering pipeline: consistent URL structure, indexable pages, canonical + sitemap, and internal linking. This post outlines a minimal Next.js App Router setup you can ship.
很多人一听到 Programmatic SEO,就想到:
- 批量生成页面
- 批量塞关键词
结果做出来一堆页面:
- Google 抓是抓了,但不收录
- 收录了,也不排名
- 或者排名了,但没人点/没人转化
真正有效的 Programmatic SEO,本质是“可持续的内容生产线”。 它不是写作技巧,而是工程闭环。
下面给你一套我认为在独立开发语境里最划算的“最小可行闭环”(MVP),基于 Next.js App Router。
1) 先把目标说清楚:你要的是“可排名页面”,不是“多页面”
一页能否排名,跟“有没有这个 URL”关系不大,跟以下因素更大:
- 页面是否可索引(不被 noindex/robots 拦)
- URL 是否稳定且唯一(canonical 是否一致)
- 页面是否满足搜索意图(字段解释、示例、FAQ,而不是一段空模板)
- 是否有内链支持(Google 要能从站内路径发现它)
如果你只做“批量 URL”,你只是把 crawl budget 浪费掉。
2) URL 设计:保持规则、可预测、可扩展
推荐的最小规则:
- 全小写
- 用短词 + 连字符
- 层级表达含义(不要堆 query 参数)
例子(假设你是一个数据站/工具站):
/tools/funding-rate-calculator/funding/binance/btcusdt/fees/bybit
不要:
/page?id=123&type=abc/funding?exchange=binance&symbol=BTCUSDT
后者不利于内链,也更容易产生重复内容。
3) 静态生成(SSG):先把“可被抓取”做到极致
在 App Router 下,你通常有两种选择:
- 静态生成(推荐默认)
- 动态渲染(只有当数据必须实时)
对于 Programmatic SEO:
- 优先静态(TTFB 更稳,Google 抓取更友好)
- 数据可以“每天更新一次”,没必要每次请求都打数据库
典型实现:
generateStaticParams()生成 slug 列表dynamicParams = false防止未知 slug 产生“软 404”
4) sitemap:让搜索引擎知道“哪些页面值得抓”
最小要求:
/sitemap.xml可访问- 只放 canonical URL
- 只放真正想排名的页面(别把测试页/搜索页/参数页放进去)
lastmod有意义(别全都写当前时间)
Next.js 里可以用一个 route 生成 XML(你现在的 jqzdev.com 已经是这个方式)。
5) canonical:防止权重被“同内容多 URL”稀释
你只需要坚持一条原则:
每个页面都有一个唯一的、稳定的 canonical URL。
常见重复来源:
- www / non-www
- trailing slash
- query 参数
- UTM
做法:
- 在站点层做重定向(例如把
jqzdev.com→www.jqzdev.com) - 每页显式设置 canonical
6) 结构化数据(JSON-LD):让 Google/AI 更懂你在说什么
对于文章:用 BlogPosting
对于数据页:用 Dataset 或者 FAQPage(如果你有问答区块)
注意:schema 不是越多越好。 先把类型和关键字段对齐,收益就已经很可观。
7) 内链:Programmatic SEO 的“分发系统”
很多站点不排名,不是内容差,而是:
- 页面是孤岛(orphan page)
- Google 很难从站内发现它
最小内链策略:
- 每个列表页链接到详情页(分页也要可抓取)
- 每个详情页链接回列表页
- 详情页底部给“相关页面”
内链做得好,才像“生产线”。
8) 验证:你必须能回答“Google 到底看到了什么”
上线后最小验证清单:
robots.txt是否允许抓取sitemap.xml是否包含新页面- 每页 source 里是否有 canonical
- Search Console:URL Inspection 看是否可索引
如果你没有验证闭环,就等于盲飞。
9) 你可以直接照抄的落地顺序
按收益/成本比排序:
- 统一主域 + canonical(当天搞定)
- sitemap(当天搞定)
- 页面模板:字段解释 + 示例 + FAQ(每页加 15 分钟)
- 内链:列表→详情→相关(当天搞定)
- Search Console 提交 + 观察收录(持续)
如果你愿意,我下一步可以帮你把 jqzdev 的博客进一步做成“更 SEO 友好”的结构:
- 文章页增加 tags
- 增加一个 /blog/tags/[tag] 聚合页(可排名)
- 文章页底部加 相关阅读(自动内链)
这三件事都很轻量,但长期会稳定抬高收录与页面权重分发。