ongboit.com — Content Portfolio Audit

URL: https://ongboit.com Date: 2026-06-16_blog-audit-pipeline Time: 15m 59s Articles: 200 Mode: fast Claude-Growth v1.2.1 T1 · GSC + DataForSEO
Portfolio Health
68/100
Fair
Decay Risk Inverse
N/A
N/A
Healthier = higher score
Refresh ROI Potential
2/100
Low — little to refresh

Start Here — Your Top 3 Fixes

These problems recur across the most articles, so fixing them once (as a site-wide template change) lifts the whole portfolio at once:

  1. #1 — Thin external sourcing / unsourced stats (17 of 18 articles)
  2. #2 — No speakable schema (13 of 18 articles)
  3. #3 — FAQPage schema missing (FAQ present, no JSON-LD) (12 of 18 articles)

Then refresh first: /cdn-la-gi/ — highest refresh priority (see the 90-Day Roadmap for the full order).

Executive Summary

This Content Portfolio Audit scores all 200 published articles across five quality dimensions (Quality & E-E-A-T, GEO citability, on-page SEO, schema, sourcing) plus portfolio-wide health — content decay, cannibalization, internal-link structure, and topic clusters. It surfaces the highest-leverage fixes first, then a 90-day refresh roadmap ranked by ROI.

Audited 19 article(s) across 12 dimensions. Surfaced 317 findings (33 critical). Portfolio Health: 68/100 (Fair).

19
Articles audited
317
Total findings
68
Portfolio Health
2
Refresh ROI

Pillar Scores

Mean score per dimension across 19 scored articles. Readability rolls up under Quality; Content Decay is scored portfolio-wide (Decay Map + Refresh Queue).

73
Quality & E-E-A-T
Depth, originality, Experience/Expertise/Authority/Trust
66
GEO · AI Citability
Passage quotability for ChatGPT / AIO / Perplexity
73
SEO On-Page
Title/meta, headings, links, alt, word count vs intent
54
Schema
JSON-LD completeness (Article / FAQ / Breadcrumb)
69
Sourcing & Fact-Check
Share of claims with a verifiable citation

📖 How to Read This Report

Ordered by what to do, in 3 tiers:

To apply fixes: hand Claude Code the report MD + the fixes/ folder, then paste the prompt in the "🤖 Apply These Fixes with Claude Code" section below.

Glossary — what the terms mean

Content decay — An article losing search traffic/rankings over time — stale content, lost links, or a competitor overtaking it. The Decay Map flags articles with ≥2 decay signals.

Cannibalization — Two or more of YOUR pages competing for the same query, so Google splits ranking between them. Fix = merge them or differentiate their intent.

Cluster (authority flow) — A group of articles on one topic. A strong cluster has a pillar page linked to/from its supporting 'spoke' articles, concentrating topical authority.

Orphan — An article with zero internal links pointing to it — hard for readers and crawlers to find. Add links from related articles.

Striking distance — Keywords ranking on page 2 (positions 11-20) with real impressions — small improvements can push them to page 1.

Reciprocal links — Two articles that link to each other (mutual), vs one-way links. Healthy clusters have some reciprocity.

Anchor diversity — How varied the clickable text is across internal links to a page. Low diversity (same exact phrase every time) reads as keyword over-optimization.

Pillar score — The mean 0-100 score for one of the 5 audit dimensions across all articles (Quality / GEO / On-page / Schema / Sourcing).

⚡ Top Quick Wins (small effort, high impact)

Highest ROI fixes — small effort, high impact. Ship these first.

#1. Stat inconsistency: '151K reactions' vs '135K stars' in same article

Severity: P0 · Time: 1h · Source: blog-analyze on /anthropic-skills-repo-deep-dive/

📈 Immediate credibility damage; a reader noticing this discrepancy will distrust the entire article

#2. Primary subject (github.com/anthropics/skills repo) existence unconfirmed

Severity: P0 · Time: 1h · Source: blog-factcheck on /anthropic-skills-repo-deep-dive/

📈 If repo does not exist or stats are wrong: complete article invalidation, E-E-A-T collapse, potential Google Quality penalty

#3. Meta description absent

Severity: P0 · Time: 1h · Source: blog-analyze on /best-claude-code-skills/

📈 Missing meta description means Google auto-generates one, losing control of SERP click text. CTR typically drops 5-10%.

#4. Meta description missing — SEO critical

Severity: P0 · Time: 1h · Source: blog-seo-check on /best-claude-code-skills/

📈 Direct SERP CTR loss; Google auto-generates snippet from body which may truncate badly for this long-form article.

#5. FAQPage schema not confirmed — 4 FAQ pairs eligible, rich results not captured

Severity: P0 · Time: 1h · Source: blog-schema on /cdn-la-gi/

📈 FAQPage rich results in SERP expand click area and increase CTR by estimated 20-30%; AI citation engines extract Q&A pairs from schema preferentially

Critical — fix immediately (4 recurring patterns, 22 one-off, 56 total occurrences)

Thin external sourcing / unsourced stats

17 articles
Fix: Add hyperlinks to each cited stat. For Typeface.ai/Digital Applied/Seer claims, locate the original report URL. For any stat where original URL cannot be found, qualify as 'theo [source]' or remove.
Impact: Perplexity/ChatGPT citation engines require traceable sources. Without URLs, these stats are unverifiable and the article fails AI citability standards. Also violates site quality rules for source transparency.
Evidence + 17 affected articles
Seven quantitative claims cite source names only (Typeface.ai, Seer Interactive, Digital Applied, AllAboutAI.com, claude-world.com) with no hyperlinks or access dates. Examples: '98% marketer đang tăng ngân sách AI', 'CTR giảm 61%', '35% clicks', 'AI Overviews 25.11%', 'tăng output 3.8x'.
  • /anthropic-skills-repo-deep-dive/
  • /best-claude-code-skills/
  • /cdn-la-gi/
  • /claude-code-gia-bao-nhieu/
  • /claude-code-gioi-han-su-dung/
  • /claude-code-la-gi/
  • /claude-code-plugins/
  • /claude-code-seo-content/
  • /claude-code-skills/
  • /claude-md-la-gi/
  • /dataforseo-la-gi/
  • /geo-seo-claude/
  • /llm-la-gi/
  • /migration-notion-to-obsidian/
  • /n8n-la-gi/
  • /obsidian-vs-notion-vs-logseq-2026/
  • /tiet-kiem-token-claude-code/

FAQPage schema missing (FAQ present, no JSON-LD)

12 articles
Fix: 1) Check Rank Math post settings → Schema tab → verify FAQPage schema is toggled ON. 2) If Rank Math FAQ schema is not auto-detecting, add manual JSON-LD FAQPage block in WordPress Custom HTML block at end of article.
Impact: FAQPage rich results in SERP expand click area and increase CTR by estimated 20-30%; AI citation engines extract Q&A pairs from schema preferentially
Evidence + 12 affected articles
Article contains H3-level FAQ section with 4 explicit Q&A pairs ('CDN có miễn phí không?', 'Dùng CDN rồi có cần hosting nữa không?', 'CDN có làm site nhanh hơn cho mọi người không?', 'Làm sao biết CDN của mình đang hoạt động?'). No FAQPage JSON-LD found in body HTML. Rank Math should auto-detect FAQ
  • /anthropic-skills-repo-deep-dive/
  • /cdn-la-gi/
  • /claude-code-dynamic-workflows/
  • /claude-code-gia-bao-nhieu/
  • /claude-code-la-gi/
  • /claude-code-seo-content/
  • /claude-code-skills/
  • /claude-md-la-gi/
  • /dataforseo-la-gi/
  • /geo-seo-claude/
  • /n8n-la-gi/
  • /obsidian-vs-notion-vs-logseq-2026/

Meta description absent

3 articles
Fix: Add a 150-160 char meta description in Rank Math: e.g. 'Danh sách 32 Claude Code skills hay nhất 2026: 5 bundled, 9 Anthropic official plugins (277K installs), 8 community megastars. Cài đặt, bảo mật, và lộ trình theo vai trò.'
Impact: Missing meta description means Google auto-generates one, losing control of SERP click text. CTR typically drops 5-10%.
Evidence + 3 affected articles
WebFetch extraction returned no meta description tag content. WordPress Rank Math or Yoast snippet field appears empty for this post.
  • /best-claude-code-skills/
  • /claude-code-gia-bao-nhieu/
  • /claude-code-plugins/

Meta description missing

2 articles
Fix: Add via Rank Math: 150-160 char Vietnamese description with primary keyword 'Claude Code plugins'.
Impact: Google-generated snippet may pull irrelevant text; CTR loss. Also fails blog-seo-check meta_desc check.
Evidence + 2 affected articles
No <meta name='description'> found across two WebFetch passes.
  • /claude-code-plugins/
  • /claude-md-la-gi/
+ 22 one-off findings (single article each) — click to expand

