Blog Quality Checklist

Blog quality scoring checklist

by AgriciDaniel · MIT license · ★ 2,219 on GitHub · updated Sep 18

Blog quality scoring checklist cover

Score each blog post against this checklist. Used by /blog analyze.

# Blog Quality Scoring Checklist

Score each blog post against this checklist. Used by `/blog analyze`.

## Content Quality (30 points)

| Check | Points | Pass Criteria |
|-------|--------|---------------|
| Depth/comprehensiveness | 7 | Covers topic thoroughly, no major gaps |
| Readability | 7 | Match the audience; default Flesch 60-70, 55-75 acceptable; technical/YMYL topics may justify denser prose |
| 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 near the top, callouts, varied content blocks |
| Grammar/anti-pattern | 3 | Passive voice ≤10%, AI trigger words ≤5/1K, transition words 20-30%, clean prose |

## SEO Optimization (25 points)

| Check | Points | Pass Criteria |

Overview

Score each blog post against this checklist. Used by /blog analyze.

Manual install (npx, ZIP)
Claude Codenpx skills add AgriciDaniel/claude-blog --skill blog-quality-scoring-checklist -g -a claude-code
Claude.ai / desktopZip the folder and upload it under Settings → Capabilities → Skills.
Codex, Cursor, other agentsPoint them at SKILL.md. The other files are plain text.

Connects with Agent Alley MCP · agentalley.io/mcp

Files included

  • quality-scoring.md7.9 KB
Read quality-scoring.md here
AgriciDaniel/main1 file
quality-scoring.md
Show the full text165 lines

Blog Quality Scoring Checklist

Score each blog post against this checklist. Used by /blog analyze.

Content Quality (30 points)

Check Points Pass Criteria
Depth/comprehensiveness 7 Covers topic thoroughly, no major gaps
Readability 7 Match the audience; default Flesch 60-70, 55-75 acceptable; technical/YMYL topics may justify denser prose
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 near the top, callouts, varied content blocks
Grammar/anti-pattern 3 Passive voice ≤10%, AI trigger words ≤5/1K, transition words 20-30%, clean prose

SEO Optimization (25 points)

Check Points Pass Criteria
Heading hierarchy with keywords 5 H1 → H2 → H3, no skips, keyword in 2-3 headings, H2 every 200-300 words
Title tag (40-60 chars, keyword, power word) 4 Front-loaded keyword, positive sentiment, brackets if applicable
Keyword placement/density 4 Natural integration (0.5-2%), no stuffing, present in first 100 words
Internal linking (3-10 contextual) 4 Descriptive anchor text, bidirectional, related content
URL structure 3 Short, keyword-rich, no stop words, lowercase
Meta description (150-160 chars) 3 Fact-dense, clear value prop; include a sourced statistic only when central to the page
External linking (tier 1-3) 2 3-8 outbound links to authoritative sources

E-E-A-T Signals (15 points)

Check Points Pass Criteria
Author attribution (accountable, with bio) 4 Named author/editor preferred; organization attribution acceptable with clear editorial ownership
Source citations (tier 1-3, inline format) 4 ([Source](url), year) format, 8+ unique stats, zero fabricated
Trust indicators (contact, about, transparency) 4 Site has contact page, about page, editorial policy
Experience signals (first-person markers) 3 "When we tested...", "In our experience...", original photos/data

Source citations gating rule: Sources must follow the FLOW evidence triple: year anchor in prose, inline citation with publisher and title, AND URL with retrieval date in compact retrieval notes, footnotes, or a bibliography. Sources without retrieval dates do not pass this criterion. Reference: flow-alignment.md.

Technical Elements (15 points)

Check Points Pass Criteria
Schema markup priority baseline 4 Article/BlogPosting + Person + Organization + BreadcrumbList; FAQPage optional only for visible Q&A entity support; dateModified current
Image optimization (alt text, format, lazy load) 3 AVIF/WebP, descriptive alt text, lazy except LCP
Structured data elements 2 Tables, lists, comparison blocks for AI extraction
Page speed signals (no render-blocking) 2 LCP < 2.5s, no render-blocking JS, fetchpriority on hero
Mobile-friendliness 2 Responsive, tap targets 48px+, no horizontal scroll, paragraphs ≤100 words
OG/social meta tags 2 og:title, og:description, og:image (1200x630), twitter:card

AI Citation Readiness (15 points)

