用 Claude Code 跑一次完整 SEO 审计(2026 工作流)

一个可复用的 Claude Code plan 模式 prompt,配两小时工作流,给你的内容站上线三个 review 过的 SEO 修复。

一句话总结

多数 SEO 审计扔给你 300 条发现,其中 250 条只影响两个页面,结果你什么都没改。这套流程在自己仓库里用 Claude Code:开 plan 模式(只读)按”影响页数”给发现打分,只修 top 3 并 review diff,用你自己的审计脚本加一次 build 验证,再一条修复一个 commit。预算两小时。结尾你拿到三个上线的修复、可测量的问题数下降,全程不离开终端。

你需要准备什么

这是一篇教程,所以先把它假设的环境讲清楚(截至 2026 年 6 月):

  • 装好并登录 Claude Code。它只跑 Anthropic 自家模型——Opus 4.7(深度推理)和 Sonnet 4.6(快速主力)。它已经包含在 Claude Pro 套餐里,每月 20 美元(年付折合每月 17 美元),所以这套流程不需要单独的 API key。见 Claude 定价
  • 一个用 Astro、Next.js 或 Hugo 的内容站,仓库根目录有 CLAUDE.md
  • 一个能跑的内容校验脚本,比如 npm run audit:content,外加 npm run build
  • 开始前先把 git 工作树清干净。

为什么用 Claude Code 而不是把页面贴进聊天窗口:agent 读的是你真实的文件,能引用真实路径和行号,并把修复以 diff 形式给你批准。聊天窗口只看得到你贴进去的内容,所以它会编造出无法核实的结构。

plan 模式是安全护栏

这里最重要的设置就是 plan 模式。plan 模式是一个只读权限状态:Claude Code 能读文件、能跑 shell 命令探索,但在你退出该模式之前一个源文件都改不了。这正是审计那半场想要的。

三种进入方式:

  • 启动时就只读:claude --permission-mode plan
  • session 中途按 Shift+Tab,在 default → acceptEdits → plan 之间循环
  • 在 prompt 里打 /plan

整个审计都在 plan 模式里跑。只有当你选好 top 3 修复后,才退出 plan 模式,一条一条地 apply。

先把 agent 指向你的数据注册表

最大的质量杠杆是”接地”。在任何审计 prompt 之前,先确保 agent 读了描述你站结构的文件——内容数据注册表。在这类 Astro 站上,就是 src/data/categories.tssrc/data/hubs.ts 这种文件。agent 读了它们,发现就会引用真实的类目和 hub 字段,而不是猜。

CLAUDE.md 保持在 200 行以内(这是 Anthropic 自己的建议:文件越长消耗的 context 越多,Claude 遵守指令的可靠度也越低)。这套流程的高信噪比 CLAUDE.md 只需三样东西:目录布局、审计命令的确切写法、以及一行”审计一律用 plan 模式”的规则。跑一次 /init 从代码库生成起始文件,再删减。

审计 prompt

在 plan 模式里跑。它本身就是只读结构,但 plan 模式把这个保证从”客气的请求”变成”硬约束”:

在 plan 模式下跑 SEO 审计。读 src/data/categories.ts、src/data/hubs.ts,
以及每个类目 5 篇样本文章。报四个桶:
  1. metadata 问题(缺标题/标题过短、描述过短或重复)
  2. 薄内容候选(正文低于你的字数下限)
  3. 内链缺口(孤儿页、入链少于 2 条的页面)
  4. hreflang 问题(缺 return 标签、en 与 en-us 不匹配)
每条发现给出:文件路径、确切问题、影响多少页。
什么都别改。

“影响多少页”这一句是全局关键,它把一张平铺的清单变成一个 triage 队列。

打分与分流

把每条发现按页数排序、分桶。单页问题不值得开 agent session——那些以后手动修。用这个粗略的分界线:

影响页数处理方式原因
50+本场就修模板级或注册表级 bug,一个修复带动很多页
10–49进了 top 3 就修值得开一个 agent diff
2–9攒到以后手动批量过太小,不值得 review 的开销
1手动改不是 agent 该做的事

按页数挑 top 3。其余全部进审计日志,留到下季度。

