blog-locale-audit
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseBlog Locale Audit, Multilingual Quality Control
博客本地化审计:多语言质量管控
Audits a directory of multilingual blog content to ensure every language
version is complete, consistent, correctly tagged, and SEO-optimized.
Catches international content issues before they hurt rankings.
Adapted fromby Chris Mueller (Pro Hub Challenge, March 2026). Original: https://github.com/Chriss54/multilingual-intclaude-blog-multilingual
对多语言博客内容目录进行审计,确保每个语言版本内容完整、一致、标签正确且符合SEO优化要求,在国际内容问题影响排名前及时发现问题。
改编自Chris Mueller的(Pro Hub挑战赛,2026年3月)。原项目地址:https://github.com/Chriss54/multilingual-intclaude-blog-multilingual
Workflow
工作流程
Phase 1: Discovery
第一阶段:发现
- Scan the target directory. Group blog posts by language using:
- Subdirectory names (,
en/,de/).fr/ - Frontmatter and
langfields.translatedFrom - if present.
hreflang-map.json
- Subdirectory names (
- Build a content matrix mapping which post exists in which languages.
- Detect the source language (most common target, or the
translatedFromfield insourceLanguageif present).hreflang-map.json
- 扫描目标目录,通过以下方式按语言分组博客文章:
- 子目录名称(、
en/、de/)fr/ - Frontmatter中的和
lang字段translatedFrom - 若存在文件则以此为准
hreflang-map.json
- 子目录名称(
- 构建内容矩阵,映射哪些文章存在对应语言版本
- 检测源语言(最常见的目标语言,或若存在
translatedFrom则以其中的hreflang-map.json字段为准)sourceLanguage
Phase 2: Completeness Audit
第二阶段:完整性审计
Show which translations are missing:
undefined展示缺失的翻译版本:
undefinedTranslation coverage matrix
翻译覆盖矩阵
| Post (EN) | DE | FR | ES | JA |
|---|---|---|---|---|
| how-to-avoid-ai-slop | ok | ok | missing | missing |
| content-marketing-2026 | ok | missing | ok | missing |
Coverage: 60% (6 of 10 expected translations present)
Missing: 4 translations needed
undefined| 文章(英文) | 德语 | 法语 | 西班牙语 | 日语 |
|---|---|---|---|---|
| how-to-avoid-ai-slop | ok | ok | missing | missing |
| content-marketing-2026 | ok | missing | ok | missing |
覆盖度:60%(10个预期翻译版本中已存在6个)
缺失:需补充4个翻译版本
undefinedPhase 3: Content Parity Audit
第三阶段:内容一致性审计
For every post that exists in multiple languages:
| Check | What | Severity |
|---|---|---|
| Section count | Same number of H2 and H3 sections | Critical |
| FAQ count | Same number of FAQ items | High |
| Image count | Same number of images | High |
| Chart count | Same number of charts (SVG figures) | High |
| Word count ratio | Within expected band for language pair (DE +20% to +30%, JA -20%, ES +10%) | Medium |
| Link count | Similar internal and external link counts | Medium |
| Citation capsule count | Same number per H2 across versions | Medium |
| Frontmatter parity | All required fields present per version | High |
Flag every significant deviation as an issue.
针对存在多语言版本的每篇文章:
| 检查项 | 检查内容 | 严重程度 |
|---|---|---|
| 章节数量 | H2和H3章节数量一致 | 关键 |
| FAQ数量 | FAQ条目数量一致 | 高 |
| 图片数量 | 图片数量一致 | 高 |
| 图表数量 | 图表(SVG图形)数量一致 | 高 |
| 字数比例 | 符合语言对的预期范围(德语+20%至+30%,日语-20%,西班牙语+10%) | 中等 |
| 链接数量 | 内部和外部链接数量相近 | 中等 |
| 引用框数量 | 各版本每个H2下的引用框数量一致 | 中等 |
| Frontmatter一致性 | 各版本均包含所有必填字段 | 高 |
将所有显著偏差标记为问题。
Phase 4: SEO Parity Audit
第四阶段:SEO一致性审计
For every language version verify:
| Element | Check | Severity |
|---|---|---|
| Title tag | Present, correct length for the language | Critical |
| Meta description | Present, correct length, contains a stat | Critical |
| Present, valid ISO 639-1 | Critical |
Schema | Matches | High |
Schema | Points to the source URL | High |
| Alt text | Translated (no English alt in non-EN posts) | High |
| Slug | Localized (no English slug in non-EN posts) | Medium |
| Tags | Localized | Medium |
| Keywords | Localized | Medium |
验证每个语言版本的以下元素:
| 元素 | 检查内容 | 严重程度 |
|---|---|---|
| 标题标签 | 存在且符合对应语言的长度要求 | 关键 |
| 元描述 | 存在、长度符合要求且包含数据统计 | 关键 |
| 存在且为有效的ISO 639-1编码 | 关键 |
Schema的 | 与 | 高 |
Schema的 | 指向源语言URL | 高 |
| 替代文本(Alt text) | 已翻译(非英文文章中不得出现英文替代文本) | 高 |
| 路径别名(Slug) | 已本地化(非英文文章中不得出现英文路径别名) | 中等 |
| 标签(Tags) | 已本地化 | 中等 |
| 关键词(Keywords) | 已本地化 | 中等 |
Phase 5: Hreflang Audit
第五阶段:Hreflang审计
If , , or
exists in the directory:
hreflang-tags.htmlhreflang-sitemap.xmlhreflang-map.json| Check | What | Severity |
|---|---|---|
| Self-referencing | Each page references itself | Critical |
| Return tags | Every relationship is bidirectional | Critical |
| Present, points to source language | Critical |
| Language codes | Valid ISO 639-1 (with optional region) | High |
| URL consistency | Same protocol, same trailing-slash convention | Medium |
| Completeness | Every language version represented | High |
If no hreflang files exist, report it as a critical gap and offer:
"Run to regenerate, or create
hreflang-tags.html manually."
/blog multilingual <topic> --languages ...If from claude-seo is installed, suggest running it for
deeper validation.
seo-hreflang若目录中存在、或文件:
hreflang-tags.htmlhreflang-sitemap.xmlhreflang-map.json| 检查项 | 检查内容 | 严重程度 |
|---|---|---|
| 自引用 | 每个页面均引用自身 | 关键 |
| 双向标签 | 所有关联关系均为双向 | 关键 |
| 存在且指向源语言版本 | 关键 |
| 语言编码 | 为有效的ISO 639-1编码(可附带地区编码) | 高 |
| URL一致性 | 协议一致、尾斜杠规则一致 | 中等 |
| 完整性 | 所有语言版本均已覆盖 | 高 |
若不存在hreflang文件,将其报告为关键缺口,并提供建议:
"运行重新生成,或手动创建hreflang-tags.html。"
/blog multilingual <topic> --languages ...若已安装claude-seo中的工具,建议运行该工具进行深度验证。
seo-hreflangPhase 6: Freshness Audit
第六阶段:新鲜度审计
For posts with in frontmatter:
translatedDate| Check | What | Severity |
|---|---|---|
| Source updated after translation | Source modified after | Critical |
| Translation older than 90 days | May need refresh | Medium |
| Versions out of sync | Medium |
File mtime newer than | Content changed without frontmatter update | Warning |
Emit actionable commands per stale file:
3 translations are stale:
- de/ki-trends-2026.md (source updated 2 days ago)
-> Run: /blog translate en/ai-trends-2026.md --to de
- fr/ki-trends-2026.md (source updated 2 days ago)
-> Run: /blog translate en/ai-trends-2026.md --to fr
- es/tendencias-ia-2026.md (translation > 90 days old)
-> Run: /blog translate en/ai-trends-2026.md --to es针对Frontmatter中包含字段的文章:
translatedDate| 检查项 | 检查内容 | 严重程度 |
|---|---|---|
| 源语言版本更新晚于翻译版本 | 源语言版本在 | 关键 |
| 翻译版本超过90天 | 可能需要更新 | 中等 |
各版本 | 版本不同步 | 中等 |
文件修改时间晚于 | 内容已修改但未更新Frontmatter | 警告 |
针对每个过时文件输出可执行命令:
3个翻译版本已过时:
- de/ki-trends-2026.md(源语言版本2天前更新)
-> 运行:/blog translate en/ai-trends-2026.md --to de
- fr/ki-trends-2026.md(源语言版本2天前更新)
-> 运行:/blog translate en/ai-trends-2026.md --to fr
- es/tendencias-ia-2026.md(翻译版本已超过90天)
-> 运行:/blog translate en/ai-trends-2026.md --to esPhase 7: Report
第七阶段:报告
Output as markdown by default. If the user passes , also write the
report to with the same content.
--htmllocale-audit-report.htmlundefined默认以Markdown格式输出。若用户传入参数,同时将报告内容写入文件。
--htmllocale-audit-report.htmlundefinedMultilingual content audit report
多语言内容审计报告
Summary
摘要
- Posts audited: [N] across [N] languages
- Overall health: [score] / 100
- Critical issues: [N]
- Warnings: [N]
- 审计文章数量:[N]篇,涉及[N]种语言
- 整体健康评分:[score] / 100
- 关键问题:[N]个
- 警告:[N]个
Translation coverage
翻译覆盖情况
[Matrix from Phase 2]
[第二阶段的矩阵内容]
Issues found
发现的问题
Critical
关键问题
- [Issue with file references]
- [带文件引用的问题描述]
Warnings
警告
- [Issue with file references]
- [带文件引用的问题描述]
Passed
通过检查项
- [Checks that passed]
- [已通过的检查项]
Prioritized fixes
优先级修复建议
- [Highest-impact action]
- [...]
- [影响最高的操作]
- [...]
Stale-translation alerts
过时翻译提醒
[Runnable commands from Phase 6]
[第六阶段的可运行命令]
Quick fixes
快速修复
- Run for [N] missing translations.
/blog translate <file> --to <missing-langs> - Run to regenerate hreflang assets.
/blog multilingual - Run for weak cultural adaptations.
/blog localize <file> --locale <code>
undefined- 针对[N]个缺失翻译版本,运行
/blog translate <file> --to <missing-langs> - 运行重新生成hreflang资源
/blog multilingual - 针对文化适配不足的内容,运行
/blog localize <file> --locale <code>
undefinedError Handling
错误处理
| Scenario | Action |
|---|---|
| Empty directory | "No blog posts found in [path]" |
| Only one language present | Report coverage, suggest target languages |
| No hreflang files | Flag as critical gap, offer regeneration |
| Unrecognized file format | Skip with a warning |
| 场景 | 操作 |
|---|---|
| 空目录 | 提示:“在[路径]中未找到博客文章” |
| 仅存在一种语言版本 | 报告覆盖情况,建议目标语言 |
| 无hreflang文件 | 标记为关键缺口,提供重新生成建议 |
| 无法识别的文件格式 | 跳过并发出警告 |
Cross-References
交叉引用
- Fill missing translations:
/blog translate <file> --to <missing-codes> - Deepen weak adaptations:
/blog localize <file> --locale <code> - Regenerate hreflang assets:
/blog multilingual <topic> --languages <codes>
- 补充缺失翻译:
/blog translate <file> --to <missing-codes> - 优化弱适配内容:
/blog localize <file> --locale <code> - 重新生成hreflang资源:
/blog multilingual <topic> --languages <codes>