Use this when
audit blog, site audit, blog health, audit all posts, check all blogs.
Process
Discover blog files across common content paths (content/, posts/, blog/, src/content/, etc.), excluding vendor, build, and config paths. If nothing is found in standard locations, ask for the right directory instead of scanning the whole project.
Score every post on the same 5-category, 100-point rubric used for a single review (Content 30 / SEO 25 / E-E-A-T 15 / Technical 15 / AI Citation 15), layering these site-wide checks on top:
- Schema: validate Article/BlogPosting + Person + Organization + BreadcrumbList completeness across all posts; flag missing or malformed schema.
- Link health: build a directed internal-link graph; flag orphan pages (zero inbound links) with 2-3 relevant existing posts that should link to them, and dead-end pages (zero outbound links).
- Cannibalization: extract each post's primary keyword/topic from title, H1, meta description, and first paragraph; cluster posts competing for the same intent; recommend Merge (combine two weak posts), Redirect (301 the weaker to the stronger, preserving backlinks), or Differentiate (shift one to a distinct intent).
- Freshness: read
lastUpdated/dateModified/date, and categorize refresh priority as High (volatile topic, stale sources, or confirmed performance decay), Medium (evergreen with aging examples or links), or Low (recently validated), with an effort estimate (light: 1-2h, moderate: 3-4h, heavy: 5h+).
Produce a report with: a summary dashboard (total posts, average score, counts by score band, orphan/dead-end/cannibalization/stale counts); a per-post score table; a prioritized action queue sorted lowest-score-first with the top issue and recommended action per post; a cannibalization table (keyword, competing posts, recommendation); an orphan-page table with recommended link sources; a stale-content table (post, last updated, days stale, priority, estimated effort).
Save the report and suggest running the single-post quality-score-existing playbook on the lowest scorer first.