Each appears on a single article — low priority. Fix opportunistically when you next refresh that article; no site-wide action needed.

  • Core factual claims unverifiable / likely fabricated /anthropic-skills-repo-deep-dive/
  • Stat inconsistency: '151K reactions' vs '135K stars' in same article /anthropic-skills-repo-deep-dive/
  • Primary subject (github.com/anthropics/skills repo) existence unconfirmed /anthropic-skills-repo-deep-dive/
  • No JSON-LD structured data detected /best-claude-code-skills/
  • OG and Twitter Card meta tags not confirmed /best-claude-code-skills/
  • Meta description missing — SEO critical /best-claude-code-skills/
  • OG and Twitter meta tags unconfirmed/absent /best-claude-code-skills/
  • Zero structured data on a 9,200-word comparison article /best-claude-code-skills/
  • OG meta tags and Twitter Card absent or unverifiable /claude-code-plugins/
  • Zero structured data — no schemas of any type detected /claude-code-plugins/
  • Internal star-count contradictions — likely fabricated or stale GitHub stats /claude-code-seo-content/
  • GitHub star count contradiction: Bhanunamikaze/Agentic-SEO-Skill /claude-code-seo-content/
  • GitHub star count contradiction: aaron-he-zhu/seo-geo-claude-skills /claude-code-seo-content/
  • Sub-skill count contradiction: AgriciDaniel/claude-seo /claude-code-seo-content/
  • Anthropic '$2.5B annually' claim not supported by cited URL /claude-code-skills/
  • No meta description detected /claude-md-la-gi/
  • No canonical URL tag found /claude-md-la-gi/
  • No Open Graph or Twitter Card meta tags detected /claude-md-la-gi/
  • Canonical tag absent /claude-md-la-gi/
  • OG + Twitter Card absent /claude-md-la-gi/
  • Zero schema markup — all 12 criteria fail /claude-md-la-gi/
  • 3 unverifiable claims about non-existent 'Opus 4.7' and 'Tokenizer v3' /tiet-kiem-token-claude-code/

High Priority — fix this week (6 recurring patterns, 50 one-off, 82 total occurrences)

Meta / title length

11 articles
Fix: Expand to 152-158 chars, adding the comparison and 2026 update angle: '...Hướng dẫn bắt đầu từ A-Z cho developer Việt. So sánh với Cursor và GitHub Copilot, bảng giá cập nhật tháng 6/2026.'
Impact: SERP snippet may be auto-generated by Google, reducing CTR control.
Evidence + 11 affected articles
Measured at 138 chars: 'Claude Code là AI coding assistant dùng terminal của Anthropic, không cần IDE. Mạnh hơn Cursor cho refactor lớn. Hướng dẫn bắt đầu từ A-Z cho developer Việt.'
  • /anthropic-skills-repo-deep-dive/
  • /claude-code-gia-bao-nhieu/
  • /claude-code-gioi-han-su-dung/
  • /claude-code-la-gi/
  • /claude-code-seo-content/
  • /claude-code-skills/
  • /claude-md-la-gi/
  • /geo-seo-claude/
  • /llm-la-gi/
  • /obsidian-vs-notion-vs-logseq-2026/
  • /tiet-kiem-token-claude-code/

No speakable schema

13 articles
Fix: Add speakable CSS selectors pointing to TL;DR and FAQ sections in BlogPosting schema.
Impact: Misses Google Assistant / SGE voice citation surface
Evidence + 13 affected articles
BlogPosting schema present but no speakable property defined. Article has TL;DR and FAQ sections that would be high-value speakable candidates.
  • /anthropic-skills-repo-deep-dive/
  • /claude-code-dynamic-workflows/
  • /claude-code-gia-bao-nhieu/
  • /claude-code-gioi-han-su-dung/
  • /claude-code-seo-content/
  • /claude-code-skills/
  • /dataforseo-la-gi/
  • /geo-seo-claude/
  • /llm-la-gi/
  • /migration-notion-to-obsidian/
  • /n8n-la-gi/
  • /obsidian-vs-notion-vs-logseq-2026/
  • /tiet-kiem-token-claude-code/

Two banned AI-detectable phrases detected

2 articles
Fix: Rewrite transition sentences to remove formulaic connectors. Use concrete subject-verb openers instead.
Impact: Raises AI detection signal burstiness; affects perceived authenticity
Evidence + 2 affected articles
'Moreover' appears in transition prose; 'In conclusion' equivalent closing structure in final CTA section. These are top-25 AI-detection signals per blog-reviewer doctrine.
  • /anthropic-skills-repo-deep-dive/
  • /claude-code-la-gi/

Canonical URL not confirmed

2 articles
Fix: Verify in WordPress admin or view-source that <link rel='canonical' href='https://ongboit.com/best-claude-code-skills/' /> is present and correct.
Impact: If canonical is missing or wrong, Googlebot may index a different URL variant and split link equity.
Evidence + 2 affected articles
WebFetch canonical extraction returned ambiguous result (one model suggested '/claude-code-skills-2026/' which differs from actual URL '/best-claude-code-skills/'). Could not confirm <link rel='canonical'> tag value.
  • /best-claude-code-skills/
  • /claude-code-plugins/

No JSON-LD schema detected

