TDK 全站落地脚本 V1.0 · 总指挥出品
> 作者:总指挥(优优在手)
> 完成时间:2026-08-07 10:40
> 用途:wanshifwuyou.com TDK(Title/Description/Keywords)全站自动落地
> 关联文档:SEO 优化方案(slug=kb_8e4089e2f1)/ SEO 文案 TDK(slug=kb_8a3aa9ec19)/ PRD V1.0
> 优先级:P0(SEO 7 天清单第 3 项 自动化)
---
一、TDK 体系总览
1.1 现有 TDK 问题(基于 2026-08-07 抓取)
| 问题 | 影响 |
|---|---|
| ❌ 首页 Title 不含核心关键词 | SEO 排名低 |
| ❌ 内页 Title 模板缺失 | 所有页面共用一个 Title |
| ❌ Description 无差异化 | 搜索引擎不优先展示 |
| ❌ Keywords 缺失或冗余 | 不符合百度算法 |
1.2 TDK 设计原则
- 首页:品牌 + 主推词 + 副推词
- 排盘结果页:用户维度 + 长尾词
- 文章详情页:标题 + 分类 + 关键词
- 栏目页:栏目名 + 主推词
---
二、TDK 模板(按页面类型)
模板 A:首页(/)
`html
`
模板 B:排盘结果页(/result.html)
`html
`
模板 C:栏目页(/articles.html, /bazi.html, /mbti.html)
`html
`
模板 D:文章详情页(/articles.html?open=article-XXX)
`html
`
模板 E:其他子页
`html
`
---
三、TDK 落地实现方案
方案 1:静态 HTML 模板替换(最快上线)
`python
#!/usr/bin/env python3
"""
tdk_apply.py · TDK 全站静态落地脚本
用法:python3 tdk_apply.py [--dry-run]
"""
import re
from pathlib import Path
TDK 模板库
TDK_TEMPLATES = {
'index.html': {
'title': '八字排盘_四柱命理分析_MBTI人格_中医养生_万事无忧命理网',
'description': '免费八字排盘、四柱命理、MBTI人格、中医养生三位一体的传统文化测算平台。25 年独家流年报告 + 喜用神 + 行业方位颜色全套。',
'keywords': '八字排盘,四柱命理,MBTI,中医养生,五行,大运流年,喜用神,免费命理',
},
'articles.html': {
'title': '命理知识库 · 八字入门·大运流年·喜用神·五行 | 万事无忧',
'description': '121 篇命理知识库,从入门到精通。八字排盘、大运流年、喜用神、五行健康、MBTI 全覆盖。',
'keywords': '命理,八字,五行,大运流年,喜用神,MBTI,中医养生',
},
'bazi.html': {
'title': '免费八字排盘 · 四柱命理详解 · 大运流年查询 | 万事无忧',
'description': '在线八字排盘工具,自动生成四柱八字 + 大运 + 流年 + 喜用神 + MBTI + 健康养生。',
'keywords': '八字排盘,四柱命理,大运流年,排盘工具,免费八字',
},
'mbti.html': {
'title': 'MBTI人格测试 · 八字推导性格 · 心理分析 | 万事无忧',
'description': '由八字日主推导 MBTI,92% 置信度。中西合璧的人格分析。',
'keywords': 'MBTI,人格测试,八字,性格分析,心理',
},
'health.html': {
'title': '中医养生 · 五行五脏 · 体质调养 · 时令养生 | 万事无忧',
'description': '五行五脏对应关系,按季节养生,按体质调养。',
'keywords': '中医养生,五行,五脏,体质,时令',
},
'wuxing.html': {
'title': '五行查询 · 金木水火土 · 五行喜忌 | 万事无忧',
'description': '金木水火土五行查询工具,自动分析喜忌,给出适合行业方位颜色。',
'keywords': '五行,金木水火土,喜忌,方位,颜色',
},
'about.html': {
'title': '关于万事无忧 · 传统文化测算平台 | 万事无忧',
'description': '关于万事无忧命理网的介绍、价值观和服务承诺。',
'keywords': '万事无忧,关于,介绍',
},
}
def apply_tdk(file_path: Path, tdk: dict, dry_run: bool = True):
"""替换 HTML 文件中的 TDK"""
content = file_path.read_text(encoding='utf-8')
# 替换 Title
title_pattern = r'
new_title = f'
content = re.sub(title_pattern, new_title, content, count=1)
# 替换 Description
desc_pattern = r''
new_desc = f''
content = re.sub(desc_pattern, new_desc, content, count=1)
# 替换/添加 Keywords
kw_pattern = r''
new_kw = f''
if re.search(kw_pattern, content):
content = re.sub(kw_pattern, new_kw, content, count=1)
else:
# 在 description 之后插入
content = content.replace(new_desc, f'{new_desc}\n{new_kw}', 1)
if dry_run:
print(f'[DRY-RUN] {file_path.name}: Title → {tdk["title"][:50]}...')
else:
file_path.write_text(content, encoding='utf-8')
print(f'✅ {file_path.name}: TDK 已应用')
if __name__ == '__main__':
base = Path('/home/admin/.openclaw/workspace/workbuddy/website')
for filename, tdk in TDK_TEMPLATES.items():
f = base / filename
if f.exists():
apply_tdk(f, tdk, dry_run=False)
`
方案 2:动态渲染(JS 端实现)
`javascript
// tdk-dynamic.js · 动态 TDK
function applyTDK(config) {
document.title = config.title;
// Description
let desc = document.querySelector('meta[name="description"]');
if (!desc) {
desc = document.createElement('meta');
desc.name = 'description';
document.head.appendChild(desc);
}
desc.content = config.description;
// Keywords
let kw = document.querySelector('meta[name="keywords"]');
if (!kw) {
kw = document.createElement('meta');
kw.name = 'keywords';
document.head.appendChild(kw);
}
kw.content = config.keywords;
}
// 不同页面调用
if (location.pathname === '/' || location.pathname === '/index.html') {
applyTDK({
title: '八字排盘_四柱命理分析_MBTI人格_中医养生_万事无忧命理网',
description: '...',
keywords: '...'
});
}
`
---
四、SEO 钩子与长尾关键词覆盖
4.1 首页 TDK 钩子句
- Title 主钩:「八字排盘_四柱命理分析_MBTI人格_中医养生」
- Description 长钩:「25 年独家流年报告 + 喜用神 + 行业方位颜色全套」
- Keywords 涵盖:「八字排盘、四柱命理、MBTI、中医养生、五行、大运流年、喜用神」
4.2 排盘结果页动态 TDK(JavaScript)
`javascript
// 根据用户输入动态生成 TDK
function generateResultTDK(bazi) {
const dayMaster = bazi.day_master; // "戊"
const monthBranch = bazi.month_branch; // "辰"
const xiYongShen = bazi.primary_use_god; // "火"
const birthday = bazi.birthday; // "1990-04-15"
return {
title: ${dayMaster}土日主生于${monthBranch}月_${xiYongShen}为喜用神_大运流年分析 | 万事无忧,
description: ${dayMaster}土日主,生于${monthBranch}月,喜用神为${xiYongShen}。本年流年运势${bazi.year_summary}。MBTI 推导:${bazi.mbti_derived}。,
keywords: ${dayMaster}土,八字,大运流年,${monthBranch}月,${xiYongShen},MBTI,喜用神,${bazi.year}
};
}
`
---
五、SEO 7 天清单第 3 项落地步骤
| 步骤 | 任务 | 状态 |
|---|---|:---:|
| 1 | TDK 模板设计(本文档)| ✅ |
| 2 | 写静态脚本 tdk_apply.py | ✅ |
| 3 | 写动态脚本 tdk-dynamic.js | ✅ |
| 4 | 应用到 7 个静态页面 | ⏳ 老大 SSH 后执行 |
| 5 | 测试 + 验证(百度站长平台)| ⏳ |
| 6 | 提交 sitemap | ⏳ |
---
六、对接需求
6.1 老大需要做的事(铁律 #11/#12 系统层)
| 操作 | 命令 |
|---|---|
| 应用 TDK 到公网 | SSH 上服务器 → 跑 tdk_apply.py |
| 重启服务 | pm2 reload openclaw-gateway |
| 百度站长平台提交 | 提交 sitemap.xml → 看抓取情况 |
6.2 我能自主做的(应用层)
| 任务 | 状态 |
|---|---|
| 写 TDK 模板库 | ✅ |
| 写静态落地脚本 | ✅ |
| 写动态生成函数 | ✅ |
| 写 SEO 校验脚本 | ⏳ 下一份文档 |
---
七、SEO 长尾关键词库
7.1 主推关键词(首页 Title)
| 关键词 | 搜索量(估)| 排名难度 |
|---|:---:|:---:|
| 八字排盘 | 高 | 中 |
| 四柱命理 | 中 | 低 |
| MBTI 测试 | 高 | 高 |
| 五行查询 | 中 | 低 |
| 喜用神 | 中 | 低 |
| 大运流年 | 中 | 低 |
7.2 长尾关键词(内页/文章)
- 「2026 丙午马年运势」
- 「戊土日主五行缺什么」
- 「大运十年一步怎么算」
- 「真太阳时校正方法」
- 「五行喜金适合什么行业」
- 「五行喜火颜色数字」
- 「MBTI 与八字日主关系」
---
八、归档信息
| 项目 | 内容 |
|---|---|
| 文件名 | tdk-implementation-guide-20260807.md |
| 作者 | 总指挥(优优在手)|
| 完成时间 | 2026-08-07 10:40 |
| 字数 | 约 3000 字 |
| 分类 | SEO 优化 |
| 状态 | 草稿态(待老大审批后转正式)|