Agent skill

SEO Content Audit

by seranking in seranking/seo-skills

E-E-A-T + CITE quality audit for an EXISTING piece of content.

MITAuto-check passedMarketing & SEO

Install SEO Content Audit

skills CLI
$ npx skills add seranking/seo-skills --skill seo-content-audit -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install seranking/seo-skills seo-content-audit --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/seranking/seo-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/seo-content-audit .claude/skills/seo-content-audit && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
seo-content-audit
GitHub stars
160
Token cost
~3k tokens
SKILL.md length
1,115 words
Files
4 (incl. references)
Skills in repo
32
Repo updated
First seen
Licence
MIT

At a glance

E-E-A-T + CITE quality audit for an EXISTING piece of content.

  • Works in 3 steps: Fetch content WebFetch (always) +… → AIO context DATA_getAiOverview and… → AIO prompt sampling…
  • The user asks content quality audit
  • SKILL.md covers Prerequisites, Process, Output format and Tips
  • Calls python3

What it does

SEO Content Audit is an agent skill from seranking/seo-skills. 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"…

Its SKILL.md is about 3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including reference files (for example `references/cite.md`, `references/core-eeat.md` and `templates/verdict.md`).

It sits in Marketing & SEO, covering On-page SEO, Citation management and Content marketing. It works with Firecrawl and Model Context Protocol. The repository describes itself as: Claude SEO Skills — production Claude Agent Skills for the SE Ranking MCP server. Content briefs, AI Search share of voice, audits, backlink gaps, keyword clusters, schema… The licence is MIT.

When your agent uses it

  • The user asks content quality audit
  • Is this content good
  • Review this article
  • Citation readiness

Example prompts

  • “content quality audit”
  • “E-E-A-T check”
  • “is this content good”
  • “/seo-content-audit”

Requirements

  • Python 3

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. Fetch content WebFetch (always) + mcpfirecrawl-mcpfirecrawl_scrape (when available)
  2. AIO context DATA_getAiOverview and DATA_getAiOverviewLeaderboard
  3. AIO prompt sampling DATA_getAiPromptsByTarget

What it can do on your machine

Read from SKILL.md and the folder at commit fd6d140. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • python3

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

SEO Content Audit loads about 3k tokens when it runs, and up to ~7.3k if it reads all its reference files. Until then it costs about 150 tokens; SKILL.md has 1,115 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~150
When it runs · the whole SKILL.md, loaded when a task matches
~3k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~7.3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from seranking/seo-skills at commit fd6d140, republished under its MIT licence (© seranking). 1,115 words, ~2,951 tokens.

Download SKILL.mdSave it as .claude/skills/seo-content-audit/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.
name
seo-content-audit
description
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".

Example output: examples/seo-content-audit-stripe-rate-limiters-20260514/VERDICT.md

Content Quality Audit

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.

Prerequisites

  • SE Ranking MCP server connected.
  • Claude's WebFetch tool available.
  • User provides: (a) the URL of an existing piece of content (or pasted content + intended URL), (b) target keyword the content is meant to rank for. Optional: target country (default us).

