blog-analyze
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseBlog Analyzer -- Quality Audit & Scoring
博客分析工具 -- 质量审核与评分
Scores blog posts on a 0-100 scale across 5 categories and provides prioritized
improvement recommendations. Includes AI content detection analysis. Works with
local files or published URLs.
Reference documents:
- -- full scoring checklist
references/quality-scoring.md - -- E-E-A-T evaluation criteria
references/eeat-signals.md
基于0-100分制对博客文章进行5类别评分,并提供优先级改进建议。包含AI内容检测分析功能,支持本地文件或已发布URL。
参考文档:
- -- 完整评分检查表
references/quality-scoring.md - -- E-E-A-T评估标准
references/eeat-signals.md
Input Handling
输入处理
- Local file: Read the file directly
- URL: Fetch with WebFetch, extract content
- Directory: Scan for blog files, audit all (batch mode)
- Flags: ,
--format json|table,--batch--sort score
- 本地文件:直接读取文件
- URL:通过WebFetch获取并提取内容
- 目录:扫描博客文件,批量审核所有内容(批量模式)
- 参数:、
--format json|table、--batch--sort score
Scoring Process
评分流程
Step 1: Content Extraction
步骤1:内容提取
Read the blog post and extract:
- Frontmatter (title, description, date, lastUpdated, author, tags)
- Heading structure (H1, H2, H3 with hierarchy)
- Paragraph count and word counts per paragraph
- Statistics (any number claims with or without sources)
- Images (count, alt text presence, format)
- Charts/SVGs (count, type diversity)
- Links (internal, external, broken)
- FAQ section presence
- Schema markup (types present)
- Meta tags (title, description, OG tags, twitter cards)
- Sentence lengths for burstiness analysis
- Vocabulary tokens for diversity scoring
读取博客文章并提取以下信息:
- Frontmatter(标题、描述、日期、最后更新时间、作者、标签)
- 标题结构(H1、H2、H3层级)
- 段落数量及每段字数
- 统计数据(所有带/不带来源的数值声明)
- 图片(数量、是否包含替代文本、格式)
- 图表/SVG(数量、类型多样性)
- 链接(内部链接、外部链接、失效链接)
- 是否存在FAQ板块
- Schema标记(已有的标记类型)
- 元标签(标题、描述、OG tags、twitter cards)
- 句子长度(用于句子长度变化度分析)
- 词汇标记(用于多样性评分)
Step 2: Score Each Category
步骤2:各类别评分
Load for the full checklist. Score each:
references/quality-scoring.md加载获取完整检查表,对每个类别进行评分:
references/quality-scoring.mdContent Quality (30 points)
内容质量(30分)
| Check | Points | Pass Criteria |
|---|---|---|
| Depth/comprehensiveness | 7 | Covers topic thoroughly, no major gaps |
| Readability (Flesch 60-70) | 7 | Flesch 60-70 ideal, 55-75 acceptable; Grade 7-8; Gunning Fog 7-8 |
| Originality/unique value markers | 5 | Original data, case studies, first-hand experience |
| Sentence & paragraph structure | 4 | Avg sentence 15-20 words, ≤25% over 20; paragraphs 40-80 words; H2 every 200-300 words |
| Engagement elements | 4 | Summary box, callouts, varied content blocks. Accepts: "TL;DR", "Key Takeaways", "The Bottom Line", "What You'll Learn", "At a Glance", "In Brief" |
| Grammar/anti-pattern | 3 | Passive voice ≤10%, AI trigger words ≤5/1K, transition words 20-30%, clean prose |
Readability Bands (apply per persona, or use default):
| Audience | Flesch Grade | Flesch Ease | Scoring Impact |
|---|---|---|---|
| Consumer | 6-8 | 60-80 | Full points if in range |
| Professional | 8-10 | 50-60 | Full points if in range |
| Technical | 10-12 | 30-50 | Full points if in range |
| Default (no persona) | 7-8 | 60-70 | Current scoring unchanged |
Content clarity is the #2 factor for AI citation probability (+32.83%
score differential). Average US adult reads at 7th-8th grade level.
| 检查项 | 分值 | 通过标准 |
|---|---|---|
| 深度/全面性 | 7 | 全面覆盖主题,无重大遗漏 |
| 可读性(Flesch指数60-70) | 7 | Flesch指数理想范围60-70,可接受范围55-75;对应7-8年级水平;Gunning Fog指数7-8 |
| 原创性/独特价值标识 | 5 | 包含原创数据、案例研究、一手经验 |
| 句子与段落结构 | 4 | 平均句长15-20词,超过20词的句子占比≤25%;段落长度40-80词;每200-300词设置一个H2标题 |
| 互动元素 | 4 | 包含摘要框、提示框、多样化内容模块。可接受形式:"TL;DR"、"关键要点"、"总结"、"你将学到什么"、"概览"、"简介" |
| 语法/反模式 | 3 | 被动语态占比≤10%,AI触发词≤5个/1000词,过渡词占比20-30%,行文简洁流畅 |
可读性区间(可针对不同用户群体调整,或使用默认值):
| 受众 | Flesch年级水平 | Flesch易读度 | 评分影响 |
|---|---|---|---|
| 普通消费者 | 6-8 | 60-80 | 处于范围内得满分 |
| 专业人士 | 8-10 | 50-60 | 处于范围内得满分 |
| 技术人员 | 10-12 | 30-50 | 处于范围内得满分 |
| 默认(无指定群体) | 7-8 | 60-70 | 评分规则不变 |
内容清晰度是影响AI引用概率的第二大因素(得分差异+32.83%)。美国成年人平均阅读水平为7-8年级。
SEO Optimization (25 points)
SEO优化(25分)
| Check | Points | Pass Criteria |
|---|---|---|
| Heading hierarchy with keywords | 5 | H1 -> H2 -> H3, no skips, keyword in 2-3 headings |
| Title tag (40-60 chars, keyword, power word) | 4 | Front-loaded keyword, positive sentiment |
| Keyword placement/density | 4 | Natural integration, no stuffing, in first 100 words |
| Internal linking (3-10 contextual) | 4 | Descriptive anchor text, bidirectional |
| URL structure | 3 | Short, keyword-rich, no stop words, lowercase |
| Meta description (150-160 chars, stat) | 3 | Fact-dense, includes one statistic |
| External linking (tier 1-3) | 2 | 3-8 outbound links to authoritative sources |
| 检查项 | 分值 | 通过标准 |
|---|---|---|
| 含关键词的标题层级 | 5 | 遵循H1→H2→H3层级,无跳级,2-3个标题中包含关键词 |
| 标题标签(40-60字符,含关键词、强力词汇) | 4 | 前置关键词,语气积极 |
| 关键词布局/密度 | 4 | 自然融入,无堆砌,在开头100词内出现 |
| 内部链接(3-10个上下文相关链接) | 4 | 锚文本描述性强,双向链接 |
| URL结构 | 3 | 简短、含关键词、无停用词、全小写 |
| 元描述(150-160字符,含统计数据) | 3 | 信息密集,包含至少一项统计数据 |
| 外部链接(1-3级来源) | 2 | 3-8个指向权威来源的出站链接 |
E-E-A-T Signals (15 points)
E-E-A-T信号(15分)
| Check | Points | Pass Criteria |
|---|---|---|
| Author attribution (named, with bio) | 4 | Real name, credentials, not sales pitch |
| Source citations (tier 1-3, inline) | 4 | 8+ unique stats, zero fabricated |
| Trust indicators | 4 | Contact page, about page, editorial policy |
| Experience signals | 3 | "When we tested...", original photos/data |
When scoring source citations under E-E-A-T, evaluate whether each public statistic carries the FLOW evidence triple: year anchor in prose, inline citation with publisher and title, URL with retrieval date in the source block. Posts that cite tier 1-3 sources but lack retrieval dates score lower on this subcategory than posts that include the full triple. See for the standard.
skills/blog/references/flow-alignment.md| 检查项 | 分值 | 通过标准 |
|---|---|---|
| 作者署名(真实姓名+简介) | 4 | 真实姓名、资质证明,非销售话术 |
| 来源引用(1-3级来源,内嵌引用) | 4 | 至少8个独特统计数据,无伪造内容 |
| 信任标识 | 4 | 包含联系页面、关于页面、编辑政策 |
| 经验信号 | 3 | 包含"我们测试时发现..."、原创照片/数据 |
在E-E-A-T下评分来源引用时,需评估每个公开统计数据是否符合FLOW证据三重标准:正文中的年份锚点、包含出版商和标题的内嵌引用、来源区块中带有检索日期的URL。引用1-3级来源但缺少检索日期的文章,在该子项的得分低于包含完整三重标准的文章。详见中的标准。
skills/blog/references/flow-alignment.mdTechnical Elements (15 points)
技术元素(15分)
| Check | Points | Pass Criteria |
|---|---|---|
| Schema markup (3+ types = bonus) | 4 | BlogPosting + FAQ + Person minimum |
| Image optimization | 3 | AVIF/WebP, descriptive alt text, lazy except LCP |
| Structured data elements | 2 | Tables, lists, comparison blocks |
| Page speed signals | 2 | LCP < 2.5s, no render-blocking JS |
| Mobile-friendliness | 2 | Responsive, tap targets 48px+ |
| OG/social meta tags | 2 | og:title, og:description, og:image, twitter:card |
| 检查项 | 分值 | 通过标准 |
|---|---|---|
| Schema标记(3种及以上类型可获加分) | 4 | 至少包含BlogPosting + FAQ + Person类型 |
| 图片优化 | 3 | 使用AVIF/WebP格式,包含描述性替代文本,除LCP图片外均启用懒加载 |
| 结构化数据元素 | 2 | 包含表格、列表、对比模块 |
| 页面速度信号 | 2 | LCP < 2.5秒,无阻塞渲染的JS |
| 移动端适配 | 2 | 响应式设计,点击目标尺寸≥48px |
| OG/社交元标签 | 2 | 包含og:title、og:description、og:image、twitter:card |
AI Citation Readiness (15 points)
AI引用就绪度(15分)
| Check | Points | Pass Criteria |
|---|---|---|
| Passage-level citability (120-180 words) | 4 | Self-contained sections with stat + source |
| Q&A formatted sections | 3 | 60-70% of H2s as questions, FAQ present |
| Entity clarity | 3 | Unambiguous topic entity, consistent terminology |
| Content structure for extraction | 3 | Answer-first, tables with thead, comparison formats |
| AI crawler accessibility | 2 | SSR/SSG, no JS-gated content |
| 检查项 | 分值 | 通过标准 |
|---|---|---|
| 段落级可引用性(120-180词) | 4 | 独立完整的段落包含统计数据+来源 |
| Q&A格式板块 | 3 | 60-70%的H2为问题形式,存在FAQ板块 |
| 实体清晰度 | 3 | 主题实体明确,术语一致 |
| 便于提取的内容结构 | 3 | 先给出答案,表格包含表头,采用对比格式 |
| AI爬虫可访问性 | 2 | 使用SSR/SSG,无JS限制内容 |
Step 3: AI Content Detection
步骤3:AI内容检测
Analyze the post for AI-generated content risk:
Burstiness Score (sentence length variance):
- Calculate standard deviation of sentence lengths across the post
- Human writing: high variance (short punchy + long complex sentences)
- AI writing: low variance (consistently medium-length sentences)
- Score: 0-10 scale (10 = very human-like burstiness)
Known AI Phrase Detection -- flag occurrences of these 17 phrases:
- "It's important to note"
- "In today's digital landscape"
- "Delve into"
- "Navigating the complexities"
- "Let's explore"
- "Furthermore"
- "In conclusion"
- "It is worth mentioning"
- "Embark on"
- "Cutting-edge"
- "Leverage" (as a verb, non-financial context)
- "Game-changer"
- "Revolutionize"
- "Streamline"
- "Harness the power"
- "Dive deep"
- "Unlock the potential"
- Em dashes (-) - count all instances, flag as AI writing pattern
Vocabulary Diversity (Type-Token Ratio):
- Calculate unique words / total words
- Human writing: TTR typically 0.4-0.6 for long-form
- AI writing: TTR often below 0.35 (repetitive vocabulary)
AI Content Risk Assessment:
- Flag if AI probability > 50% based on combined signals
- Provide specific passages that triggered the flag
- Recommend humanization: personal anecdotes, varied sentence rhythm, domain jargon
分析文章的AI生成内容风险:
句子长度变化度得分(句子长度方差):
- 计算整篇文章的句子长度标准差
- 人工写作:方差高(短句有力+长句复杂)
- AI写作:方差低(句子长度始终中等)
- 评分:0-10分(10=非常接近人工写作的变化度)
已知AI短语检测 -- 标记以下18种短语的出现:
- "It's important to note"
- "In today's digital landscape"
- "Delve into"
- "Navigating the complexities"
- "Let's explore"
- "Furthermore"
- "In conclusion"
- "It is worth mentioning"
- "Embark on"
- "Cutting-edge"
- "Leverage"(动词,非金融语境)
- "Game-changer"
- "Revolutionize"
- "Streamline"
- "Harness the power"
- "Dive deep"
- "Unlock the potential"
- 破折号(-) -- 统计所有实例,标记为AI写作模式
词汇多样性(类型-标记比率,Type-Token Ratio):
- 计算唯一词数/总词数
- 人工写作:长篇内容的TTR通常为0.4-0.6
- AI写作:TTR常低于0.35(词汇重复)
AI内容风险评估:
- 若综合信号显示AI生成概率>50%则标记
- 提供触发标记的具体段落
- 建议人工优化:添加个人轶事、调整句子节奏、使用领域术语
Step 4: Determine Rating
步骤4:确定评级
| Score | Rating | Action |
|---|---|---|
| 90-100 | Exceptional | Publish as-is, flagship content |
| 80-89 | Strong | Minor polish, ready for publication |
| 70-79 | Acceptable | Targeted improvements needed |
| 60-69 | Below Standard | Significant rework required |
| < 60 | Rewrite | Fundamental issues, start from outline |
| 得分 | 评级 | 行动建议 |
|---|---|---|
| 90-100 | 优秀 | 直接发布,作为核心内容 |
| 80-89 | 良好 | 小幅润色,即可发布 |
| 70-79 | 合格 | 需要针对性改进 |
| 60-69 | 不合格 | 需要重大修改 |
| < 60 | 重写 | 存在根本性问题,从大纲重新开始 |
Step 5: Generate Report
步骤5:生成报告
Default output format (Markdown):
undefined默认输出格式(Markdown):
undefinedBlog Quality Report: [Title]
Blog Quality Report: [Title]
Score: [X]/100 -- [Rating]
Score: [X]/100 -- [Rating]
Score Breakdown
Score Breakdown
| Category | Score | Max | Notes |
|---|---|---|---|
| Content Quality | X | 30 | [1-line summary] |
| SEO Optimization | X | 25 | [1-line summary] |
| E-E-A-T Signals | X | 15 | [1-line summary] |
| Technical Elements | X | 15 | [1-line summary] |
| AI Citation Readiness | X | 15 | [1-line summary] |
| Total | X | 100 |
| Category | Score | Max | Notes |
|---|---|---|---|
| Content Quality | X | 30 | [1-line summary] |
| SEO Optimization | X | 25 | [1-line summary] |
| E-E-A-T Signals | X | 15 | [1-line summary] |
| Technical Elements | X | 15 | [1-line summary] |
| AI Citation Readiness | X | 15 | [1-line summary] |
| Total | X | 100 |
AI Content Risk
AI Content Risk
- Burstiness score: [X]/10 ([human-like / moderate / flat])
- AI phrases detected: [N] ([list phrases found])
- Vocabulary diversity (TTR): [X] ([high / acceptable / low])
- AI probability: [X]% -- [No concern / Review recommended / High risk]
- Flagged passages: [quote specific flat or formulaic sections, if any]
- Burstiness score: [X]/10 ([human-like / moderate / flat])
- AI phrases detected: [N] ([list phrases found])
- Vocabulary diversity (TTR): [X] ([high / acceptable / low])
- AI probability: [X]% -- [No concern / Review recommended / High risk]
- Flagged passages: [quote specific flat or formulaic sections, if any]
Issues Found
Issues Found
Critical (Must Fix)
Critical (Must Fix)
- [Issue with specific location and fix]
- [Issue with specific location and fix]
High Priority
High Priority
- [Issue with specific location and fix]
- [Issue with specific location and fix]
Medium Priority
Medium Priority
- [Issue with specific location and fix]
- [Issue with specific location and fix]
Low Priority
Low Priority
- [Issue with specific location and fix]
- [Issue with specific location and fix]
Quick Stats
Quick Stats
- Word count: [N]
- Paragraphs: [N] (X over 150 words)
- H2 sections: [N] (X as questions, X with answer-first formatting)
- Statistics: [N] sourced / [N] unsourced
- Images: [N] (X with alt text, formats: ...)
- Charts: [N] (types: ...)
- Internal links: [N]
- External links: [N] (tier breakdown: ...)
- Schema types: [list]
- OG/social tags: [present/missing]
- Word count: [N]
- Paragraphs: [N] (X over 150 words)
- H2 sections: [N] (X as questions, X with answer-first formatting)
- Statistics: [N] sourced / [N] unsourced
- Images: [N] (X with alt text, formats: ...)
- Charts: [N] (types: ...)
- Internal links: [N]
- External links: [N] (tier breakdown: ...)
- Schema types: [list]
- OG/social tags: [present/missing]
Recommended Actions
Recommended Actions
- [Most impactful fix -- Critical items first]
- [Second most impactful]
- [Third]
Run to apply these optimizations automatically.
/blog rewrite <file>undefined- [Most impactful fix -- Critical items first]
- [Second most impactful]
- [Third]
Run to apply these optimizations automatically.
/blog rewrite <file>undefinedExport Formats
导出格式
Default: Markdown Report
默认:Markdown报告
Standard detailed report as shown above.
如上文所示的标准详细报告。
JSON Export (--format json
)
--format jsonJSON导出(--format json
)
--format jsonMachine-readable output for integration with CI/CD or dashboards:
json
{
"file": "post.md",
"title": "...",
"score": 78,
"rating": "Acceptable",
"categories": {
"content_quality": { "score": 22, "max": 30 },
"seo_optimization": { "score": 18, "max": 25 },
"eeat_signals": { "score": 12, "max": 15 },
"technical_elements": { "score": 13, "max": 15 },
"ai_citation_readiness": { "score": 13, "max": 15 }
},
"ai_detection": {
"burstiness": 6.2,
"ai_phrases_found": ["Furthermore", "Let's explore"],
"ttr": 0.44,
"ai_probability": 32
},
"issues": {
"critical": [],
"high": [],
"medium": [],
"low": []
}
}机器可读格式,适用于CI/CD或仪表板集成:
json
{
"file": "post.md",
"title": "...",
"score": 78,
"rating": "Acceptable",
"categories": {
"content_quality": { "score": 22, "max": 30 },
"seo_optimization": { "score": 18, "max": 25 },
"eeat_signals": { "score": 12, "max": 15 },
"technical_elements": { "score": 13, "max": 15 },
"ai_citation_readiness": { "score": 13, "max": 15 }
},
"ai_detection": {
"burstiness": 6.2,
"ai_phrases_found": ["Furthermore", "Let's explore"],
"ttr": 0.44,
"ai_probability": 32
},
"issues": {
"critical": [],
"high": [],
"medium": [],
"low": []
}
}Table Export (--format table
)
--format table表格导出(--format table
)
--format tableCompact summary for quick review:
File | Score | Rating | Content | SEO | EEAT | Tech | AI-Ready | AI Risk
post.md | 78 | Acceptable | 22/30 | 18/25 | 12/15 | 13/15 | 13/15 | 32%简洁摘要,便于快速查看:
File | Score | Rating | Content | SEO | EEAT | Tech | AI-Ready | AI Risk
post.md | 78 | Acceptable | 22/30 | 18/25 | 12/15 | 13/15 | 13/15 | 32%Batch Mode
批量模式
When given a directory or flag, scan for blog files and produce a
summary table. Use to order by score (ascending by default).
--batch--sort scoreundefined当指定目录或使用参数时,扫描博客文件并生成汇总表格。使用按得分排序(默认升序)。
--batch--sort scoreundefinedBlog Audit Summary: [N] Posts Analyzed
Blog Audit Summary: [N] Posts Analyzed
| File | Score | Rating | Content | SEO | EEAT | Tech | AI-Ready | AI Risk | Top Issue |
|---|---|---|---|---|---|---|---|---|---|
| post-1.md | 85 | Strong | 26/30 | 20/25 | 13/15 | 14/15 | 12/15 | 18% | Missing OG tags |
| post-2.md | 42 | Rewrite | 10/30 | 8/25 | 5/15 | 9/15 | 10/15 | 71% | 12 fabricated stats |
| post-3.md | 71 | Acceptable | 20/30 | 16/25 | 10/15 | 12/15 | 13/15 | 25% | No answer-first |
| File | Score | Rating | Content | SEO | EEAT | Tech | AI-Ready | AI Risk | Top Issue |
|---|---|---|---|---|---|---|---|---|---|
| post-1.md | 85 | Strong | 26/30 | 20/25 | 13/15 | 14/15 | 12/15 | 18% | Missing OG tags |
| post-2.md | 42 | Rewrite | 10/30 | 8/25 | 5/15 | 9/15 | 10/15 | 71% | 12 fabricated stats |
| post-3.md | 71 | Acceptable | 20/30 | 16/25 | 10/15 | 12/15 | 13/15 | 25% | No answer-first |
Priority Queue (Lowest Scoring First)
Priority Queue (Lowest Scoring First)
- post-2.md (42) -- Full rewrite needed, high AI content risk
- post-3.md (71) -- Answer-first formatting + stats needed
- post-1.md (85) -- Add OG tags, minor polish
Run on each, starting from lowest score.
/blog rewrite <file>undefined- post-2.md (42) -- Full rewrite needed, high AI content risk
- post-3.md (71) -- Answer-first formatting + stats needed
- post-1.md (85) -- Add OG tags, minor polish
Run on each, starting from lowest score.
/blog rewrite <file>undefined