Check Points Pass Criteria
Passage-level citability (120-180 word passages) 4 About 50-word direct-answer sentence followed by self-contained passage with stat + source
Q&A formatted sections 3 60-70% of H2s as questions, visible FAQ section when template calls for it
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, robots.txt allows AI bots

Total: 100 points

Scoring Bands
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 before publish
60-69 Below Standard Significant rework required
< 60 Rewrite Fundamental issues, start from outline

Priority Classification

When reporting issues, classify by priority:

Critical (Must Fix Before Publishing)
  • Fabricated statistics (zero tolerance)
  • Broken heading hierarchy (H1 → H3 skip)
  • Paragraphs > 200 words (Yoast red)
  • No source attribution on claims
  • Missing author attribution
  • Content behind JavaScript (invisible to AI crawlers)
  • Missing summary box near the top
High Priority
  • Missing answer-first formatting on H2 sections
  • Missing Article/Person/Organization/BreadcrumbList schema baseline
  • Missing visible Q&A section when the selected template calls for FAQ
  • Fewer than 8 sourced statistics
  • Missing meta description or lastUpdated
  • Title tag outside 40-60 character range
  • No internal links
  • Flesch score outside 55-75 range
  • No OG/social meta tags
  • Paragraphs > 150 words
  • Passive voice > 15%
  • AI trigger words > 8 per 1,000
Medium Priority
  • Fewer than 2 charts
  • Fewer than 3 images
  • Tier 4-5 sources present
  • Self-promotion > 1 mention
  • Sections exceeding 300 words between headings
  • Missing experience signals (no first-person markers)
  • Images not in AVIF/WebP format
  • loading="lazy" on LCP image
  • Average sentence length > 22 words
  • Transition words < 15% or > 35%
Low Priority
  • Paragraph length slightly above 80 words (but under 150)
  • Question-format H2 ratio outside 60-70%
  • Missing chart type diversity
  • Images without alt text
  • Missing external links to tier 1-3 sources
  • Entity terminology inconsistency

Quick Automated Checks

These can be detected programmatically:

Content Quality
  1. Word count per paragraph (split on double newlines, flag > 150, critical > 200)
  2. Sentence count per paragraph (flag > 3 sentences)
  3. Flesch-Kincaid score (default target 60-70, acceptable 55-75; adjust for audience)
  4. Heading frequency (flag gaps > 300 words between H2s)
  5. Summary box presence in first 500 characters (accept "TL;DR", "Key Takeaways", "Summary", or "Quick Answer")
  6. Average sentence length (target 15-20, flag > 22)
  7. Sentences over 20 words (flag if > 25% of total)
  8. Passive voice percentage (flag > 10%, high priority > 15%)
  9. AI trigger word density (flag > 5 per 1,000 words)
  10. Transition word percentage (target 20-30%, flag < 15% or > 35%)