Process

  1. Fetch content WebFetch (always) + mcp__firecrawl-mcp__firecrawl_scrape (when available)

    • Validate target & preflight. See skills/seo-firecrawl/references/preflight.md for the canonical 3-stage preflight (credit balance, Firecrawl availability, Google APIs). Skill-specific notes:
      • Estimated SE Ranking cost for this skill: ~10–15 credits typical (AIO context + AIO prompt sampling for the target keyword + audited URL).
      • Firecrawl: optional with WebFetch fallback, 1 Firecrawl credit per URL audited (default cap 50 URLs, hard cap 200). Surface the projected Firecrawl credit count before continuing. Pass --no-firecrawl to force WebFetch-only inspection (lower-confidence veto checks; see step 4 caveat).
      • Google APIs: tier 2 (GA4 available) unlocks step 3b (GA4 organic traffic on the audited URL) after the AIO context step. See skills/seo-google/references/cross-skill-integration.md § "seo-content-audit" for the full recipe.
    • WebFetch first (free, instant): pull the markdown for word count, H-tag hierarchy, source citations (links to authorities, numbered references), images, tables, code blocks, comment thread.
    • Page-type detection. From the URL pattern, H1 phrasing, and JSON-LD @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).
    • Firecrawl second — recovers what WebFetch's markdown loses:
      • From metadata: canonical URL, robots, lang, og:title.
      • From the returned 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.
      • DOM-level byline detection: locate the structural byline (<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).
    • If Firecrawl unavailable: WebFetch portion runs unchanged. Mark schema-type detection and structural byline detection as (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.
  2. AIO context DATA_getAiOverview and DATA_getAiOverviewLeaderboard

    • For the target keyword: is there an AIO?
    • Who is cited in the AIO?
    • Is the candidate URL cited?
    • What patterns characterise the cited sources (publication tier, freshness, structure)?
  3. AIO prompt sampling DATA_getAiPromptsByTarget

    • Sample LLM prompts where the target URL's domain appears as a source.
    • Cross-reference with the candidate URL — does it show up in any sampled prompts?

3b. GA4 organic traffic on the audited URL (only if google-api.json is present, tier ≥ 2)

  • Replaces the implicit traffic estimation with actual measured organic sessions for the audited URL.
  • Pull the top organic landing pages (last 28 days): python3 scripts/ga4_report.py --report top-pages --days 28 --json
  • Filter the result client-side for the audited URL's path. Surface in VERDICT.md "## Snapshot" alongside the existing AIO citation cross-check:
    • GA4 organic last 28d: {sessions} sessions / {users} users / avg engagement {n}s
    • If the URL doesn't appear in the top-100 organic landing pages: "GA4: not in top-100 organic landing pages last 28d — low or zero traffic."
  • This is a signal, not a veto. Low GA4 traffic on a YMYL page with high E-E-A-T is informative ("we're not earning the visibility our content quality should support") but doesn't change the publish decision.
  • See skills/seo-google/references/cross-skill-integration.md § "seo-content-audit" for the full recipe.
  1. Score E-E-A-T using references/core-eeat.md

    • 60-item rubric across 4 dimensions (15 items each).
    • Per-item: yes/no/partial. Compute dimension scores (0–100% each).
    • Score the 8-item AI-content markers subsection (see references/core-eeat.md → "AI-content markers"). Mark each fired/not-fired.
    • Apply 4 veto checks. Any veto = no-publish.
      1. Anonymous author on YMYL topic. (High-confidence with Firecrawl-recovered author schema + DOM byline; medium-confidence with prose-only inspection.)
      2. Factual claims with no sources cited.
      3. Undisclosed affiliate / sponsored relationships.
      4. AI-generated YMYL content with no human-review markers (≥4 AI-content markers fired AND YMYL topic AND no editor byline / "reviewed by" credit / "last reviewed" or "fact-checked on" date). The "editor byline / reviewed by" check uses Firecrawl-recovered DOM byline + Article-schema author when available; falls back to prose-level pattern match if Firecrawl is absent (lower confidence — note in VERDICT.md).
  2. Score CITE using references/cite.md

    • 30-item CITE rubric (Clear answer in 1st 200 words, Include primary stats, Timestamp freshness, Entity authority).
    • Per-item: yes/no/partial. Compute dimension scores.
    • Apply 3 veto checks (no answer in first 300 words / no datestamp on time-sensitive content / no entity disambiguation for proper-noun queries).
  3. Cross-check against AIO winners

    • For the patterns characteristic of cited sources (from step 2), evaluate the candidate against each: does it have what the cited sources have?
    • Surface specific gaps.
  4. Synthesise verdict using templates/verdict.md

    • Publish: E-E-A-T ≥ 75%, CITE ≥ 70%, no vetoes triggered.
    • Publish with fixes: E-E-A-T 60–74% OR CITE 55–69%, no vetoes. Top 5 fixes specified.
    • No publish: any veto triggered, OR E-E-A-T < 60%, OR CITE < 55%. Substantial rewrite needed.
Show full SKILL.md (221 more words)Show less

Output format

Create 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):

