SEO

HE
henuwangkai
Community
👁 5·💰 ~0.06 USD·📅 Published Mar 24, 2026·📖 1 min read

SEO

1. SEO 内容部署 Skill

SEO 内容自动部署 Skill,含内容生成、发布、索引提交、效果追踪

Prompt

---
name: KeepRule SEO 开发循环规范
description: 模块化开发、代码检查、部署触发。只要接收到 SEO 相关需求,必须按照这个流程执行:声明模块 → 修改代码 → Build 检查 → 触发部署
---

# KeepRule SEO 开发循环规范

> **核心原则**:一次一个模块,改完检查代码,触发词部署

## ⚠️ 强制执行规则(必须遵守)

### 1. 模块化开发

**开始修改前必须声明**:「本次修改属于 M[X] - [模块名称]」

每次只修改一个模块区域内的代码,不跨模块修改。

### 2. 本地 Build 检查

修改完成后执行本地 Build 检查错误:

| 修改内容      | 检查命令                                       |
| ------------- | ---------------------------------------------- |
| 前端 (M1-M12) | `cd frontend-nuxt && npm run build`            |
| 后端 (M13)    | `cd backend && go build -o buffett-api api.go` |

**说明**:
- 本地 Build 用于提前发现 TypeScript 错误、语法错误等
- 本地 Build 结果不影响发布(`prod.sh` 会在远程服务器重新 Build)
- Build 失败必须修复,避免发布后远程也失败

### 3. 部署触发词

当用户说以下词汇时,执行部署脚本:

| 用户说                                                             | 执行命令             |
| ------------------------------------------------------------------ | -------------------- |
| 发布前端 / 部署前端 / 上线前端                                     | `./prod.sh frontend` |
| 发布后端 / 部署后端 / 上线后端                                     | `./prod.sh backend`  |
| 发布 / 部署 / 上线 / 推上去 / 上生产 / 更新线上 / deploy / publish | `./prod.sh`          |

**部署前提**:代码必须已 commit 并 push 到 main 分支(prod.sh 会从远程 git pull)

---

## 模块定义(13 个模块)

### 前端模块(M1-M12)

| 模块编号 | 模块名称                     | 涉及文件范围                                                                                                                        |
| -------- | ---------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
| **M1**   | 未登录首页(营销页或者官网) | `pages/index.vue`(未认证部分)、`components/marketing/`                                                                            |
| **M2**   | 登录后首页                   | `pages/keeprule/index.vue`、笔记/交易组件                                                                                           |
| **M3**   | 规则模块                     | `pages/rules.vue`、`pages/keeprule/rules.vue`、`components/principles/PrincipleCard.vue`、`components/principles/PrincipleGrid.vue` |
| **M4**   | 原则详情                     | `pages/principles/[slug].vue`、`components/principles/detail/`                                                                      |
| **M5**   | Chat AI                      | `components/chat/`、`components/layout/MobileAI.vue`、Chat 相关 API                                                                 |
| **M6**   | 投资大师                     | `pages/master.vue`、`pages/masters/`、`components/masters/`                                                                         |
| **M7**   | Wiki 知识库                  | `pages/wiki/`、`pages/keeprule/wiki/`                                                                                               |
| **M8**   | 用户中心/设置                | 用户信息、偏好设置相关页面和组件                                                                                                    |
| **M9**   | 新手引导                     | `components/onboarding/` 全部组件(WelcomeModal、Guide、EmptyState 等)                                                             |
| **M10**  | 布局/导航                    | `components/layout/Header.vue`、`components/layout/SidePanel.vue`、`components/auth/`                                               |
| **M11**  | 关于/帮助                    | `components/common/AboutModal.vue`、帮助文档相关页面                                                                                |
| **M12**  | SEO/Meta                     | 页面 `useHead()`、结构化数据、sitemap、robots、composables/useSeoMetaTags.ts                                                        |

### 后端模块(M13)

| 模块编号 | 模块名称 | 涉及文件范围                                     |
| -------- | -------- | ------------------------------------------------ |
| **M13**  | 后端 API | `backend/internal/`(handler、logic、model)     |

---

## 开发循环流程

┌─────────────────────────────────────────────────────────────────┐ │ 1. 用户需求 │ │ ↓ │ │ 2. 声明:「本次修改属于 M[X] - [模块名称]」 │ │ ↓ │ │ 3. 修改代码(仅限该模块范围) │ │ ↓ │ │ 4. 本地 Build 检查错误 │ │ ├── 有错误 → 修复 → 重新 Build │ │ └── 无错误 → 继续 │ │ ↓ │ │ 5. commit & push 到当前分支 │ │ ↓ │ │ 6. 用户说「发布」触发词 → 合并到 main → 执行 ./prod.sh │ │ (远程服务器会重新 Build,本地 Build 只是提前检查) │ └─────────────────────────────────────────────────────────────────┘