SEO Optimization
  1. Title tag length (frontmatter, target 40-60 chars)
  2. Heading hierarchy (regex for ^#{1,6} , no skipped levels)
  3. Meta description length (frontmatter, target 150-160 chars)
  4. Internal link count (regex for relative URLs or same-domain links)
  5. External link count and tier classification
  6. URL structure check (lowercase, no stop words)
E-E-A-T Signals
  1. Author attribution presence (frontmatter author field)
  2. Citation format (regex for \([^)]+\(http)
  3. Unsourced statistics (numbers without attribution nearby)
  4. Self-promotion patterns (brand name frequency, max 1)
  5. First-person markers ("we tested", "in our experience")
Technical Elements
  1. Image count (regex for !\[ or <img)
  2. Image alt text presence (images without alt attribute)
  3. Chart count (regex for <svg or <figure)
  4. Schema presence (search for structured data markers)
  5. OG meta tags (frontmatter ogImage, coverImage)
  6. loading="lazy" on first image (flag as LCP issue)
  7. lastUpdated presence (frontmatter check)
AI Citation Readiness
  1. Opening citable passage after each H2 (target 120-180 words after about 50-word answer sentence)
  2. Question-format heading ratio (target 60-70% of H2s)
  3. Visible Q&A presence when template calls for FAQ
  4. Table presence with <thead> (for AI extraction)
  5. robots.txt AI bot allowance (site-level check)
1# Blog Quality Scoring Checklist
2 
3Score each blog post against this checklist. Used by `/blog analyze`.
4 
5## Content Quality (30 points)
6 
7| Check | Points | Pass Criteria |
8|-------|--------|---------------|
9| Depth/comprehensiveness | 7 | Covers topic thoroughly, no major gaps |
10| Readability | 7 | Match the audience; default Flesch 60-70, 55-75 acceptable; technical/YMYL topics may justify denser prose |
11| Originality/unique value markers | 5 | Original data, case studies, first-hand experience |
12| Sentence & paragraph structure | 4 | Avg sentence 15-20 words, ≤25% over 20; paragraphs 40-80 words; H2 every 200-300 words |
13| Engagement elements | 4 | Summary box near the top, callouts, varied content blocks |
14| Grammar/anti-pattern | 3 | Passive voice ≤10%, AI trigger words ≤5/1K, transition words 20-30%, clean prose |
15 
16## SEO Optimization (25 points)
17 
18| Check | Points | Pass Criteria |
19|-------|--------|---------------|
20| Heading hierarchy with keywords | 5 | H1 → H2 → H3, no skips, keyword in 2-3 headings, H2 every 200-300 words |
21| Title tag (40-60 chars, keyword, power word) | 4 | Front-loaded keyword, positive sentiment, brackets if applicable |
22| Keyword placement/density | 4 | Natural integration (0.5-2%), no stuffing, present in first 100 words |
23| Internal linking (3-10 contextual) | 4 | Descriptive anchor text, bidirectional, related content |
24| URL structure | 3 | Short, keyword-rich, no stop words, lowercase |
25| Meta description (150-160 chars) | 3 | Fact-dense, clear value prop; include a sourced statistic only when central to the page |
26| External linking (tier 1-3) | 2 | 3-8 outbound links to authoritative sources |
27 
28## E-E-A-T Signals (15 points)
29 
30| Check | Points | Pass Criteria |
31|-------|--------|---------------|
32| Author attribution (accountable, with bio) | 4 | Named author/editor preferred; organization attribution acceptable with clear editorial ownership |
33| Source citations (tier 1-3, inline format) | 4 | `([Source](url), year)` format, 8+ unique stats, zero fabricated |
34| Trust indicators (contact, about, transparency) | 4 | Site has contact page, about page, editorial policy |
35| Experience signals (first-person markers) | 3 | "When we tested...", "In our experience...", original photos/data |
36 
37**Source citations gating rule:** Sources must follow the FLOW evidence triple: year anchor in prose, inline citation with publisher and title, AND URL with retrieval date in compact retrieval notes, footnotes, or a bibliography. Sources without retrieval dates do not pass this criterion. Reference: `flow-alignment.md`.
38 
39## Technical Elements (15 points)
40 
41| Check | Points | Pass Criteria |
42|-------|--------|---------------|
43| Schema markup priority baseline | 4 | Article/BlogPosting + Person + Organization + BreadcrumbList; FAQPage optional only for visible Q&A entity support; dateModified current |
44| Image optimization (alt text, format, lazy load) | 3 | AVIF/WebP, descriptive alt text, lazy except LCP |
45| Structured data elements | 2 | Tables, lists, comparison blocks for AI extraction |
46| Page speed signals (no render-blocking) | 2 | LCP < 2.5s, no render-blocking JS, fetchpriority on hero |
47| Mobile-friendliness | 2 | Responsive, tap targets 48px+, no horizontal scroll, paragraphs ≤100 words |
48| OG/social meta tags | 2 | og:title, og:description, og:image (1200x630), twitter:card |
49 
50## AI Citation Readiness (15 points)
51 
52| Check | Points | Pass Criteria |
53|-------|--------|---------------|
54| Passage-level citability (120-180 word passages) | 4 | About 50-word direct-answer sentence followed by self-contained passage with stat + source |
55| Q&A formatted sections | 3 | 60-70% of H2s as questions, visible FAQ section when template calls for it |
56| Entity clarity | 3 | Unambiguous topic entity, consistent terminology |
57| Content structure for extraction | 3 | Answer-first, tables with `<thead>`, comparison formats |
58| AI crawler accessibility | 2 | SSR/SSG, no JS-gated content, robots.txt allows AI bots |
59 
60## Total: 100 points
61 
62### Scoring Bands
63 
64| Score | Rating | Action |
65|-------|--------|--------|
66| 90-100 | Exceptional | Publish as-is, flagship content |
67| 80-89 | Strong | Minor polish, ready for publication |
68| 70-79 | Acceptable | Targeted improvements needed before publish |
69| 60-69 | Below Standard | Significant rework required |
70| < 60 | Rewrite | Fundamental issues, start from outline |
71 
72## Priority Classification
73 
74When reporting issues, classify by priority:
75 
76### Critical (Must Fix Before Publishing)
77- Fabricated statistics (zero tolerance)
78- Broken heading hierarchy (H1 → H3 skip)
79- Paragraphs > 200 words (Yoast red)
80- No source attribution on claims
81- Missing author attribution
82- Content behind JavaScript (invisible to AI crawlers)
83- Missing summary box near the top
84 
85### High Priority
86- Missing answer-first formatting on H2 sections
87- Missing Article/Person/Organization/BreadcrumbList schema baseline
88- Missing visible Q&A section when the selected template calls for FAQ
89- Fewer than 8 sourced statistics
90- Missing meta description or lastUpdated
91- Title tag outside 40-60 character range
92- No internal links
93- Flesch score outside 55-75 range
94- No OG/social meta tags
95- Paragraphs > 150 words
96- Passive voice > 15%
97- AI trigger words > 8 per 1,000
98 
99### Medium Priority
100- Fewer than 2 charts
101- Fewer than 3 images
102- Tier 4-5 sources present
103- Self-promotion > 1 mention
104- Sections exceeding 300 words between headings
105- Missing experience signals (no first-person markers)
106- Images not in AVIF/WebP format
107- `loading="lazy"` on LCP image
108- Average sentence length > 22 words
109- Transition words < 15% or > 35%
110 
111### Low Priority
112- Paragraph length slightly above 80 words (but under 150)
113- Question-format H2 ratio outside 60-70%
114- Missing chart type diversity
115- Images without alt text
116- Missing external links to tier 1-3 sources
117- Entity terminology inconsistency
118 
119## Quick Automated Checks
120 
121These can be detected programmatically:
122 
123### Content Quality
1241. Word count per paragraph (split on double newlines, flag > 150, critical > 200)
1252. Sentence count per paragraph (flag > 3 sentences)
1263. Flesch-Kincaid score (default target 60-70, acceptable 55-75; adjust for audience)
1274. Heading frequency (flag gaps > 300 words between H2s)
1285. Summary box presence in first 500 characters (accept "TL;DR", "Key Takeaways", "Summary", or "Quick Answer")
1296. Average sentence length (target 15-20, flag > 22)
1307. Sentences over 20 words (flag if > 25% of total)
1318. Passive voice percentage (flag > 10%, high priority > 15%)
1329. AI trigger word density (flag > 5 per 1,000 words)
13310. Transition word percentage (target 20-30%, flag < 15% or > 35%)
134 
135### SEO Optimization
13611. Title tag length (frontmatter, target 40-60 chars)
13712. Heading hierarchy (regex for `^#{1,6} `, no skipped levels)
13813. Meta description length (frontmatter, target 150-160 chars)
13914. Internal link count (regex for relative URLs or same-domain links)
14015. External link count and tier classification
14116. URL structure check (lowercase, no stop words)
142 
143### E-E-A-T Signals
14417. Author attribution presence (frontmatter `author` field)
14518. Citation format (regex for `\([^)]+\(http`)
14619. Unsourced statistics (numbers without attribution nearby)
14720. Self-promotion patterns (brand name frequency, max 1)
14821. First-person markers ("we tested", "in our experience")
149 
150### Technical Elements
15122. Image count (regex for `!\[` or `<img`)
15223. Image alt text presence (images without alt attribute)
15324. Chart count (regex for `<svg` or `<figure`)
15425. Schema presence (search for structured data markers)
15526. OG meta tags (frontmatter `ogImage`, `coverImage`)
15627. `loading="lazy"` on first image (flag as LCP issue)
15728. lastUpdated presence (frontmatter check)
158 
159### AI Citation Readiness
16029. Opening citable passage after each H2 (target 120-180 words after about 50-word answer sentence)
16130. Question-format heading ratio (target 60-70% of H2s)
16231. Visible Q&A presence when template calls for FAQ
16332. Table presence with `<thead>` (for AI extraction)
16433. robots.txt AI bot allowance (site-level check)
165 
View all files on GitHub →

Details

Updated
Sep 18, 2026
License
MIT
Stars on the repo
★ 2,219
Checked
Source
AgriciDaniel/claude-blog ↗
Creator
AgriciDaniel · 129 listings
View creator

Similar skills

See all →
SkillArticle Illustration GeneratorJimLiu/baoyu-skills · by JimLiuAnalyzes article structure, identifies positions requiring visual aids, generates illustrations with Type × Style × Palette three-dimension approach. Use when user asks to "illustrate article", "add images", "generate images for article", or "为文章配图".★ 26.6k GitHub starsSkillArticle Cover DesignerJimLiu/baoyu-skills · by JimLiuGenerates article cover images with 5 dimensions (type, palette, rendering, text, mood) combining 11 color palettes and 7 rendering styles. Supports cinematic (2.35:1), widescreen (16:9), and square (1:1) aspects. Use when user asks to "generate cover image", "create article cover", or "make cover".★ 26.6k GitHub starsSkillArticle Content Extractormichalparkola/tapestry-skills · by michalparkolaExtract clean article content from URLs (blog posts, articles, tutorials) and save as readable text. Use when user wants to download, extract, or save an article/blog post from a URL without ads, navigation, or clutter.★ 553 GitHub starsSkillArticle CTA Designersamber/cc-skills · by samberDesigns end-of-article CTAs — copy, layout, placement, A/B test plan, accessibility — for blog posts, newsletters, and essays. Use whenever the user asks to write, review, or improve a CTA at the bottom of an article; mentions "end-of-post CTA", "call-to-action", "signup box", "newsletter CTA", "subscribe block", or "what should I put at the bottom"; or asks how to turn readers into subscribers, leads, customers, or paying supporters. Covers personal blogs, paid newsletters (Substack, beehiiv, Ghost), and brand content-marketing blogs. Do NOT use for opening hooks, ledes, or post titles — use samber/cc-skills@copywriting-hooks instead. Not for landing-page, ad, or email copy.★ 222 GitHub starsSkillBrand Story Video Promptscharlesdove977/UGC-Factory · by charlesdove977Generate brand storytelling and narrative video prompts for Seedance 2.0 on Higgsfield. Use whenever the user wants to create a brand story video, company origin story, mission video, about us video, brand film, corporate narrative, founder story, brand anthem, company culture video, or emotional brand content. Triggers on: brand story, brand video, company story, origin story, about us, mission video, brand film, brand anthem, corporate video, company culture, founder story, brand narrative, or any request for brand/company storytelling video. Use even for "tell our company story" or "make a video about our mission.★ 83 GitHub starsSkillArticle Writer From Notesmattpocock/skills · by mattpocockHand over your messy notes, transcripts and half-thoughts on a topic, and get back a finished article that flows from one point to the next.★ 267k GitHub stars

More from AgriciDaniel

SkillAgent Browsing AuditorAgriciDaniel/claude-seo · by AgriciDanielAudit and fix agent readiness: the Lighthouse Agentic Browsing fraction, accessibility tree for agents, robots.txt and Content-Signal for AI agents, WAF treatment of agent traffic, llms.txt, Markdown delivery, ai-catalog.json, /.well-known discovery files, and WebMCP tools. Exclude AI citability and brand signals (seo-geo) and commerce protocol depth (seo-ecommerce).★ 17.4k GitHub starsSkillAI Search OptimizationAgriciDaniel/claude-seo · by AgriciDanielOptimize content for AI Overviews (formerly SGE), ChatGPT web search, Perplexity, and other AI-powered search experiences. Generative Engine Optimization (GEO) analysis including brand mention signals, AI crawler accessibility, llms.txt compliance, passage-level citability scoring, and platform-specific optimization. Use when user says "AI Overviews", "SGE", GEO", "AI search", "LLM optimization", "Perplexity", "AI citations", ChatGPT search", or "AI visibility".★ 17.4k GitHub starsSkillBacklink Profile AnalysisAgriciDaniel/claude-seo · by AgriciDanielBacklink profile analysis: referring domains, anchor text distribution, toxic link detection, competitor gap analysis. Works with free APIs (Moz, Bing Webmaster, Common Crawl) and DataForSEO extension. Use when user says backlinks, link profile, referring domains, anchor text, toxic links, link gap, link building, disavow, or backlink audit.★ 17.4k GitHub starsSkillAmazon Ads AuditorAgriciDaniel/claude-ads · by AgriciDanielYou share your Amazon advertising numbers and goals; you get back a plain-language review of what's draining your budget and what to change first.★ 9.5k GitHub starsSkillApple Search Ads AuditorAgriciDaniel/claude-ads · by AgriciDanielPaste what you're spending on Apple Search Ads and your recent numbers; get back a plain review of what's wasting money and what to fix first.★ 9.5k GitHub starsSkillAttribution AuditorAgriciDaniel/claude-ads · by AgriciDanielPaste the sales and spend numbers each ad platform claims, and get back a plain explanation of why they disagree and which figure to trust.★ 9.5k GitHub stars