2 articles
Fix: Verify Rank Math has Article + FAQPage schema enabled for this post. If missing, add FAQPage JSON-LD inline via WordPress custom HTML block covering the 4 FAQ H3s.
Impact: Missed FAQPage rich results; reduced AI citation eligibility
Evidence + 2 affected articles
Firecrawl full-body HTML scrape returned zero <script type='application/ld+json'> blocks. Rank Math is installed (confirmed by WP generator meta) but no Article or FAQPage schema was confirmed present in the HEAD. The FAQ section (H3: CDN có miễn phí không? / Dùng CDN rồi có cần hosting nữa không? /
  • /cdn-la-gi/
  • /claude-code-gia-bao-nhieu/

Word count below pillar threshold

2 articles
Fix: Expand with: worked activation walkthrough (ultracode vs /effort vs /deep-research), concrete token-cost benchmark table, real-world example output comparing subagent vs dynamic workflow on the same task.
Impact: Content depth sub-score capped at 16/25; competing pillar articles on agent orchestration typically exceed 2,800 words.
Evidence + 2 affected articles
Measured body text ~1,862 words (firecrawl rawHtml entry-content block). Topic (Claude Code dynamic workflows — a feature with activation methods, comparison table, limits, trade-offs) warrants 2,500–3,500 words for pillar coverage.
  • /claude-code-dynamic-workflows/
  • /migration-notion-to-obsidian/
+ 50 one-off findings (single article each) — click to expand

Each appears on a single article — low priority. Fix opportunistically when you next refresh that article; no site-wide action needed.

  • BlogPosting missing articleBody and wordCount properties /anthropic-skills-repo-deep-dive/
  • Image alt text stat inconsistency (135K vs 151K) appears in ImageObject caption /anthropic-skills-repo-deep-dive/
  • Internal stat contradiction: 151K reactions vs 135K stars in same page /anthropic-skills-repo-deep-dive/
  • No hero image — only 2 images total (both logo/avatar) /best-claude-code-skills/
  • Question-phrased H2 ratio very low (1/18 = 5.5%) /best-claude-code-skills/
  • Two numeric claims have zero sourcing ('90% invocation rate', '30-50 tokens per skill') /best-claude-code-skills/
  • Internal stat contradiction on frontend-design install count /best-claude-code-skills/
  • No external links in article body /cdn-la-gi/
  • Article schema not confirmed — authorship and publish date not surfaced in structured data /cdn-la-gi/
  • Stat density below GEO threshold /claude-code-dynamic-workflows/
  • Publish date 'May 28, 2026' stated in body text but not hyperlinked or cited /claude-code-dynamic-workflows/
  • Meta description missing or not extractable /claude-code-gia-bao-nhieu/
  • OG / Twitter Card meta tags not detected /claude-code-gia-bao-nhieu/
  • OG and Twitter Card tags absent /claude-code-gia-bao-nhieu/
  • Message limit numbers (45/window, 900/window) are unlinked quantitative claims /claude-code-gia-bao-nhieu/
  • Cursor Pro+ $60/month price likely incorrect /claude-code-gia-bao-nhieu/
  • Meta description too short and mismatched vs title intent /claude-code-la-gi/
  • Answer-first structure inconsistent — 45% of H2 sections bury the lead /claude-code-la-gi/
  • Three high-value stats cited without traceable source links /claude-code-la-gi/
  • All H2 headings in Vietnamese — mixed-language heading schema /claude-code-plugins/
  • AI-detectable burstiness — 3 banned phrases detected /claude-code-plugins/
  • Only 33% of H2s are question-format — below 50% GEO target /claude-code-plugins/
  • Install counts dated April 2026 — may be stale by publication date June 2026 /claude-code-plugins/
  • No direct-answer opening — intro is context-narrative, not answer-first /claude-code-seo-content/
  • '98% marketer tăng ngân sách AI' — Typeface.ai, no URL /claude-code-seo-content/
  • 'CTR giảm 61% khi AI Overviews xuất hiện' — Seer Interactive, no URL /claude-code-seo-content/
  • 'AI Overviews trong 25.11% lượt tìm kiếm' — Digital Applied Q1 2026, no URL /claude-code-seo-content/
  • 'AI tăng output lên 3.8x' — AllAboutAI.com, no URL /claude-code-seo-content/
  • Only 21% of H2s are questions — low for AI Overview triggering /claude-code-skills/
  • OG image dimensions 1024×572, below recommended 1200×630 /claude-code-skills/
  • '/graphify 450K PyPI downloads' has no primary source /claude-code-skills/
  • '500K tokens wasted monthly' — calculated estimate with no visible methodology /claude-code-skills/
  • Publish/modified dates not machine-readable /claude-md-la-gi/
  • Hero image absent from DOM — exists only in OG/schema /dataforseo-la-gi/
  • Low block-level citability — most sections open with framing rather than direct answer /dataforseo-la-gi/
  • Hero image not present as <img> tag — fails image alt requirement /dataforseo-la-gi/
  • Answer-first rate below 70% threshold for AI citability /geo-seo-claude/
  • 16-model comparison table uses model version names that require immediate verification /llm-la-gi/
  • Stat density very low (0.008 stats/word) — no externally-verifiable data points /migration-notion-to-obsidian/
  • Missing HowTo schema for 5-phase migration procedure /migration-notion-to-obsidian/
  • 230,000 users stat sourced to third-party aggregator, not primary /n8n-la-gi/
  • 230,000 users figure sourced to non-primary flowlyn.com aggregator /n8n-la-gi/
  • Performance benchmarks have no primary sources /obsidian-vs-notion-vs-logseq-2026/
  • Notion '$10B valuation 2024' — year is likely wrong /obsidian-vs-notion-vs-logseq-2026/
  • No JSON-LD schema on page /tiet-kiem-token-claude-code/
  • Meta description too short and missing primary keyword phrase /tiet-kiem-token-claude-code/
  • Banned/AI-burstiness phrases detected /tiet-kiem-token-claude-code/
  • Stat density 0.031 stats/word — below 0.04 target for AI citability /tiet-kiem-token-claude-code/
  • H2 question format only 47% — below 60% target for GEO /tiet-kiem-token-claude-code/
  • 6 stats attributed to 'Nate Herk (2026)' without specific URLs or timestamps /tiet-kiem-token-claude-code/

Medium Priority — fix this month (0 recurring patterns, 80 one-off, 80 total occurrences)

+ 80 one-off findings (single article each) — click to expand

Each appears on a single article — low priority. Fix opportunistically when you next refresh that article; no site-wide action needed.

  • Hero image missing from article body (present only in OG) /anthropic-skills-repo-deep-dive/
  • Content depth: no comparison table, no code output sample /anthropic-skills-repo-deep-dive/
  • Stats are specific but unattributed — AI engines cannot cite them safely /anthropic-skills-repo-deep-dive/
  • Contradictory install count for frontend-design (124K vs 277K) /best-claude-code-skills/
  • No Table of Contents (9,200-word article) /best-claude-code-skills/
  • Soft attribution for r/ClaudeAI community claims /best-claude-code-skills/
  • Stats are well-distributed but lack ISO dates in-line /best-claude-code-skills/
  • FAQ section at H3 depth loses AI passage-extraction benefit /best-claude-code-skills/
  • Stat density very low — only 3 data points in ~2,400 words /cdn-la-gi/
  • Single external source cited (Cloudflare) with no link /cdn-la-gi/
  • TL;DR block is strong but lacks a specific, citable stat /cdn-la-gi/
  • Canonical tag unconfirmed — requires manual verification /cdn-la-gi/
  • Cloudflare '4 benefits' claim cited but not linked /cdn-la-gi/
  • publish_date equals last_modified — no visible update history /claude-code-dynamic-workflows/
  • Primary keyword not frontloaded in title tag /claude-code-dynamic-workflows/
  • BlogPosting missing explicit url and wordCount properties /claude-code-dynamic-workflows/
  • '90% developer chỉ cần Pro' claim — source link resolves to cost docs but stat not confirmed at destination /claude-code-gia-bao-nhieu/
  • Competitor pricing data timestamped March 2026 — potentially stale /claude-code-gia-bao-nhieu/
  • Two H2 sections bury the primary answer /claude-code-gia-bao-nhieu/
  • '$14B revenue / $2.5B Claude Code' framing — funding announcement, not audited revenue /claude-code-gia-bao-nhieu/
  • H1 differs from title tag /claude-code-gioi-han-su-dung/
  • Stat density high but attribution density lagging /claude-code-gioi-han-su-dung/
  • H1 / title tag mismatch /claude-code-la-gi/
  • Person schema missing url field for author and lacks @type Person on author node within BlogPosting /claude-code-la-gi/
  • Stat density at 0.09 is borderline — key comparison section lacks quantified evidence /claude-code-la-gi/
  • Primary keyword 'claude code là gì' absent from meta description /claude-code-la-gi/
  • Title pixel-width risk due to Vietnamese diacritics /claude-code-la-gi/
  • BlogPosting missing 'image' array — only single @id reference /claude-code-la-gi/
  • Pragmatic Engineer stat links to newsletter homepage, not source article /claude-code-la-gi/
  • Image alt-text issue /claude-code-plugins/
  • Stat density 1.9/100 words — below 2.5 GEO target /claude-code-plugins/
  • Block-level citability 38% — structured lists and tables present but many narrative blocks lack discrete factual claims /claude-code-plugins/
  • Workflow sections lack concrete terminal output — claims unverifiable /claude-code-seo-content/
  • Image alt texts strip Vietnamese diacritics — accessibility and indexing gap /claude-code-seo-content/
  • Article age risk: published 71 days ago in fast-moving AI tools niche /claude-code-seo-content/
  • Alt text quality: diacritics stripped in 3 content images /claude-code-seo-content/
  • 'SEO audit từ 18-26h xuống ~2h' — attributed to claude-world.com /claude-code-seo-content/
  • '68% doanh nghiệp báo cáo ROI nội dung tăng' — no source named /claude-code-seo-content/
  • No hreflang tag — Vietnamese article missing locale signal /claude-code-skills/
  • '/graphify 450K PyPI downloads' claim has no primary source link /claude-code-skills/
  • '500K tokens wasted monthly' is a calculated estimate with no methodology /claude-code-skills/
  • Reddit r/ClaudeCode '65 skills / 13 used' stat has no link /claude-code-skills/
  • Block-level citability at 42% — several sections lack standalone extractable answers /claude-code-skills/
  • Reddit '65 skills/13 used' stat missing thread URL /claude-code-skills/
  • H1 duplicates title tag exactly — weak differentiation /claude-md-la-gi/
  • Many H2 headings are statements, not questions — reduces People-Also-Ask signal /claude-md-la-gi/
  • Author lacks in-article biography / credentials block /dataforseo-la-gi/
  • Heading hierarchy: H3 sections appear as visual peers to H2 sections without parent H2 wrapper /dataforseo-la-gi/
  • No dedicated 'What is DataForSEO' single-paragraph definition block /dataforseo-la-gi/
  • '4.8B keyword database, 230+ locations' — no direct URL to DataForSEO 2025 Year in Review /dataforseo-la-gi/
  • No explicit TL;DR block marked up for AI extraction /geo-seo-claude/
  • Stack Overflow 2025 survey stat cited without URL /llm-la-gi/
  • Model version names may not match official release nomenclature /llm-la-gi/
  • TL;DR section not machine-readable as a distinct schema entity /llm-la-gi/
  • FAQ question headings lack H4 semantic markup /llm-la-gi/
  • Stack Overflow 2025 survey stats need hyperlink /llm-la-gi/
  • DataForSEO 2400 searches/month stat needs linked evidence /llm-la-gi/
  • Banned phrase detected: 'feel familiar' (AI-detectable formulaic transition) /migration-notion-to-obsidian/
  • Banned phrase detected: 'feel productive' (AI-detectable phrase) /migration-notion-to-obsidian/
  • No explicit author bio or credentials section in article body /migration-notion-to-obsidian/
  • Two 'Similar Posts' widget images have non-descriptive / keyword-stuffed alt text /migration-notion-to-obsidian/
  • WebPage schema missing mainEntity reference to BlogPosting /migration-notion-to-obsidian/
  • Banned AI-detection phrase detected: 'toàn diện' /n8n-la-gi/
  • Banned AI-detection phrase: 'Phụ thuộc vào' opener in FAQ /n8n-la-gi/
  • Article section @type is BlogPosting, not Article — limits rich result eligibility /n8n-la-gi/
  • Comparison section lacks citable tabular summary block /n8n-la-gi/
  • Stat density low in introduction (first 300 words) /n8n-la-gi/
  • OG image dimensions below 1200x630 recommendation /n8n-la-gi/
  • H1 more verbose than SEO title — misalignment reduces keyword match /n8n-la-gi/
  • Person author schema has @id pointing to author archive, not a dedicated person page /n8n-la-gi/
  • BlogPosting lacks 'wordCount' and 'articleBody' properties /n8n-la-gi/
  • Hetzner CX22 pricing stated as €3.79/tháng — verify current price /n8n-la-gi/
  • Word count 1,834 is light for a 3-tool comparison pillar /obsidian-vs-notion-vs-logseq-2026/
  • stat_density is moderate but stats lack inline attribution /obsidian-vs-notion-vs-logseq-2026/
  • BlogPosting missing 'articleBody' property /obsidian-vs-notion-vs-logseq-2026/
  • Obsidian ARR sourced to getlatka.com (estimated data, low authority) /obsidian-vs-notion-vs-logseq-2026/
  • Section H2 'Opus 4.7' references an unverified model version /tiet-kiem-token-claude-code/
  • No hreflang tags despite Vietnamese-language content /tiet-kiem-token-claude-code/
  • Answer-first 61% — acceptable but improvable /tiet-kiem-token-claude-code/
  • Date mismatch: OG image URL says April 2026, byline says May 2026 /tiet-kiem-token-claude-code/

Low Priority — backlog (0 recurring patterns, 41 one-off, 41 total occurrences)

+ 41 one-off findings (single article each) — click to expand

Each appears on a single article — low priority. Fix opportunistically when you next refresh that article; no site-wide action needed.

  • URL slug does not signal year for time-sensitive content /anthropic-skills-repo-deep-dive/
  • Author image reuses site logo (not a person photo) /best-claude-code-skills/
  • Author bio lacks verifiable credentials link /cdn-la-gi/
  • question_h2_pct at 44% — room to improve /cdn-la-gi/
  • Hero image alt text is English on a Vietnamese article /cdn-la-gi/
  • No third-party performance benchmarks — all quantitative data is self-measured /cdn-la-gi/
  • Single-keyword BlogPosting schema — keywords field not expanded /claude-code-dynamic-workflows/
  • No hreflang — Vietnamese-only signals not explicit /claude-code-dynamic-workflows/
  • No hreflang tag for Vietnamese language /claude-code-dynamic-workflows/
  • Token cost claim ('tốn nhiều hơn đáng kể') is qualitative — no quantitative benchmark cited /claude-code-dynamic-workflows/
  • Cursor Pro+ price stated as $60/month — does not match public pricing /claude-code-gia-bao-nhieu/
  • No author bio page link from article /claude-code-gioi-han-su-dung/
  • answer_first_pct at 65% — below 75% GEO target /claude-code-gioi-han-su-dung/
  • BlogPosting missing articleSection /claude-code-gioi-han-su-dung/
  • TechCrunch source dated 2025-07-28 — verify not a dead link /claude-code-gioi-han-su-dung/
  • ImageObject schema missing for 5 of 7 body images /claude-code-la-gi/
  • ImageObject schema covers only hero — 5 section images undeclared /claude-code-la-gi/
  • pl-01-top9.webp and pl-02-comparison.webp may lack descriptive alt /claude-code-plugins/
  • Commercial CTA section lacks disclosure — potential trust signal gap /claude-code-seo-content/
  • No explicit publish date visible in article body /claude-code-seo-content/
  • Banned AI-detection phrases detected (2 instances) /claude-code-skills/
  • H2 'Lịch sử phát triển' appears as both H2 and H3 — duplicate heading text /claude-code-skills/
  • No llms.txt or AI-crawler-specific directives referenced /claude-code-skills/
  • Stack Overflow 2025 survey stat '84% use AI tools daily' — verify exact wording /claude-code-skills/
  • 110,000+ GitHub Stars — verify current accuracy /claude-md-la-gi/
  • BlogPosting schema missing wordCount and articleBody fields /dataforseo-la-gi/
  • BlogPosting missing wordCount and articleBody /dataforseo-la-gi/
  • No hreflang — Vietnamese article with no language signal /geo-seo-claude/
  • article:author in OG meta points to Facebook page, not Person schema /geo-seo-claude/
  • Author photo is site logo, not personal face photo /llm-la-gi/
  • H2 count (15) exceeds recommended ceiling for word count /llm-la-gi/
  • 38% of H2 sections do not open with a direct answer sentence /llm-la-gi/
  • Person sameAs includes publisher homepage URL /llm-la-gi/
  • articleBody property absent from BlogPosting /llm-la-gi/
  • Article categorized under 'Claude Code' but topic is Obsidian migration — category mismatch /migration-notion-to-obsidian/
  • External link rel attribute status unconfirmed /migration-notion-to-obsidian/
  • BlogPosting articleSection set to 'Claude Code' but content is Obsidian/Notion migration /migration-notion-to-obsidian/
  • 6,274 AI workflow templates stat has no access date /n8n-la-gi/
  • No explicit author bio / credentials section in article body /n8n-la-gi/
  • No hreflang self-referential vi annotation /n8n-la-gi/
  • Author schema jobTitle is 'DevOps Engineer and AI Vibe Coder' — 'Vibe Coder' is informal /obsidian-vs-notion-vs-logseq-2026/

🎯 Top 20 Refresh Queue

Ranked by ROI: (Search Volume × Position Potential) × Commercial Intent × Content Strength Inverse × Decay Severity

⚠ GSC search data unavailable for this run. GSC not run (no --gsc or property not connected) This queue is ranked by content strength + decay signals only — treat the order as directional, not traffic-validated. Re-run with --gsc on a connected property for volume/position-driven ROI.

#1. /cdn-la-gi/

Priority: 270.0 · SV: 100 · Position: N/A — below GSC threshold · Content: 64/100 · Decay: 30%

#2. /anthropic-skills-repo-deep-dive/

Priority: 255.0 · SV: 100 · Position: N/A — below GSC threshold · Content: 66/100 · Decay: 30%

#3. /claude-code-plugins/

Priority: 255.0 · SV: 100 · Position: N/A — below GSC threshold · Content: 66/100 · Decay: 30%

#4. /claude-code-dynamic-workflows/

Priority: 240.0 · SV: 100 · Position: N/A — below GSC threshold · Content: 68/100 · Decay: 30%

#5. /claude-code-seo-content/

Priority: 240.0 · SV: 100 · Position: N/A — below GSC threshold · Content: 68/100 · Decay: 30%

#6. /claude-md-la-gi/

Priority: 240.0 · SV: 100 · Position: N/A — below GSC threshold · Content: 68/100 · Decay: 30%

#7. /migration-notion-to-obsidian/

Priority: 240.0 · SV: 100 · Position: N/A — below GSC threshold · Content: 68/100 · Decay: 30%

#8. /obsidian-vs-notion-vs-logseq-2026/

Priority: 232.5 · SV: 100 · Position: N/A — below GSC threshold · Content: 69/100 · Decay: 30%

#9. /tiet-kiem-token-claude-code/

Priority: 217.5 · SV: 100 · Position: N/A — below GSC threshold · Content: 71/100 · Decay: 30%

#10. /best-claude-code-skills/

Priority: 202.5 · SV: 100 · Position: N/A — below GSC threshold · Content: 73/100 · Decay: 30%

#11. /claude-code-gia-bao-nhieu/

Priority: 195.0 · SV: 100 · Position: N/A — below GSC threshold · Content: 74/100 · Decay: 30%

#12. /claude-code-skills-developers/

Priority: 187.5 · SV: 100 · Position: N/A — below GSC threshold · Content: 75/100 · Decay: 30%

#13. /claude-code-skills/

Priority: 172.5 · SV: 100 · Position: N/A — below GSC threshold · Content: 77/100 · Decay: 30%

#14. /claude-code-la-gi/

Priority: 165.0 · SV: 100 · Position: N/A — below GSC threshold · Content: 78/100 · Decay: 30%

#15. /n8n-la-gi/

Priority: 165.0 · SV: 100 · Position: N/A — below GSC threshold · Content: 78/100 · Decay: 30%

#16. /claude-code-gioi-han-su-dung/

Priority: 135.0 · SV: 100 · Position: N/A — below GSC threshold · Content: 82/100 · Decay: 30%

#17. /geo-seo-claude/

Priority: 127.5 · SV: 100 · Position: N/A — below GSC threshold · Content: 83/100 · Decay: 30%

#18. /dataforseo-la-gi/

Priority: 120.0 · SV: 100 · Position: N/A — below GSC threshold · Content: 84/100 · Decay: 30%

#19. /llm-la-gi/

Priority: 120.0 · SV: 100 · Position: N/A — below GSC threshold · Content: 84/100 · Decay: 30%

90-Day Action Roadmap

Refresh in this order (highest ROI first). The note after each article is its top issue to fix on that pass — full per-article findings are in the scorecard, and ready-to-apply artifacts are in the fixes/ folder.

Weeks 1-2: Top 5 Refresh Candidates

Weeks 3-6: Next 10

Weeks 7-12: Long-tail Refresh

🤖 Apply These Fixes with Claude Code

Most teams apply these with Claude Code. Hand Claude just the report MD blog-portfolio_ongboit.com_2026-06-16_blog-audit-pipeline.md (plus the fixes/ folder for ready-to-apply artifacts) — not the whole folder — then paste the prompt below. The 30-second version is in FIX-INSTRUCTIONS.md in this audit folder.

You are a senior content + SEO editor applying a content portfolio audit for the SITE OWNER (not a developer).

COMMUNICATE PLAINLY
- The person running you is the site owner and is NOT technical. Before each change, explain in ONE
  plain sentence what you'll change and why it helps; when you ask them to approve, give a simple
  yes/no recommendation. Don't assume they know SEO terms — define any jargon in a few words.

CONTEXT
- Read the report: blog-portfolio_ongboit.com_2026-06-16_blog-audit-pipeline.md (Start Here Top-3, findings by severity, per-article scorecard, 90-Day Refresh Roadmap).
- Ready-to-apply artifacts are in the fixes/ folder (schema JSON-LD, meta, snippets).
- Site: ongboit.com (WordPress -> apply via WP MCP). Almost everything here is editable inside WordPress — no server access needed.

WORKFLOW
1. Read the report. Summarize the Top 3 Fixes (the patterns hitting the most articles) + the top
   articles in the Refresh Queue, in plain language. Change nothing yet.
2. Propose a simple plan — fix SITE-WIDE patterns first (e.g. add FAQ markup to the articles that
   have a FAQ), then per-article by refresh priority. Wait for my OK.
3. When fixing each article (all inside WordPress):
   - Schema / FAQ / meta -> create a REVISION/DRAFT, NEVER publish live. I click Publish myself.
   - Content (thin, unsourced, missing internal links) -> show me the proposed edit, I approve.
4. After each article, VERIFY using the exact signal the finding measured (schema present, FAQ
   present, internal links added) and report pass/fail in plain language.

RULES
- Don't fabricate or weaken a fix to make it "pass". Evidence-only.
- NEVER publish or delete anything live -> always a draft/revision for my review.
- Keep a simple checklist: [article] -> done / drafted / skipped + why.

Per-Article Scorecard (19 articles)

Click a column to sort. Quality = 5-dimension composite · Citable = AI-quotable blocks · Unsourced = stats with no citation · Schema = JSON-LD types · Priority = refresh rank (higher = sooner).

Slug ▲▼Quality ▲▼Words ▲▼Int ▲▼Ext ▲▼Alt % ▲▼Citable ▲▼Unsourced ▲▼Schema ▲▼Priority ▲▼
/cdn-la-gi/581270.0
/anthropic-skills-repo-deep-dive/63[{'claim': 'github.com/anthropics/skills đã đạt 151 ngàn lượt phản hồi (tính đến 15/6/2026)', 'source_provided': False, 'verifiability': 'unverified — repo existence not confirmed in audit', 'risk': 'high'}, {'claim': "Claude Code v2.1.139 với lệnh '/plugin marketplace add anthropics/skills'", 'source_provided': False, 'verifiability': 'unverified — version string not found in public docs', 'risk': 'high'}, {'claim': 'academic-research-skills đạt 82 điểm trên Hacker News tháng 5/2026', 'source_provided': False, 'verifiability': 'unverified — no HN thread linked', 'risk': 'high'}, {'claim': 'Dung lượng cài đặt khoảng 150-250 MB', 'source_provided': False, 'verifiability': 'author estimate — not labeled as such', 'risk': 'medium'}, {'claim': 'testing-web-apps covers 60-70% of boilerplate test cases', 'source_provided': False, 'verifiability': 'author estimate — not labeled as such', 'risk': 'medium'}, {'claim': 'Anthropic heavily invested in Web Testing group from Q1 2026', 'source_provided': False, 'verifiability': 'no source; no release notes or blog post cited', 'risk': 'medium'}, {'claim': 'Enterprise Workflow group shipped Q2 2026', 'source_provided': False, 'verifiability': 'no release notes or changelog link', 'risk': 'medium'}]255.0
/claude-code-plugins/55[{'claim': '9,000+ extensions (community marketplace)', 'context': 'Community plugins section discussing marketplace size', 'source_provided': False, 'severity': 'P1'}, {'claim': '2,300+ skills (claudemarketplaces.com) — no access date', 'context': 'Marketplace section comparing skill counts', 'source_provided': False, 'severity': 'P2'}, {'claim': '425 plugins at tonsofskills.com', 'context': 'Third-party marketplace reference', 'source_provided': False, 'severity': 'P2'}, {'claim': '2,810 skill curated community', 'context': 'Community curation stat', 'source_provided': False, 'severity': 'P2'}]255.0
/claude-code-dynamic-workflows/751240.0
/claude-code-seo-content/647240.0
/claude-md-la-gi/552240.0
/migration-notion-to-obsidian/68[{'claim': '4-12 hours for 200-2,000 pages', 'location': 'TL;DR summary table and opening paragraph', 'source_provided': False, 'verdict': 'UNSOURCED_ASSERTION', 'note': 'Author personal estimate; plausible but not externally verified. Should be labeled as estimated or cite community reports.'}, {'claim': 'Personal migration of 800 pages in 9 hours across three sessions, 90% successful import, 10% manual fixes', 'location': 'Body text in author experience section', 'source_provided': False, 'verdict': 'FIRST_PARTY_PERSONAL_DATA', 'note': 'Acceptable as personal experience claim IF clearly labeled as such. Currently presented as implicit benchmark without explicit first-person framing.'}, {'claim': '2-4 weeks before feel familiar with Obsidian; productivity exceeds Notion baseline after month 1', 'location': "FAQ answer: 'Mất bao lâu trước khi feel familiar với Obsidian?'", 'source_provided': False, 'verdict': 'UNSOURCED_ASSERTION', 'note': 'No link to Obsidian community survey, Reddit thread, or user study. Pure author assertion.'}, {'claim': 'Dual-run >3 months creates friction switching context, not recommended', 'location': "FAQ answer: 'Có thể dual-run Notion + Obsidian cùng lúc không?'", 'source_provided': False, 'verdict': 'OPINION_NOT_LABELED', 'note': "Stated as fact without evidence. Should be labeled as 'theo kinh nghiệm cá nhân' or cite community consensus."}]240.0
/obsidian-vs-notion-vs-logseq-2026/73[{'claim': 'Obsidian vault opens 2-3 seconds', 'location': 'Performance section', 'source_provided': False, 'risk': 'HIGH — specific timing claim with no test methodology or source'}, {'claim': 'Notion opens 3-5 seconds, search 1-2 seconds', 'location': 'Performance section', 'source_provided': False, 'risk': 'HIGH — specific timing claim with no test methodology or source'}, {'claim': 'Logseq opens 4-6 seconds', 'location': 'Performance section', 'source_provided': False, 'risk': 'HIGH — specific timing claim with no test methodology or source'}, {'claim': 'Notion handles 50K pages smoothly', 'location': 'Performance section', 'source_provided': False, 'risk': 'MEDIUM — threshold figure with no source'}, {'claim': 'Obsidian graph smooth to 5000 notes', 'location': 'Performance section', 'source_provided': False, 'risk': 'MEDIUM — community-reported but no source cited'}, {'claim': 'Obsidian $2M ARR (2025)', 'location': 'Philosophy/business comparison', 'source_provided': 'PARTIAL — getlatka.com link in external links but not inline', 'risk': 'MEDIUM — getlatka.com is an estimates aggregator, not primary source'}, {'claim': 'Notion $10B valuation 2024', 'location': 'Philosophy/business comparison', 'source_provided': False, 'risk': "HIGH — Notion's last public valuation was $10.3B in Oct 2021 Series C; '2024' date is unverified"}, {'claim': 'Obsidian Bases covers 70-80% of Notion database use cases', 'location': 'FAQ — Bases vs Notion', 'source_provided': False, 'risk': 'MEDIUM — editorial estimate, no methodology'}]232.5
/tiet-kiem-token-claude-code/55[{'claim': 'Opus 4.7 pricing: $4/$20 (down 20% from $5/$25)', 'source_cited': 'None', 'verifiable': False, 'severity': 'P0', 'note': "'Opus 4.7' does not appear in Anthropic pricing docs as of 2026-06-16. Current model is claude-opus-4-5. Pricing figures are unverified."}, {'claim': 'Tokenizer v3 reduces input tokens 35% for Vietnamese', 'source_cited': 'None', 'verifiable': False, 'severity': 'P0', 'note': "No 'Tokenizer v3' exists in Anthropic public documentation. This claim appears fabricated or speculative."}, {'claim': 'Cache hit rates improved from 60-65% to 75-82% in Opus 4.7', 'source_cited': 'None', 'verifiable': False, 'severity': 'P0', 'note': 'Model-specific cache hit rate benchmarks not published by Anthropic. Unverified.'}, {'claim': '98.5% of tokens in a session are spent rereading history, not processing new tasks', 'source_cited': 'Nate Herk (2026), 7,000 session analysis', 'verifiable': 'partial', 'severity': 'P1', 'note': 'Source cited (Nate Herk YouTube) but the 7,000-session figure and exact 98.5% stat need verification against the actual video. External link provided; auditor should verify.'}, {'claim': 'Message #30 costs 31x more than Message #1', 'source_cited': 'Nate Herk (2026)', 'verifiable': 'partial', 'severity': 'P1', 'note': "Plausible given quadratic token accumulation, but 31x is a very specific figure. Needs cross-check against Nate Herk's actual published analysis."}, {'claim': 'Retrieval accuracy: 92% at 256K context, 78% at 1M tokens', 'source_cited': 'Nate Herk (2026)', 'verifiable': 'partial', 'severity': 'P1', 'note': "These are likely from Anthropic's own model card / technical report, not Nate Herk. Attribution appears misassigned."}, {'claim': 'Thinking depth drops 67% in long sessions (18,000 thinking blocks analyzed)', 'source_cited': 'Nate Herk (2026)', 'verifiable': 'partial', 'severity': 'P1', 'note': "'67%' thinking depth drop is a strong claim. 18,000 thinking blocks is plausible for a prolific tester. Verify against linked YouTube video."}, {'claim': 'CLAUDE.md optimization gives 62% startup cost reduction', 'source_cited': 'Anthropic Docs', 'verifiable': 'partial', 'severity': 'P2', 'note': 'Anthropic Docs are cited but no specific URL/section. The 62% figure is not found in standard Anthropic documentation. May be an experimental community estimate.'}, {'claim': 'File-to-Markdown conversion: 90% reduction for HTML, 65-70% for PDF, 33% for DOCX', 'source_cited': 'Nate Herk (2026)', 'verifiable': 'partial', 'severity': 'P2', 'note': 'Plausible compression ratios, but precise percentages need citation to a specific test/benchmark.'}, {'claim': 'Sub-agents use 7x tokens', 'source_cited': 'Anthropic Docs', 'verifiable': 'partial', 'severity': 'P2', 'note': "'7x' overhead for sub-agents is a community estimate; Anthropic Docs warn of higher costs but do not publish a specific multiplier. Check current docs.anthropic.com/claude-code for accuracy."}, {'claim': 'User saw costs balloon from $345/month to $42,000/month', 'source_cited': 'Nate Herk (2026)', 'verifiable': 'partial', 'severity': 'P2', 'note': 'Dramatic anecdote; plausible for enterprise misuse but $42,000/month implies ~2 million tokens/hour sustained. Should link to specific source (tweet/video timestamp).'}]217.5
/best-claude-code-skills/58[{'claim': 'description field quyết định 90% invocation rate', 'location': 'Power-user insights section', 'source_given': None, 'severity': 'P1', 'fix': 'Link to Anthropic docs or skill author post, or reframe as personal observation with qualifier.'}, {'claim': 'mỗi skill load tiêu tốn 30-50 tokens context', 'location': "FAQ: 'Cài nhiều skills có làm chậm Claude Code không?'", 'source_given': None, 'severity': 'P1', 'fix': "Cite a Claude Code docs page or CLAUDE.md behavior reference, or add '(ước tính cá nhân, chưa xác minh chính thức)' qualifier."}, {'claim': 'frontend-design: 277K installs (contradicts 124K-277K range given elsewhere)', 'location': 'TL;DR vs. skill entry #6', 'source_given': 'Claude Code Docs implied', 'severity': 'P1', 'fix': 'Pick one figure with date stamp. Remove the range.'}, {'claim': '80% skill cài không bao giờ invoke — 65 skills, 13 with invocations', 'location': 'Power-user insights section', 'source_given': 'một dev trên r/ClaudeCode (no link)', 'severity': 'P2', 'fix': "Add direct link to the specific Reddit post, or add '(community self-report, no peer review)' qualifier."}, {'claim': '/graphify 71x token saving', 'location': 'TL;DR and skill entry #21', 'source_given': 'r/ClaudeAI + obra/superpowers GitHub (but graphify is a separate tool)', 'severity': 'P2', 'fix': 'Link to the specific r/ClaudeAI post where the 71x benchmark was reported, or the graphify README if it documents this.'}]202.5
/claude-code-gia-bao-nhieu/65[{'claim': 'Pro plan: 45 messages per 5-hour window', 'status': 'unsourced', 'note': 'Anthropic does not publish this number officially; no link provided'}, {'claim': 'Max 20x: ~900 messages per 5-hour window', 'status': 'unsourced', 'note': 'Derived from 45×20 but no official source'}, {'claim': 'Claude tokenizer uses 35% more tokens on 4.7+', 'status': 'unsourced', 'note': "Attributed to 'theo Anthropic' without specific link or document"}, {'claim': 'Pro plan provides $160–180/month API equivalent value', 'status': 'inferred', 'note': 'Math-derived from $6/day × 30 = $180; inference not clearly labeled as such'}, {'claim': 'Cursor Pro+ priced at $60/month', 'status': 'likely_incorrect', 'note': 'cursor.com/pricing shows Pro at $20/month and Business at $40/month as of 2026; $60 tier not found'}]195.0
/claude-code-skills-developers/65[{'claim': '89K Installs feature-dev (also shown as 89K in comparison table)', 'location': 'Stats box, comparison table, feature-dev section text', 'source_cited': 'None — no URL or date provided for this install count', 'severity': 'P1'}, {'claim': 'obra/superpowers: 55K Stars in H2/text vs 228K Stars in comparison table — internal contradiction', 'location': "H2 heading says '55K Stars', body text says '55.000 stars (2026)', comparison table row 7 says '228K stars'", 'source_cited': 'GitHub repo cited but no snapshot date; figures contradict each other', 'severity': 'P0'}, {'claim': "'Top 10 Most-Installed developer skills' install counts (116, 65, 49, 36, 32, 30, 27, 21, 17, 16)", 'location': "Top 10 table, '2026-05 Update' section", 'source_cited': "'Agensi 2026 ranking' — vague, no URL or methodology provided", 'severity': 'P1'}, {'claim': "vercel-labs repo has '19.500 stars'", 'location': 'vercel-labs React section body text', 'source_cited': 'No URL or retrieval date cited; only GitHub mentioned generically', 'severity': 'P2'}, {'claim': "Total time savings '~10 giờ/tuần ~ 1 ngày dev/tuần' from combining 5 skills", 'location': 'Top 5 Time-Savers section', 'source_cited': 'Author estimate — no study or methodology cited', 'severity': 'P2'}, {'claim': "alirezarezvani Engineering Core: '36 Skills' and mentioned as '223 skills' in conclusion", 'location': "H3 heading '36 Skills'; conclusion text 'như alirezarezvani (223 skills)' — internal contradiction", 'source_cited': 'No version date or repo link in text context', 'severity': 'P1'}]187.5
/claude-code-skills/743172.5
/claude-code-la-gi/73[{'claim': '18% developer adoption globally (2026)', 'context': "H3 section 'Skills Marketplace Mở Rộng: 1 → 8 Sites Trong 6 Tháng'", 'source_link_present': False, 'risk': 'medium'}, {'claim': '20.8 million commits contributed to 1M+ repos (Q1 2026)', 'context': 'Ecosystem section', 'source_link_present': False, 'risk': 'medium'}, {'claim': "46% 'most loved AI tool' (Pragmatic Engineer 2026)", 'context': 'Comparison section', 'source_link_present': True, 'source_url': 'https://newsletter.pragmaticengineer.com/', 'source_quality': 'links to homepage not specific article', 'risk': 'medium'}, {'claim': '91% CSAT, NPS 54', 'context': 'Ecosystem section', 'source_link_present': False, 'risk': 'medium'}, {'claim': '135K+ feedback responses for Skills', 'context': 'Ecosystem / 2026 updates section', 'source_link_present': False, 'risk': 'low'}, {'claim': '10,000+ MCP servers available', 'context': 'Ecosystem section', 'source_link_present': True, 'source_url': 'https://github.com/modelcontextprotocol/servers', 'risk': 'low'}, {'claim': 'Weekly quota increased 50% until July 13, 2026', 'context': 'Update section', 'source_link_present': True, 'source_url': 'https://apidog.com/blog/claude-code-weekly-limits-50-percent-increase-july-2026/', 'risk': 'low'}, {'claim': 'Anthropic Academy 16 free courses', 'context': 'Ecosystem section', 'source_link_present': True, 'source_url': 'https://www.anthropic.com/learn', 'risk': 'low'}]165.0
/n8n-la-gi/772165.0
/claude-code-gioi-han-su-dung/82[{'claim': 'Opus cạn nhanh gấp 10x so với Sonnet', 'context': "H2 section header and surrounding body text — '10x' compute cost ratio stated as fact", 'citation_present': False, 'nearest_source': 'Anthropic Help Center pricing article linked elsewhere in page but not anchored to this specific claim', 'risk': 'medium — plausible from Anthropic API pricing page (Sonnet vs Opus token costs), but not directly cited at claim site'}, {'claim': 'Pro: 40-80h Sonnet/tuần', 'context': "Usage table in 'Bảng giới hạn theo plan' section", 'citation_present': True, 'source': 'support.claude.com/en/articles/11145838', 'risk': 'low'}, {'claim': 'SpaceX Colossus 1 deal và $200B Google', 'context': "Section 'Cú Hích Compute Phía Sau'", 'citation_present': True, 'source': 'Engadget, MindStudio, Ars Technica, Anthropic news all linked', 'risk': 'low'}, {'claim': 'DeepClaude + Qwen 3.6 27B chạy local — tiết kiệm quota', 'context': "Section 'Cách 8' — practical tip", 'citation_present': False, 'nearest_source': 'Internal link to /claude-deepclaude-qwen-local/ article', 'risk': 'low — internal cross-link exists, first-party claim'}]135.0
/geo-seo-claude/82[{'claim': '89% of domains that ChatGPT and Perplexity reject even when SEO tools score them high', 'severity': 'P1', 'source_given': None, 'verifiable': False, 'finding': {'severity': 'P1', 'title': '89% domain rejection claim has no source', 'evidence': 'Article states approximately 89% of domains are rejected by ChatGPT and Perplexity despite high SEO tool scores. No citation provided. This is a high-impact, verifiable-sounding statistic that appears to be original content without backing.', 'effort': 'S', 'impact': 'Unsourced key claim damages E-E-A-T. AI fact-checkers (Perplexity, etc.) will not cite a page that asserts unverifiable statistics.', 'confidence': 'high', 'fix': "Either cite the original source (if exists — possibly Similarweb AI search study or BrightEdge) or reframe as first-party observation: 'In our audit of X sites using geo-seo-claude, we found that...'"}}, {'claim': '69% zero-click searches (May 2025)', 'severity': 'P2', 'source_given': 'Similarweb 5/2025', 'verifiable': True, 'finding': {'severity': 'P2', 'title': 'Similarweb zero-click stat cited without direct report URL', 'evidence': "Claim: '69% Zero-Click Searches' attributed to Similarweb May 2025. No hyperlink to the Similarweb report page provided in the article.", 'effort': 'S', 'impact': 'AI crawlers prefer traceable sources. Without a URL, the citation is weaker for AI extraction and fact-checking.', 'confidence': 'high', 'fix': "Add hyperlink to Similarweb's Digital Research 2025 report or the specific blog post where they published this stat."}}, {'claim': '11% of domains cited by both ChatGPT and Google AI Overviews simultaneously', 'severity': 'P2', 'source_given': 'Similarweb 2025', 'verifiable': True, 'finding': {'severity': 'P2', 'title': 'Dual-citation overlap stat (11%) lacks direct URL', 'evidence': 'Claim: only 11% of domains appear in both ChatGPT and Google AI Overview citations. Attributed to Similarweb 2025 with no hyperlink.', 'effort': 'S', 'impact': 'Same as above — cite the source URL for verifiability.', 'confidence': 'high', 'fix': 'Link to the Similarweb AI Trends report that published this finding.'}}, {'claim': '+527% AI-referred traffic growth in first 5 months of 2025', 'severity': 'P2', 'source_given': 'Similarweb 2025', 'verifiable': True, 'finding': {'severity': 'P2', 'title': '+527% AI traffic growth stat lacks direct URL', 'evidence': 'Stat appears in hero stats bar. Attributed to Similarweb. No hyperlink to the underlying report.', 'effort': 'S', 'impact': 'Headline stat — the most visible unlinked claim on the page. Should be the first to get a citation URL.', 'confidence': 'high', 'fix': "Link to Similarweb's 'AI Search Soars' or equivalent 2025 industry report page."}}]127.5
/dataforseo-la-gi/803120.0
/llm-la-gi/79[{'claim': 'từ 2024 đến 2026, giá API LLM đã giảm khoảng 80% trung bình', 'location': 'FAQ — Tại sao có nhiều LLM mới ra liên tục?', 'source_provided': False, 'risk': 'P1 — unverified market claim presented as fact'}, {'claim': 'Stack Overflow 2025 (n=33,662), 84% developer dùng AI tools hàng ngày; chỉ 3% tin AI có thể thay thế họ', 'location': 'FAQ — LLM có thay thế lập trình viên không?', 'source_provided': 'inline mention only — no hyperlink', 'risk': 'P2 — verifiable stat but no link provided'}, {'claim': "2,400 lượt search 'llm là gì'/tháng tại VN", 'location': 'Body introduction section', 'source_provided': 'attributed to DataForSEO 2026 verbally, no link', 'risk': 'P2 — primary stat supporting article relevance needs linked evidence'}, {'claim': 'Gemini 3 Pro Preview đã bị discontinued 26/3/2026', 'location': 'FAQ — Nên chọn LLM nào cho developer?', 'source_provided': False, 'risk': 'P2 — specific product discontinuation claim with no citation'}, {'claim': 'Model version names: GPT-5.4, Gemini 3.1 Pro, Grok 4.1, Claude Opus 4.7, Claude Sonnet 4.6', 'location': '16-model comparison table', 'source_provided': 'Pricing links to official pages present, but model name strings cannot be independently verified against official documentation at time of audit (2026-06-16)', 'risk': 'P1 — model name accuracy is foundational to the entire comparison table; one wrong version name undermines the full comparison'}]120.0

Decay Map

Phase 3 data not available. Run pipeline without --fast to include cross-article analysis.

Cluster Authority Flow

Phase 3 data not available. Run pipeline without --fast to include cross-article analysis.

Cannibalization Map

Phase 3 data not available. Run pipeline without --fast to include cross-article analysis.

Anchor Diversity

Phase 3 data not available. Run pipeline without --fast to include cross-article analysis.

📊 Visualizations

Chart breakdown of findings + per-skill performance + quick wins ROI.

Findings by Priority

P0 Critical 33 P1 High 98 P2 Medium 120 P3 Low 66

Per-Skill Score Radar

Mean score per dimension across 19 scored articles.

255075100 Quality73/100AI Cite66/100On-page73/100Schema54/100Sourcing69/100

Top 5 Quick Wins — ROI Ranking

#1 Stat inconsistency: '151K reactions… ROI 9.0 #2 Primary subject (github.com/anthrop… ROI 9.0 #3 Meta description absent ROI 9.0 #4 Meta description missing — SEO crit… ROI 9.0 #5 FAQPage schema not confirmed — 4 FA… ROI 9.0
/anthropic-skills-repo-deep-dive/ 63/100 Fair ▸ click to expand 5 skill cards

blog-analyze

66/100
content_depth: 15
seo_optim: 18
eeat: 13
technical: 12
ai_citation: 8

6 findings — see full list grouped by severity above.

blog-geo

68/100

3 findings — see full list grouped by severity above.

blog-seo-check

78/100

2 findings — see full list grouped by severity above.

blog-schema

72/100

4 findings — see full list grouped by severity above.

blog-factcheck

42/100

2 findings — see full list grouped by severity above.

/best-claude-code-skills/ 58/100 Poor ▸ click to expand 5 skill cards

blog-analyze

73/100
content_depth: 22
seo_optim: 16
eeat: 15
technical: 9
ai_citation: 11

11 findings — see full list grouped by severity above.

blog-geo

62/100

3 findings — see full list grouped by severity above.

blog-seo-check

52/100

2 findings — see full list grouped by severity above.

blog-schema

4/100

1 findings — see full list grouped by severity above.

blog-factcheck

71/100

2 findings — see full list grouped by severity above.

/cdn-la-gi/ 58/100 Poor ▸ click to expand 5 skill cards

blog-analyze

64/100
content_depth: 18
content_depth_max: 25
seo_optim: 17
seo_optim_max: 25
eeat: 14
eeat_max: 20
technical: 9
technical_max: 15
ai_citation: 6
ai_citation_max: 15

5 findings — see full list grouped by severity above.

blog-geo

55/100

3 findings — see full list grouped by severity above.

blog-seo-check

75/100

3 findings — see full list grouped by severity above.

blog-schema

15/100

2 findings — see full list grouped by severity above.

blog-factcheck

72/100
unsourced_stats: 1

2 findings — see full list grouped by severity above.

/claude-code-dynamic-workflows/ 75/100 Good ▸ click to expand 5 skill cards

blog-analyze

68/100
content_depth: 16
seo_optim: 22
eeat: 16
technical: 13
ai_citation: 1

4 findings — see full list grouped by severity above.

blog-geo

63/100

3 findings — see full list grouped by severity above.

blog-seo-check

80/100

2 findings — see full list grouped by severity above.

blog-schema

74/100

3 findings — see full list grouped by severity above.

blog-factcheck

88/100
unsourced_stats: 1

2 findings — see full list grouped by severity above.

/claude-code-gia-bao-nhieu/ 65/100 Fair ▸ click to expand 5 skill cards

blog-analyze

74/100
content_depth: 21
seo_optim: 19
eeat: 15
technical: 10
ai_citation: 9

10 findings — see full list grouped by severity above.

blog-geo

71/100

2 findings — see full list grouped by severity above.

blog-seo-check

62/100

3 findings — see full list grouped by severity above.

blog-schema

15/100

1 findings — see full list grouped by severity above.

blog-factcheck

73/100

4 findings — see full list grouped by severity above.

/claude-code-gioi-han-su-dung/ 82/100 Good ▸ click to expand 5 skill cards

blog-analyze

82/100

4 findings — see full list grouped by severity above.

blog-geo

78/100

3 findings — see full list grouped by severity above.

blog-seo-check

85/100

1 findings — see full list grouped by severity above.

blog-schema

88/100

2 findings — see full list grouped by severity above.

blog-factcheck

80/100

2 findings — see full list grouped by severity above.

/claude-code-la-gi/ 73/100 Fair ▸ click to expand 5 skill cards

blog-analyze

78/100
content_depth: 22
seo_optim: 19
eeat: 17
technical: 11
ai_citation: 9

8 findings — see full list grouped by severity above.

blog-geo

71/100

3 findings — see full list grouped by severity above.

blog-seo-check

72/100

3 findings — see full list grouped by severity above.

blog-schema

74/100

4 findings — see full list grouped by severity above.

blog-factcheck

68/100

2 findings — see full list grouped by severity above.

/claude-code-plugins/ 55/100 Poor ▸ click to expand 5 skill cards

blog-analyze

66/100
content_depth: 19
seo_optim: 16
eeat: 13
technical: 8
ai_citation: 10

8 findings — see full list grouped by severity above.

blog-geo

52/100

4 findings — see full list grouped by severity above.

blog-seo-check

58/100

2 findings — see full list grouped by severity above.

blog-schema

5/100

1 findings — see full list grouped by severity above.

blog-factcheck

72/100

2 findings — see full list grouped by severity above.

/claude-code-seo-content/ 64/100 Fair ▸ click to expand 5 skill cards

blog-analyze

68/100
content_depth: 20
seo_optim: 18
eeat: 15
technical: 11
ai_citation: 4

10 findings — see full list grouped by severity above.

blog-geo

62/100

3 findings — see full list grouped by severity above.

blog-seo-check

72/100

4 findings — see full list grouped by severity above.

blog-schema

65/100

3 findings — see full list grouped by severity above.

blog-factcheck

48/100
unsourced_stats: 7

9 findings — see full list grouped by severity above.

/claude-code-skills-developers/ 65/100 Fair ▸ click to expand 5 skill cards

blog-analyze

?/100
content_depth: 21
seo_optim: 17
eeat: 15
technical: 8
ai_citation: 10

0 findings — see full list grouped by severity above.

blog-geo

?/100

0 findings — see full list grouped by severity above.

blog-seo-check

?/100

0 findings — see full list grouped by severity above.

blog-schema

?/100

0 findings — see full list grouped by severity above.

blog-factcheck

?/100

0 findings — see full list grouped by severity above.

/claude-code-skills/ 74/100 Fair ▸ click to expand 5 skill cards

blog-analyze

77/100
content_depth: 22
seo_optim: 18
eeat: 15
technical: 11
ai_citation: 11

10 findings — see full list grouped by severity above.

blog-geo

68/100

3 findings — see full list grouped by severity above.

blog-seo-check

82/100

2 findings — see full list grouped by severity above.

blog-schema

72/100

2 findings — see full list grouped by severity above.

blog-factcheck

68/100
unsourced_stats: 3

5 findings — see full list grouped by severity above.

/claude-md-la-gi/ 55/100 Poor ▸ click to expand 5 skill cards

blog-analyze

68/100
content_depth: 22
seo_optim: 14
eeat: 16
technical: 9
ai_citation: 7

8 findings — see full list grouped by severity above.

blog-geo

62/100

3 findings — see full list grouped by severity above.

blog-seo-check

42/100

3 findings — see full list grouped by severity above.

blog-schema

0/100

1 findings — see full list grouped by severity above.

blog-factcheck

72/100
unsourced_stats: 2

3 findings — see full list grouped by severity above.

/dataforseo-la-gi/ 80/100 Good ▸ click to expand 5 skill cards

blog-analyze

84/100
content_depth: 23
seo_optim: 20
eeat: 16
technical: 13
ai_citation: 12

6 findings — see full list grouped by severity above.

blog-geo

54/100

2 findings — see full list grouped by severity above.

blog-seo-check

90/100

1 findings — see full list grouped by severity above.

blog-schema

88/100

3 findings — see full list grouped by severity above.

blog-factcheck

70/100
unsourced_stats: 3

3 findings — see full list grouped by severity above.

/geo-seo-claude/ 82/100 Good ▸ click to expand 5 skill cards

blog-analyze

83/100
content_depth: 22
content_depth_max: 25
seo_optim: 21
seo_optim_max: 25
eeat: 16
eeat_max: 20
technical: 13
technical_max: 15
ai_citation: 11
ai_citation_max: 15

5 findings — see full list grouped by severity above.

blog-geo

76/100

3 findings — see full list grouped by severity above.

blog-seo-check

80/100

2 findings — see full list grouped by severity above.

blog-schema

88/100

3 findings — see full list grouped by severity above.

blog-factcheck

85/100

0 findings — see full list grouped by severity above.

/llm-la-gi/ 79/100 Good ▸ click to expand 5 skill cards

blog-analyze

84/100
content_depth: 22
content_depth_max: 25
seo_optim: 21
seo_optim_max: 25
eeat: 17
eeat_max: 20
technical: 13
technical_max: 15
ai_citation: 11
ai_citation_max: 15

6 findings — see full list grouped by severity above.

blog-geo

72/100

3 findings — see full list grouped by severity above.

blog-seo-check

79/100

2 findings — see full list grouped by severity above.

blog-schema

85/100

3 findings — see full list grouped by severity above.

blog-factcheck

74/100

4 findings — see full list grouped by severity above.

/migration-notion-to-obsidian/ 68/100 Fair ▸ click to expand 5 skill cards

blog-analyze

68/100
content_depth: 19
seo_optim: 18
eeat: 14
technical: 10
ai_citation: 7

6 findings — see full list grouped by severity above.

blog-geo

62/100

3 findings — see full list grouped by severity above.

blog-seo-check

76/100

2 findings — see full list grouped by severity above.

blog-schema

72/100

4 findings — see full list grouped by severity above.

blog-factcheck

58/100

1 findings — see full list grouped by severity above.

/n8n-la-gi/ 77/100 Good ▸ click to expand 5 skill cards

blog-analyze

78/100
content_depth: 21
seo_optim: 20
eeat: 17
technical: 11
ai_citation: 9

6 findings — see full list grouped by severity above.

blog-geo

72/100

4 findings — see full list grouped by severity above.

blog-seo-check

80/100

3 findings — see full list grouped by severity above.

blog-schema

74/100

4 findings — see full list grouped by severity above.

blog-factcheck

82/100
unsourced_stats: 2

4 findings — see full list grouped by severity above.

/obsidian-vs-notion-vs-logseq-2026/ 73/100 Fair ▸ click to expand 5 skill cards

blog-analyze

69/100
content_depth: 17
seo_optim: 20
eeat: 13
technical: 10
ai_citation: 9

5 findings — see full list grouped by severity above.

blog-geo

65/100

3 findings — see full list grouped by severity above.

blog-seo-check

92/100

1 findings — see full list grouped by severity above.

blog-schema

85/100

3 findings — see full list grouped by severity above.

blog-factcheck

55/100

3 findings — see full list grouped by severity above.

/tiet-kiem-token-claude-code/ 55/100 Poor ▸ click to expand 5 skill cards

blog-analyze

71/100
content_depth: 20
seo_optim: 17
eeat: 14
technical: 10
ai_citation: 10

7 findings — see full list grouped by severity above.

blog-geo

68/100

4 findings — see full list grouped by severity above.

blog-seo-check

62/100

2 findings — see full list grouped by severity above.

blog-schema

5/100

1 findings — see full list grouped by severity above.

blog-factcheck

58/100

2 findings — see full list grouped by severity above.

Portfolio Strengths (16 patterns)

What the portfolio already does well (count = articles). Top: Author E-E-A-T present (strength) (2) · No speakable property in BlogPosting or WebPage (2) · No speakable property in BlogPosting (1) · TL;DR is present but not structurally first-answer formatted (1).

✅ Author E-E-A-T present (strength) (2)✅ No speakable property in BlogPosting or WebPage (2)✅ No speakable property in BlogPosting (1)✅ TL;DR is present but not structurally first-answer formatted (1)✅ ai_citation score low — no AI-search-optimised speakable or citation signals (1)✅ No speakable schema markup despite strong FAQ/definition content (1)✅ Question H2 coverage strong (73%) but 3 non-question H2s could be reformulated (1)✅ No JSON-LD structured data present (1)
+ 8 more strength patterns
✅ Answer-first structure present in only ~45% of sections (1)✅ Person schema uses site name 'Ông Bố IT' not author full name in @id node (1)✅ No speakable property defined (1)✅ No structured data / JSON-LD schema present (1)✅ No speakable schema property (1)✅ Answer-first structure present in intro but not consistently applied at H2 section level (1)✅ TL;DR present but not self-contained enough for AI Overview extraction (1)✅ Zero structured data on page — complete schema gap (1)
✅ Cross-Skill Validation (14) — issues independently flagged by 2+ skills (high confidence)
Stat inconsistency: '151K reactions' vs '135K stars' in same article
Flagged by: blog-analyze, blog-factcheck (2 findings) — high confidence cross-validated.
Meta description 5 chars short of 150-char floor
Flagged by: blog-analyze, blog-seo-check (5 findings) — high confidence cross-validated.
BlogPosting missing articleBody and wordCount properties
Flagged by: blog-analyze, blog-schema (5 findings) — high confidence cross-validated.
No speakable property in BlogPosting
Flagged by: blog-analyze, blog-schema (5 findings) — high confidence cross-validated.
Meta description absent
Flagged by: blog-analyze, blog-seo-check (5 findings) — high confidence cross-validated.
OG and Twitter Card meta tags not confirmed
Flagged by: blog-analyze, blog-seo-check (5 findings) — high confidence cross-validated.
Tokenizer '35% more tokens on 4.7+' claim lacks specific citation
Flagged by: blog-analyze, blog-factcheck (2 findings) — high confidence cross-validated.
No speakable schema markup despite strong FAQ/definition content
Flagged by: blog-analyze, blog-schema (2 findings) — high confidence cross-validated.
Meta description 162 chars — 2 chars over 160-char limit
Flagged by: blog-analyze, blog-seo-check (2 findings) — high confidence cross-validated.
FAQPage schema missing despite 7 structured FAQ questions
Flagged by: blog-analyze, blog-schema (2 findings) — high confidence cross-validated.
'/graphify 450K PyPI downloads' claim has no primary source link
Flagged by: blog-analyze, blog-factcheck (2 findings) — high confidence cross-validated.
'500K tokens wasted monthly' is a calculated estimate with no methodology
Flagged by: blog-analyze, blog-factcheck (2 findings) — high confidence cross-validated.
No speakable schema for voice / AI snippet optimization
Flagged by: blog-analyze, blog-geo (2 findings) — high confidence cross-validated.
Title tag 1 character below 50-char minimum
Flagged by: blog-analyze, blog-seo-check (2 findings) — high confidence cross-validated.

Methodology

Deterministic + LLM-handoff phases. Bar = share of total wall-clock. Total work: 15m 59s.

0_setup
2s
1_discovery
1s
2_per_article
15m 55s
·
3_cross_article
·
4_gsc
·
4_ga4
5_refresh_queue
6_deliverable
·
6.5_autofix
·
7_cleanup

Appendix

A · Scoring formulas

priority = (search_volume × position_potential) × commercial_intent × content_strength_inverse × decay_signal_severity × 100

B · Tools & versions

C · Reproducibility & capability

Coverage at this tier: ~95-100% coverage — real GSC truth + DataForSEO SERP data; every signal available.

Missing a connector lowers coverage — see the setup guide: ongboit.com/claude-growth-setup-tool-api-mcp.

D · Modes

full = whole portfolio (5 per-article + 5 cross-article skills) · fast = top-20 by sitemap priority, cross-article skipped · article = single post (cross-article skipped).