markdown
# 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)

Tips

  • Respect rate limit. AIO + AIO-prompts queries are ~5–10 calls; plenty of headroom.
  • Call 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).
  • The thresholds (75% E-E-A-T, 70% CITE) are starting points. Tune per domain — a YMYL site (medical, financial) should require higher (85%/80%); a general-interest blog can run lower (65%/60%).
  • The veto checks are not negotiable. A piece with anonymous authorship on a YMYL topic doesn't pass regardless of score.
  • For pieces that score "publish with fixes," the top-5 list is the deliverable. Hand it to the writer; re-audit after fixes.
  • Pair with seo-content-brief for the new-article counterpart: this skill audits existing content, content-brief produces new content.
  • Pair with seo-sxo if the page has technical/page-type issues — that's a different diagnosis.
  • The 60-item E-E-A-T rubric and 30-item CITE rubric are in references/. They are opinionated — adjust for your domain's editorial standards.

© seranking, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 3 other files (references) in skills/seo-content-audit of seranking/seo-skills.

  • SKILL.md
  • references/cite.md
  • references/core-eeat.md
  • templates/verdict.md

Open the folder on GitHubat commit fd6d140

Compare with similar skills

SEO Content Audit next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

SEO Content Audit compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
SEO Content Audit this skillseranking/seo-skills160—~3kAutomated safety check: PassMIT
AI Citability Scorerzubair-trabzada/geo-seo-claude11k2 repos~3.7kAutomated safety check: NotesMIT
SEO ContentAgriciDaniel/codex-seo7975 repos~2.3kAutomated safety check: PassMIT
Citation Source Gap Finderirinabuht12-oss/marketing-skills4k—~601Automated safety check: PassNone
SEO Content Gap Auditrampstackco/claude-skills941—~2.3kAutomated safety check: PassMIT
Localseodata Toolgarrettjsmith/localseoskills120—~4.1kAutomated safety check: PassMIT

Similar skills

  • AI Citability Scorer

    zubair-trabzada/geo-seo-claude

    Scores how likely AI assistants are to quote passages from a web page and suggests rewrites that make those passages easier to extract.

    11k GitHub starsUsed in 2 repos~3.7k tokens
    Marketing & SEOAuto-check: notes
  • SEO Content

    AgriciDaniel/codex-seo

    Content quality and E-E-A-T analysis with AI citation readiness assessment.

    797 GitHub starsUsed in 5 repos~2.3k tokens
    Marketing & SEOAuto-check passed
  • Citation Source Gap Finder

    irinabuht12-oss/marketing-skills

    Find the exact pages AI assistants cite when answering questions in your category, and identify which ones you can get into.

    4k GitHub stars~601 tokensUpdated 15 days ago
    Marketing & SEOAuto-check passed
  • SEO Content Gap Audit

    rampstackco/claude-skills

    Audit content gaps and decay using Ahrefs MCP data: missing topics, thin coverage, outdated content, and decaying pages.

    941 GitHub stars~2.3k tokensUpdated 2 days ago
    Marketing & SEOAuto-check passed
  • Localseodata Tool

    garrettjsmith/localseoskills

    When the user wants to pull local SEO data — SERP results, local pack rankings, business profile data, reviews, citations, audits, geogrid scans, keyword research, AI visibility, competitor…

    120 GitHub stars~4.1k tokensUpdated 1 mo ago
    Marketing & SEOAuto-check passed
  • Editorial QA

    rampstackco/claude-skills

    Pre-publish QA framework for content. An agent skill from rampstackco/claude-skills.

    941 GitHub stars~5.6k tokensUpdated 2 days ago
    Marketing & SEOAuto-check passed