一次只修一条

现在退出 plan 模式(Shift+Tab 回到 default,或者你信得过范围就用 /accept-edits)。对三条问题里的每一条:

  1. 只在列出的文件里修问题 1。apply 前先给我看 diff。别碰任何其他文件。
  2. 读 diff。范围限定在”metadata”的修复绝不该改正文——改了就说明 prompt 太松。
  3. 批准,然后跑 npm run audit:contentnpm run build。两个都得过。
  4. 确认 audit:content 的问题数真的降了。没降说明是表面修复——撤掉它。
  5. commit。一条问题一个 commit,事后发现回归时回滚很精确。

session 结尾让 agent 总结:修了什么、推后了什么、注意到什么新模式。贴进审计日志。

实战示例:hreflang return 标签修复

双语站最常见的发现是 hreflang “no return tags”——这是 Google 最高频的 hreflang 错误。意思是 A 页指向了它的对应页 B,但 B 没指回来,于是 Google 可能给用户推错语言版本,或者干脆忽略你的 hreflang。在双语 EN/ZH 站上,这通常追溯到同一个根因:translationKey 不匹配,或者 alternates 列表里 enen-us 取值不一致。因为它是注册表级的,改对一个 helper 就能一次修好几百个页面——正好是上表里 50+ 那一行。让 agent 找到生成 alternates 的那段代码、在源头修值,而不是一页一页改。

第一次实操怎么跑

第一天别拿它对着整站跑。

  1. 选一个有 30–50 篇文章的类目——比整库小、又够代表性。
  2. 只在那个类目跑审计 prompt。把发现存进一个 Markdown 文件。
  3. 端到端只修一条发现。记下 agent 哪里不清楚、哪里追问了两次。
  4. 把领悟更新进 CLAUDE.md:它懂的术语、反复漏读的文件。

让它可复用

  • 把审计 prompt 存成项目 slash command,路径 .claude/commands/seo-audit.md。之后打 /seo-audit 就能跑整段 prompt,不用重打。(.claude/commands/ 是按项目的位置;~/.claude/commands/ 则让它在你所有仓库里都能用。)
  • 用一张小表追踪问题数随时间的变化——季度、总发现、top 类目。趋势比单次审计更重要。
  • 每半年重测这套流程本身。Astro 默认、Google 的 SEO 指南、Claude Code 自己的行为都会变。

FAQ

  • 需要单独的 API key 吗?: 不需要。Claude Code 包含在 Claude Pro 套餐里,每月 20 美元(年付每月 17 美元),用的是你正常订阅的 token 额度。只有做无人值守的自动化时才需要独立的 API key。
  • Claude 能看懂我的站结构吗?: 把它指向数据注册表(categories.tshubs.ts)、再保持一个 200 行以内、点名这些文件的 CLAUDE.md,效果会好很多。没有接地,发现就会变得很笼统。
  • 修复会伤 SEO 吗?: 会。最常见的翻车是标题里过度堆关键词。plan 模式加上逐条 diff review,能在上线前抓住它。
  • 小修复能跳过人工 review 吗?: 第一次审计不行。审过三次都干净之后,单行 metadata 这类琐碎改动可以批量审。
  • 该花多久?: 含修复两小时。超过四小时,说明范围太宽——缩到一个类目。
  • 想更深地处理 hreflang 怎么办?: 这次审计抓的是显眼的 return 标签和取值不匹配;想做一次专门的处理,见 AI hreflang 检查教程

容易踩的坑

  • 一个 prompt 让 Claude Code 修所有——你会拿到一个没法 review 的大 diff。
  • 不开 plan 模式跑审计,结果一句随口的”顺便修一下”就把审计变成失控的编辑。
  • 跳过发现的人工复核——再好的审计也有 10–20% 噪声。
  • 每修一次不跑 audit:content 加一次 build 验证——静默回归就溜过去了。
  • 让 agent 自创约定而不是跟注册表——把它钉死在 categories.tshubs.ts
  • 把审计输出当终稿——它是 triage 清单,不是修复清单。

相关阅读

标签: #教程 #SEO #AI 编程 #Claude Code #SEO 审计