English TL;DR: For blog posts, SEO is mostly technical hygiene: canonical URLs, per-post metadata (Open Graph + Twitter), and BlogPosting JSON-LD. This post gives a copy‑paste checklist for Next.js App Router.
如果你的网站已经有了 sitemap.xml / robots.txt / RSS(见这篇:/blog/indie-seo-minimal-nextjs-vercel),下一步最划算的 SEO 投资通常是:
- 把文章页的元信息做“每篇文章独立”
- 加上结构化数据(JSON-LD)
这样 Google(以及各种 AI/答案引擎)会更容易理解:
- 这是文章(不是随机页面)
- 文章的标题/摘要/作者/发布日期是什么
1) Checklist(建议直接贴到 PR 里逐条过)
每篇文章页至少要有:
-
<title>:独立且准确(不要全站一个 title) -
<meta name="description">:来自 summary(不要留空) -
canonical:稳定的唯一 URL - Open Graph:title/description/url/type=article
- Twitter card:title/description/card
- JSON-LD:
BlogPosting(headline/datePublished/author/url)
可选增强:
-
og:image(默认图或动态生成) -
dateModified -
keywords(谨慎使用;现代 SEO 权重不高)
2) Next.js App Router 实现思路
我推荐用 App Router 的 generateMetadata():
- 文章内容来自 markdown frontmatter:
title/date/summary generateMetadata()根据 slug 读取文章 meta- 页面 body 内注入 JSON-LD
这样你不会把 SEO 逻辑散落在各种组件里。
3) JSON-LD(BlogPosting)模板
你可以用这个模板(根据自己的站点字段改一下):
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "...",
"description": "...",
"datePublished": "2026-02-05",
"dateModified": "2026-02-05",
"author": {
"@type": "Person",
"name": "jqz"
},
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "https://example.com/blog/slug"
},
"url": "https://example.com/blog/slug"
}
注意:你不需要一次性做成“完美 schema”。 先把类型对上、字段齐了,就已经能吃到大部分收益。
4) 一个常见坑:canonical 不统一会稀释权重
如果你同时存在:
- 带/不带 trailing slash
- www / non-www
- query 参数
那就很容易出现“同一篇文章有多个 URL”,这会稀释权重。
最小解决:
- 强制跳转到一个主域名
- 每页设置稳定 canonical
5) 做完怎么验证?
最小验证清单:
- 打开文章页,看页面 source 里是否有:title/description/canonical
- 用 Open Graph 调试工具检查预览(Slack/Telegram/X)
- 用 Google 的 Rich Results Test 看 JSON-LD 是否解析成功
如果你愿意,我也建议你把“文章内部链接”做起来:
- 新文章链接到旧文章
- 旧文章末尾加“相关阅读”
它对 SEO 的收益,往往比你想象的大。
(我在另一篇里写了自动发推的工程闭环:/blog/x-autopost-cron-system)
RELATED
2026-02-08
Next.js Programmatic SEO 最小闭环:从数据到可排名页面(sitemap / canonical / 内链)
不是堆关键词。Programmatic SEO 的关键是可抓取、可索引、可扩展、可验证。本文给一套 Next.js App Router 的最小工程闭环:路由设计、静态生成、sitemap、canonical、结构化数据和内链。
2026-02-05
独立开发者最小可用 SEO:在 Next.js + Vercel 上一次搞定 sitemap / robots / RSS / OG
面向独立开发者的最小可用 SEO 清单:sitemap.xml、robots.txt、RSS、OG/Twitter 卡片、canonical。以 Next.js App Router + Vercel 为例。
2026-02-09
什么时候该重写旧文?一个简单判断法
不是所有旧文都值得重写。用 3 个信号判断:有流量、有过时内容、有更好结构可替代。