More from seranking/seo-skills

All 32 skills in this repo
  • SEO Google

    seranking/seo-skills

    Direct access to Google's own SEO data via Search Console (Search Analytics, URL Inspection, Sitemaps), PageSpeed Insights v5, CrUX field data with 25-week history, Indexing API v3, GA4 organic…

    160 GitHub stars~4.8k tokensUpdated 3 mo ago
    Auto-check passed
  • SEO API

    seranking/seo-skills

    SE Ranking API integration architect. An agent skill from seranking/seo-skills.

    160 GitHub stars~4.1k tokensUpdated 3 mo ago
    Auto-check passed
  • SEO Content Brief

    seranking/seo-skills

    Generate a writer-ready SEO content brief from a target domain and topic.

    160 GitHub stars~2.5k tokensUpdated 3 mo ago
    Auto-check passed
  • SEO Drift

    seranking/seo-skills

    Capture an SEO baseline snapshot for a domain or URL, then on later runs compare the current state and surface regressions.

    160 GitHub stars~3.4k tokensUpdated 3 mo ago
    Auto-check passed
  • SEO Firecrawl

    seranking/seo-skills

    Ad-hoc web scraping, site mapping, and full-site crawling via Firecrawl MCP.

    160 GitHub stars~2.3k tokensUpdated 3 mo ago
    Auto-check passed
  • SEO Hreflang

    seranking/seo-skills

    Hreflang and international SEO audit for multi-language and multi-region sites.

    160 GitHub stars~3.6k tokensUpdated 3 mo ago
    Auto-check passed

Categories

Questions about SEO Content Audit

What does SEO Content Audit do?

E-E-A-T + CITE quality audit for an EXISTING piece of content. SEO Content Audit is an agent skill from seranking/seo-skills. E-E-A-T + CITE quality audit for an EXISTING piece of content.

When should I use SEO Content Audit?

SEO Content Audit fits situations like: the user asks content quality audit; is this content good; review this article; citation readiness.

How do I install SEO Content Audit in Claude Code?

Run `npx skills add seranking/seo-skills --skill seo-content-audit -a claude-code`. Or copy the skill folder (skills/seo-content-audit in seranking/seo-skills) into .claude/skills/seo-content-audit in your project. Claude Code loads it when a task matches its description.

How do I install SEO Content Audit in Codex?

Run `npx skills add seranking/seo-skills --skill seo-content-audit -a codex`. Or copy the skill folder (skills/seo-content-audit in seranking/seo-skills) into .agents/skills/seo-content-audit in your project. Codex loads it when a task matches its description.

Can I use SEO Content Audit in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add seranking/seo-skills --skill seo-content-audit -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/seo-content-audit, .gemini/skills/seo-content-audit, .github/skills/seo-content-audit and .opencode/skills/seo-content-audit in your project.

What does SEO Content Audit need to run?

Going by SKILL.md and its folder, SEO Content Audit needs the command-line tools its instructions call (python3). Our summary lists: Python 3.

Does SEO Content Audit access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is SEO Content Audit safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does SEO Content Audit use?

SEO Content Audit is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does SEO Content Audit use?

About 3k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 4.4k tokens, read only when the agent opens those files.

What are the alternatives to SEO Content Audit?

Skills that share tags, products or a category with SEO Content Audit: AI Citability Scorer (zubair-trabzada/geo-seo-claude, 11k stars), SEO Content (AgriciDaniel/codex-seo, 797 stars), Citation Source Gap Finder (irinabuht12-oss/marketing-skills, 4k stars) and SEO Content Gap Audit (rampstackco/claude-skills, 941 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains SEO Content Audit?

seranking (a GitHub organization) maintains it in seranking/seo-skills, which has 160 GitHub stars. The repository holds 32 skills in this directory. The repository was last updated on June 25, 2026.

Source: seranking/seo-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.