E-E-A-T + CITE quality audit for an EXISTING piece of content. Scores Experience, Expertise, Authoritativeness, Trustworthiness, and citation-readiness for AI search; surfaces veto items that block publication; produces a publish / publish-with-fixes / no-publish verdict. Distinct from `seo-content-brief` (produces a NEW article from a topic) and from `seo-page` (URL-level keyword/traffic intelligence). Use when the user asks "content quality audit", "E-E-A-T check", "is this content good", "review this article", "content audit", "citation readiness", or "AI search readiness".
npx skills add https://github.com/seranking/seo-skills --skill seo-content-audit
> Example output: examples/seo-content-audit-stripe-rate-limiters-20260514/VERDICT.md
Score an existing piece of content against modern E-E-A-T (Experience, Expertise, Authoritativeness, Trustworthiness) and CITE (Clear answer, Include primary stats, Timestamp, Entity authority) rubrics. Surface veto items that block publication regardless of overall score. Produce a clear publish / publish-with-fixes / no-publish verdict with the top 5 fixes.
WebFetch tool available.us).WebFetch (always) + mcp__firecrawl-mcp__firecrawl_scrape (when available)skills/seo-firecrawl/references/preflight.md for the canonical 3-stage preflight (credit balance, Firecrawl availability, Google APIs). Skill-specific notes:--no-firecrawl to force WebFetch-only inspection (lower-confidence veto checks; see step 4 caveat).skills/seo-google/references/cross-skill-integration.md § "seo-content-audit" for the full recipe.@type, classify the page as one of: ultimate guide / pillar, how-to, listicle / best-of, comparison (X vs Y), explainer, review (single product), landing page (commercial). Look up the corresponding word-count floor from references/core-eeat.md → "Word-count floors by page type". Surface the detected type, the applied floor, and the actual word count in evidence/01-content-snapshot.md. If the actual word count is materially below the floor, flag it for the depth E-E-A-T items (auto ✗ unless the auditor justifies the exception).metadata: canonical URL, robots, lang, og:title.html: every <script type="application/ld+json"> block. Parse for Article / BlogPosting schema and extract author (name, @type: Person, optional url + sameAs), datePublished / dateModified (ISO 8601), publisher, mainEntityOfPage. Detect Person schema standalone if present.<a rel="author">, <meta name="author">, <span class="byline">, [itemprop="author"]). Distinguish a real byline element from prose mentions ("Written by Jane in collaboration..." in body text is not a byline; <a rel="author">Jane Doe</a> is).(skipped — Firecrawl required) in evidence/01-content-snapshot.md. Step 4's veto checks #1 and #4 fall back to prose-level inspection (less reliable) — surface that caveat in VERDICT.md.DATA_getAiOverview and DATA_getAiOverviewLeaderboardDATA_getAiPromptsByTarget3b. GA4 organic traffic on the audited URL *(only if google-api.json is present, tier ≥ 2)*
python3 scripts/ga4_report.py --report top-pages --days 28 --json
VERDICT.md "## Snapshot" alongside the existing AIO citation cross-check:{sessions} sessions / {users} users / avg engagement {n}sskills/seo-google/references/cross-skill-integration.md § "seo-content-audit" for the full recipe.references/core-eeat.mdauthor when available; falls back to prose-level pattern match if Firecrawl is absent (lower confidence — note in VERDICT.md).references/cite.mdtemplates/verdict.mdCreate a folder seo-content-audit-{target-slug}-{YYYYMMDD}/ with:
seo-content-audit-{target-slug}-{YYYYMMDD}/
├── VERDICT.md (publish / publish-with-fixes / no-publish — primary deliverable; inlines content snapshot + AIO context)
├── 03-eeat-scoring.md (60-item rubric scored — load-bearing reference an editor consults item-by-item)
├── 04-cite-scoring.md (30-item rubric scored — load-bearing reference)
├── 05-aio-winner-comparison.md (gap vs cited sources — must remain top-level; live AIO competitive evidence per EVAL_RESULT_v2.md §9)
└── evidence/
├── 01-content-snapshot.md (HTML extracts + page metadata — raw step output)
└── 02-aio-context.md (AIO presence, citations, patterns — raw step output)
Step files 01 + 02 are inlined as a "Snapshot" / "AIO context" section in VERDICT.md; the copies in evidence/ preserve raw step output. 03-eeat-scoring.md, 04-cite-scoring.md, and 05-aio-winner-comparison.md stay at top level — editors consult the rubric scoring detail directly, and the AIO winner comparison is the live competitive evidence the rubric verdict rests on.
VERDICT.md follows this shape (also see templates/verdict.md):
# Content Audit: {URL or title}
> Audited {YYYY-MM-DD} · Target keyword: "{keyword}" · Country: {country}
## Verdict: {PUBLISH | PUBLISH WITH FIXES | NO PUBLISH}
{One sentence summary of why}
## Scores
| Dimension | Score | Threshold | Status |
|---|---|---|---|
| Experience | {n}% | 75% | {✓/✗} |
| Expertise | {n}% | 75% | {✓/✗} |
| Authoritativeness | {n}% | 75% | {✓/✗} |
| Trustworthiness | {n}% | 75% | {✓/✗} |
| **E-E-A-T composite** | {n}% | 75% | {✓/✗} |
| Clear answer | {n}% | 70% | {✓/✗} |
| Include stats | {n}% | 70% | {✓/✗} |
| Timestamp | {n}% | 70% | {✓/✗} |
| Entity authority | {n}% | 70% | {✓/✗} |
| **CITE composite** | {n}% | 70% | {✓/✗} |
## Veto checks
- Anonymous author on YMYL: {triggered / not triggered}
- Unsourced factual claims: {triggered / not triggered}
- Undisclosed affiliate / sponsored: {triggered / not triggered}
- AI-generated YMYL with no human review: {triggered / not triggered} ({n}/8 AI-content markers fired)
- ...
## AI Search readiness
- AIO present for "{keyword}": {yes/no}
- Top citation patterns: {list}
- Candidate URL cited in any sampled AIO: {yes/no}
- Gap vs cited sources: {bulleted gaps}
## Snapshot (measured)
- GA4 organic last 28d: {sessions} sessions / {users} users / avg engagement {n}s *(or `not in top-100` / `not configured (Tier 2 required)`)*
## Top 5 fixes
1. {Specific fix linked to a low-scored item or veto}
2. ...
5. ...
## Detailed scoring
See:
- 03-eeat-scoring.md (item-by-item E-E-A-T)
- 04-cite-scoring.md (item-by-item CITE)
- 05-aio-winner-comparison.md (gap analysis)
DATA_getCreditBalance before running. ~10–15 SE Ranking credits typical, plus 1 Firecrawl credit per URL audited when Firecrawl is installed (default cap 50 URLs).seo-content-brief for the new-article counterpart: this skill audits existing content, content-brief produces new content.seo-sxo if the page has technical/page-type issues — that's a different diagnosis.references/. They are opinionated — adjust for your domain's editorial standards.A set of resources to help me write all kinds of internal communications, using the formats that my company likes to use. Claude should use this skill whenever asked to write some sort of internal communications (status reports, leadership updates, 3P updates, company newsletters, FAQs, incident reports, project updates, etc.).
Extracts and analyzes competitors' ads from ad libraries (Facebook, LinkedIn, etc.) to understand what messaging, problems, and creative approaches are working. Helps inspire and improve your own ad campaigns.
Identifies high-quality leads for your product or service by analyzing your business, searching for target companies, and providing actionable contact strategies. Perfect for sales, business development, and marketing professionals.
Analyzes your recent Claude Code chat history to identify coding patterns, development gaps, and areas for improvement, curates relevant learning resources from HackerNews, and automatically sends a personalized growth report to your Slack DMs.
Complete App Store Optimization (ASO) toolkit for researching, optimizing, and tracking mobile app performance on Apple App Store and Google Play Store
NGS analysis toolkit. BAM to bigWig conversion, QC (correlation, PCA, fingerprints), heatmaps/profiles (TSS, peaks), for ChIP-seq, RNA-seq, ATAC-seq visualization.
Materials science toolkit. Crystal structures (CIF, POSCAR), phase diagrams, band structure, DOS, Materials Project integration, format conversion, for computational materials science.
Transforms vague UI ideas into polished, Stitch-optimized prompts. Enhances specificity, adds UI/UX keywords, injects design system context, and structures output for better generation results.
Take seranking/seo-content-audit from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.