---

## Build 检查清单

### 前端修改后(M1-M12)

 `frontend-nuxt` 目录执行:

```bash
cd frontend-nuxt
npm run build

检查项:

  • npm run build 无错误
  • 无 TypeScript 编译错误
  • 响应式布局考虑(移动端 < 768px)
  • 多语言文本使用 $t() 包裹
  • 路由使用 localePath() 生成
  • SEO 相关修改:
    • 每个页面都有 useSeoMetaTags()setSeoMeta()
    • canonical URL 正确
    • hreflang 标签完整(5种语言)
    • Open Graph 标签齐全
    • JSON-LD 结构化数据正确

后端修改后(M13)

backend 目录执行:

cd backend
go build -o buffett-api api.go

检查项:

  • go build 无错误
  • API 遵循 /api/v1/buffett/xxx 前缀
  • 数据库操作带 WHERE 条件
  • 禁止操作:DROP、DELETE 不带条件、TRUNCATE

部署流程

前提条件

  1. 代码已提交到分支

    git add -A
    git commit -m "feat: xxx"
    git push origin <当前分支>
  2. 技术主管审核后合并到 main(或直接在 main 分支操作)

部署命令

# 方式1:只部署前端(SEO 相关修改通常只需要部署前端)
./prod.sh frontend

# 方式2:只部署后端
./prod.sh backend

# 方式3:全部部署
./prod.sh

prod.sh 脚本说明

  • 自动在远程服务器执行 git pull
  • 自动执行 npm installnpm run build(前端)
  • 自动执行 go build(后端)
  • 自动重启服务
  • 本地 Build 结果不会被发布,只是提前检查

示例对话

示例 1:SEO Meta 标签优化

用户:「原则详情页缺少 canonical URL,需要添加」

Claude

本次修改属于 M12 - SEO/Meta

修改文件:pages/principles/[slug].vue

[执行修改:添加 useSeoMetaTags() composable]

修改完成,执行 Build 检查...

cd frontend-nuxt && npm run build

✅ Build 成功,无错误

代码已提交到 feat_260128_15 分支


用户:「好的,发布前端」

Claude

检查前提条件...

  • ✅ 代码已 commit 并 push
  • ✅ 已合并到 main 分支(或在 main 分支)

执行部署命令:

./prod.sh frontend

部署脚本将在远程服务器执行:

  1. git pull origin main
  2. cd frontend-nuxt && npm install
  3. npm run build
  4. 重启前端服务

示例 2:Sitemap 生成

用户:「Sitemap 需要支持5种语言,而不是2种」

Claude

本次修改属于 M12 - SEO/Meta

修改文件:scripts/generate-sitemap.cjs

[执行修改:将原则页面从 2 语言改为 5 语言]

修改完成,执行 Build 检查...

cd frontend-nuxt && npm run build

✅ Build 成功,无错误

重新生成 sitemap...

node scripts/generate-sitemap.cjs

✅ Sitemap 生成成功!

  • 总计: 105 URLs(从 63 增加到 105)
  • 原则页面: 70 URLs(14 × 5 语言)

代码已提交并推送


注意事项

1. 跨模块需求

如果用户需求涉及多个模块,先拆分任务,按顺序逐个模块处理。

示例

  • 需求:「首页和原则详情页都要添加结构化数据」
  • 拆分:
    1. M1 - 未登录首页:添加 Organization Schema
    2. M4 - 原则详情:添加 Article Schema

2. 本地 vs 远程 Build

阶段 目的 位置 结果影响
本地 Build 提前检查错误,避免发布失败 本地开发机 不影响线上,仅检查
远程 Build 生成生产环境代码并部署 生产服务器 直接影响线上

3. SEO 专项注意事项

M12 - SEO/Meta 模块特殊规则

  • Sitemap 生成:修改后必须运行 node scripts/generate-sitemap.cjs
  • 5 语言支持:所有 SEO 元素都要支持 en, zh, es, fr, ar
  • hreflang 标签:每个页面都要有 6 个标签(5 语言 + x-default)
  • JSON-LD:使用 useStructuredData() composable
  • Meta 标签:统一使用 useSeoMetaTags() composable

常见 SEO 修改类型

修改类型 影响模块 Build 检查重点
Meta 标签 M12 所有页面都有 canonical + hreflang
结构化数据 M12 JSON-LD 格式正确,通过 Google 测试工具
Sitemap M12 生成后检查 URL 数量和格式
路由重构 多模块 所有 localePath() 调用都更新
图片优化 M1 LCP 图片无 lazy loading,有 fetchpriority
多语言支持 所有模块 $t() 和 localePath() 正确使用

4. 部署决策

直接部署(适用于):

  • ✅ 紧急 SEO 修复(404、死链接等)
  • ✅ Meta 标签补全
  • ✅ Sitemap 更新
  • ✅ 小型样式调整

推送让技术主管部署(适用于):

  • ⚠️ 大规模路由重构
  • ⚠️ 数据库结构变更
  • ⚠️ 新功能上线
  • ⚠️ 涉及多个模块的复杂改动

判断原则

  • 改动文件 < 5 个 → 可直接部署
  • 改动文件 ≥ 5 个 → 推送审核
  • 涉及后端 API 变更 → 推送审核
  • 纯 SEO 配置(Meta/Sitemap) → 可直接部署

检查清单总结

修改前

  • 声明模块:「本次修改属于 M[X] - [模块名称]」
  • 确认在正确的 git 分支上(feat_yymmdd_hh)

修改中

  • 只修改该模块范围内的代码
  • 遵循项目规范(多语言、响应式、API 前缀等)

修改后

  • 执行本地 Build 检查(前端或后端)
  • Build 无错误
  • SEO 修改:运行生成脚本(如 sitemap)
  • commit 并 push 到当前分支

部署前

  • 代码已合并到 main 分支(或在 main 分支)
  • 确认是否需要技术主管审核
  • 等待用户说出触发词(发布/部署/上线等)

部署时

  • 执行正确的部署命令(./prod.sh frontend./prod.sh backend./prod.sh
  • 等待远程 Build 完成
  • 验证线上效果

快速参考

触发词速查表

用户说 执行命令
发布前端 ./prod.sh frontend
发布后端 ./prod.sh backend
发布 / 部署 / 上线 ./prod.sh
推上去 / 上生产 ./prod.sh
更新线上 / deploy ./prod.sh

Build 命令速查表

项目类型 目录 命令
前端 frontend-nuxt npm run build
后端 backend go build -o buffett-api api.go

模块速查表

模块 名称 关键词
M1 未登录首页 营销页、官网、Landing Page
M4 原则详情 /principles/[slug]
M6 投资大师 /masters
M12 SEO/Meta Sitemap、Meta 标签、结构化数据
M13 后端 API API、数据库、Handler、Logic

常见问题

Q: Build 失败怎么办?

A: 查看错误信息,常见问题:

  • TypeScript 类型错误 → 修复类型定义
  • 导入路径错误 → 检查 import 路径
  • 语法错误 → 修复语法
  • 修复后重新 Build

Q: 需要修改多个模块怎么办?

A: 按顺序逐个模块处理:

  1. 处理模块 A → Build 检查 → commit
  2. 处理模块 B → Build 检查 → commit
  3. 全部完成后,用户说「发布」→ 一次性部署

Q: 本地 Build 通过,远程 Build 失败?

A: 可能原因:

  • 依赖版本不一致 → 检查 package.json 和 package-lock.json
  • 环境变量缺失 → 检查 .env 配置
  • 网络问题导致依赖安装失败 → 重试部署

Q: SEO 修改需要重启服务吗?

A:

  • 前端 SEO:需要重新 Build,prod.sh frontend 会自动处理
  • Sitemap 更新:重新生成后部署即可,无需重启
  • Meta 标签修改:需要重新 Build
  • 结构化数据:需要重新 Build

结束语

遵循此规范可以确保:

  • ✅ 代码模块化,易于维护
  • ✅ 提前发现错误,减少线上问题
  • ✅ 部署流程标准化,避免手误
  • ✅ SEO 修改规范化,保证质量

记住核心流程:声明模块 → 修改代码 → Build 检查 → 触发部署

Discussion

Discussion

Sign in to join the discussion.
MC
Maya Chen·2 hours ago

Tried this with a marketing ops workflow and it cut prompt iteration time by half. The Prompt section is especially reusable.

LW
Leo Wang·Yesterday

Would love a follow-up showing how you adapted this for team use.

  • We forked it internally
  • Replaced the model with Claude Sonnet
  • Saved the structure as a reusable playbook

Related Assets

Related Assets

Other assets published by the same creator.

Back to home