/digital-marketing-pro:seo-audit skill

Run a comprehensive SEO audit across technical health, on-page, content quality, E-E-A-T, link profile, and local SEO — producing dated numbered outputs (crawl inventory through prioritised actions) plus a single-page PLAN.md with an impact-by-effort action plan and a four-gate quality scorecard.

by indranilbanerjee·MIT license·★ 834 Stars on the repo·GitHub ↗

Use now

Inside this skill

SKILL.md · the author's own words
# /digital-marketing-pro:seo-audit

## Purpose

Perform a comprehensive SEO audit that evaluates a website across all major ranking dimensions. Produces a prioritized action plan with est…

### May 2026 Core Update context (read before triaging volatility)

> **Time-boxed guidance — valid until ~2026-08.** This block is specific to the May 2026 Core Update window. After ~August 2026 it is stale…

Google rolled out a **broad core algorithm update starting 21 May 2026** with the usual ~2-week deployment window. If the audit is being ru…

- **Do not make reactive changes during the rollout.** Wait for the update to fully deploy (Google announces completion in the Search Statu…
- **Diagnose direction before scope.** A site-wide drop vs a single-section drop vs a single-template drop have very different root causes.…
- **Core updates re-weight existing signals, they don't introduce new ones.** The audit dimensions below remain authoritative; the right re…
- **Flag in the executive summary** whether ranking deltas pre-date the rollout (likely site-specific issues) or coincide with it (likely C…

Word-for-word excerpt, not a result. Read the full SKILL.md ↓

Files of /digital-marketing-pro:seo-audit

indranilbanerjee/main1 file shown
SKILL.md
Show the full text116 lines

/digital-marketing-pro:seo-audit

Purpose

Perform a comprehensive SEO audit that evaluates a website across all major ranking dimensions. Produces a prioritized action plan with estimated impact and effort for each recommendation.

May 2026 Core Update context (read before triaging volatility)

Time-boxed guidance — valid until ~2026-08. This block is specific to the May 2026 Core Update window. After ~August 2026 it is stale: re-check the Google Search Status Dashboard for the current/most-recent core update and its dates before applying any of the timing advice below.

Google rolled out a broad core algorithm update starting 21 May 2026 with the usual ~2-week deployment window. If the audit is being run inside that window (or in the 4 weeks after) and the brand is showing ranking volatility:

  • Do not make reactive changes during the rollout. Wait for the update to fully deploy (Google announces completion in the Search Status Dashboard) plus 7–14 days of post-deploy settling before drawing conclusions.
  • Diagnose direction before scope. A site-wide drop vs a single-section drop vs a single-template drop have very different root causes. Use Search Console to compare pre-rollout (21 days before May 21) vs in-rollout vs post-rollout impressions and clicks segmented by page-group.
  • Core updates re-weight existing signals, they don't introduce new ones. The audit dimensions below remain authoritative; the right response to a Core Update hit is usually to deepen E-E-A-T, improve unique value, fix thin/duplicated content, and reduce low-quality affiliate or AI-spam pages — not to chase rumoured signals.
  • Flag in the executive summary whether ranking deltas pre-date the rollout (likely site-specific issues) or coincide with it (likely Core Update reweighting). This determines whether quick wins are appropriate or whether the brand needs a multi-quarter quality program.

Input Required

The user must provide (or will be prompted for):

  • Website URL: The domain or specific pages to audit
  • Target keywords: Primary keywords the site should rank for (optional — can be researched)
  • Competitors: 2-3 competitor URLs for benchmarking (optional)
  • Audit scope: Full site or specific area (technical, content, local, links)
  • Known issues: Any existing problems the user is aware of

Process

  1. Load brand context: Read ~/.claude-marketing/brands/_active-brand.json for the active slug, then load ~/.claude-marketing/brands/{slug}/profile.json. Apply brand voice, compliance rules for target markets (skills/context-engine/compliance-rules.md), and industry context. Also check for guidelines at ~/.claude-marketing/brands/{slug}/guidelines/_manifest.json — if present, load restrictions and relevant category files. Check for custom templates at ~/.claude-marketing/brands/{slug}/templates/. Check for agency SOPs at ~/.claude-marketing/sops/. If no brand exists, ask: "Set up a brand first (/digital-marketing-pro:brand-setup)?" — or proceed with defaults.
  2. Technical audit: Crawlability, indexation, Core Web Vitals, mobile usability, structured data, HTTPS, XML sitemap, robots.txt, canonical tags, redirect chains
  3. On-page audit: Title tags, meta descriptions, heading hierarchy, keyword usage, image alt text, internal linking structure, URL structure
  4. Content audit: Thin content, duplicate content, content gaps, freshness, E-E-A-T signals (author pages, citations, credentials, first-hand experience)
  5. Local SEO (if applicable): Google Business Profile, NAP consistency, local schema, reviews, local link profile
  6. Link profile: Domain authority, backlink quality, toxic links, anchor text distribution, link velocity, competitor link gap. Score the own-domain profile with the analyzer (feeds 05-link-profile.md):
    python "${CLAUDE_PLUGIN_ROOT}/scripts/link-profile-analyzer.py" \
        --file "${CLAUDE_PLUGIN_DATA}/{brand}/seo/seo-audit/{date}/links-export.json" \
        --brand-domain {brand-domain}
    
    (--file is a JSON array of link objects [{"url","anchor_text","domain","da","follow"}], or pass --links '<json>' inline; --brand-domain excludes internal links.) For competitor link-gap prospecting, hand off to /digital-marketing-pro:backlink-gap.
  7. Score each dimension on a 1-10 scale
  8. Prioritize findings by impact (high/medium/low) and effort (quick win/medium/major project)
  9. Generate the audit report with actionable recommendations

Output

A structured SEO audit report containing:

  • Executive summary with overall health score
  • Technical SEO scorecard with specific issues and fixes
  • On-page optimization findings per page/template
  • Content quality assessment with gap analysis
  • E-E-A-T evaluation and improvement recommendations
  • Local SEO assessment (if applicable)
  • Link profile analysis with opportunities
  • Prioritized action plan sorted by impact-to-effort ratio

Numbered output convention

All audit outputs go to ${CLAUDE_PLUGIN_DATA}/{brand}/seo/seo-audit/{YYYY-MM-DD}/:

00-input.md                    target URL, audit scope, brand context, Core Update window flag
01-crawl-inventory.md          discovered URLs, status codes, redirect chains
02-technical-scorecard.md      Core Web Vitals, crawlability, schema validity (1-10 per dimension)
03-onpage-findings.md          per-template issues with affected URL list
04-content-quality.md          E-E-A-T, thin/duplicate, topical coverage
05-link-profile.md             own backlink health (hand off to backlink-gap for prospect work)
06-eeat-evaluation.md          author signals, expertise indicators, trust elements
07-local-seo.md                only if business profile.target_markets has local intent
08-quality-scorecard.md        the gates below — must pass for status: ready
09-prioritised-actions.md      impact × effort matrix, top 20 actions
PLAN.md                        single-page deliverable

Downstream skills (seo-implement, seo-plan, content-engine) consume PLAN.md and the relevant numbered file rather than re-querying.

Quality scorecard

Gate What it checks
crawl_coverage ≥ 90% of sitemap URLs successfully crawled (else input data is incomplete)
dimension_completeness Scores filled for all 6 mandatory dimensions (technical, on-page, content, E-E-A-T, link, local-if-applicable)
finding_actionability Every "high impact" finding has a named owner + effort estimate (else it's not actionable)
core_update_flag_set If running inside a Core Update window, 00-input.md flags it AND PLAN.md carries the "wait 7-14 days before reactive changes" callout

status: ready requires all four gates pass.

Chain handoffs

  • Upstream: brand profile + (optional) prior tech-seo-audit, aeo-audit outputs
  • Downstream:
    • /digital-marketing-pro:seo-implement — applies the top-N findings to CMS / dev backlog
    • /digital-marketing-pro:seo-plan — consumes via dispatcher pillar scoring
    • /digital-marketing-pro:backlink-gap — for the link-prospect side that 05-link-profile.md only covers from the own-domain angle
    • /digital-marketing-pro:seo-drift — next quarter, compare two audit snapshots

Tips & caveats

  • Run during a Core Update? Mark it loudly in 00-input.md and don't recommend reactive changes. The audit findings stay valid; the timing of action does not.
  • Don't audit at the URL level for sites > 10k pages. Sample template-typically (cluster by template, audit one representative URL per template, generalise).
  • E-E-A-T scoring is judgement, not measurement. Two senior SEOs will disagree by ~1 point per dimension on the same site. Calibrate against the brand's industry: a 7/10 author signal is excellent for SaaS but minimum-viable for a YMYL health publisher.
  • Local SEO dimension only applies if the brand profile has business_model: local or target_markets includes specific geographies with physical service. Otherwise skip.
  • The link-profile dimension here is own-domain health (broken links, redirect chains, anchor-text distribution on inbound links). For competitor link-gap analysis, hand off to /digital-marketing-pro:backlink-gap — don't try to do both in this audit.

Agents Used

  • seo-specialist — All audit dimensions, scoring, prioritization, and recommendations
1---
2name: seo-audit
3description: "Run a comprehensive SEO audit across technical health, on-page, content quality, E-E-A-T, link profile, and local SEO — producing dated numbered outputs (crawl inventory through prioritised actions) plus a single-page PLAN.md with an impact-by-effort action plan and a four-gate quality scorecard. Triggers on \"/digital-marketing-pro:seo-audit\", \"audit my site's SEO\", \"why did our rankings drop\", \"check our technical SEO health\", \"how strong is our E-E-A-T\". Reads the brand profile; PLAN.md feeds /digital-marketing-pro:seo-implement, /digital-marketing-pro:seo-plan, and /digital-marketing-pro:seo-drift, with link prospecting handed to /digital-marketing-pro:backlink-gap."
4argument-hint: "[URL]"
5---
6 
7# /digital-marketing-pro:seo-audit
8 
9## Purpose
10 
11Perform a comprehensive SEO audit that evaluates a website across all major ranking dimensions. Produces a prioritized action plan with estimated impact and effort for each recommendation.
12 
13### May 2026 Core Update context (read before triaging volatility)
14 
15> **Time-boxed guidance — valid until ~2026-08.** This block is specific to the May 2026 Core Update window. After ~August 2026 it is stale: re-check the [Google Search Status Dashboard](https://status.search.google.com/) for the current/most-recent core update and its dates before applying any of the timing advice below.
16 
17Google rolled out a **broad core algorithm update starting 21 May 2026** with the usual ~2-week deployment window. If the audit is being run inside that window (or in the 4 weeks after) and the brand is showing ranking volatility:
18 
19- **Do not make reactive changes during the rollout.** Wait for the update to fully deploy (Google announces completion in the Search Status Dashboard) plus 7–14 days of post-deploy settling before drawing conclusions.
20- **Diagnose direction before scope.** A site-wide drop vs a single-section drop vs a single-template drop have very different root causes. Use Search Console to compare pre-rollout (21 days before May 21) vs in-rollout vs post-rollout impressions and clicks segmented by page-group.
21- **Core updates re-weight existing signals, they don't introduce new ones.** The audit dimensions below remain authoritative; the right response to a Core Update hit is usually to deepen E-E-A-T, improve unique value, fix thin/duplicated content, and reduce low-quality affiliate or AI-spam pages — not to chase rumoured signals.
22- **Flag in the executive summary** whether ranking deltas pre-date the rollout (likely site-specific issues) or coincide with it (likely Core Update reweighting). This determines whether quick wins are appropriate or whether the brand needs a multi-quarter quality program.
23 
24## Input Required
25 
26The user must provide (or will be prompted for):
27 
28- **Website URL**: The domain or specific pages to audit
29- **Target keywords**: Primary keywords the site should rank for (optional — can be researched)
30- **Competitors**: 2-3 competitor URLs for benchmarking (optional)
31- **Audit scope**: Full site or specific area (technical, content, local, links)
32- **Known issues**: Any existing problems the user is aware of
33 
34## Process
35 
361. **Load brand context**: Read `~/.claude-marketing/brands/_active-brand.json` for the active slug, then load `~/.claude-marketing/brands/{slug}/profile.json`. Apply brand voice, compliance rules for target markets (`skills/context-engine/compliance-rules.md`), and industry context. **Also check for guidelines** at `~/.claude-marketing/brands/{slug}/guidelines/_manifest.json` — if present, load restrictions and relevant category files. Check for custom templates at `~/.claude-marketing/brands/{slug}/templates/`. Check for agency SOPs at `~/.claude-marketing/sops/`. If no brand exists, ask: "Set up a brand first (/digital-marketing-pro:brand-setup)?" — or proceed with defaults.
372. **Technical audit**: Crawlability, indexation, Core Web Vitals, mobile usability, structured data, HTTPS, XML sitemap, robots.txt, canonical tags, redirect chains
383. **On-page audit**: Title tags, meta descriptions, heading hierarchy, keyword usage, image alt text, internal linking structure, URL structure
394. **Content audit**: Thin content, duplicate content, content gaps, freshness, E-E-A-T signals (author pages, citations, credentials, first-hand experience)
405. **Local SEO** (if applicable): Google Business Profile, NAP consistency, local schema, reviews, local link profile
416. **Link profile**: Domain authority, backlink quality, toxic links, anchor text distribution, link velocity, competitor link gap. Score the own-domain profile with the analyzer (feeds `05-link-profile.md`):
42 ```bash
43 python "${CLAUDE_PLUGIN_ROOT}/scripts/link-profile-analyzer.py" \
44 --file "${CLAUDE_PLUGIN_DATA}/{brand}/seo/seo-audit/{date}/links-export.json" \
45 --brand-domain {brand-domain}
46 ```
47 (`--file` is a JSON array of link objects `[{"url","anchor_text","domain","da","follow"}]`, or pass `--links '<json>'` inline; `--brand-domain` excludes internal links.) For competitor link-gap prospecting, hand off to `/digital-marketing-pro:backlink-gap`.
487. Score each dimension on a 1-10 scale
498. Prioritize findings by impact (high/medium/low) and effort (quick win/medium/major project)
509. Generate the audit report with actionable recommendations
51 
52## Output
53 
54A structured SEO audit report containing:
55 
56- Executive summary with overall health score
57- Technical SEO scorecard with specific issues and fixes
58- On-page optimization findings per page/template
59- Content quality assessment with gap analysis
60- E-E-A-T evaluation and improvement recommendations
61- Local SEO assessment (if applicable)
62- Link profile analysis with opportunities
63- Prioritized action plan sorted by impact-to-effort ratio
64 
65## Numbered output convention
66 
67All audit outputs go to `${CLAUDE_PLUGIN_DATA}/{brand}/seo/seo-audit/{YYYY-MM-DD}/`:
68 
69```
7000-input.md target URL, audit scope, brand context, Core Update window flag
7101-crawl-inventory.md discovered URLs, status codes, redirect chains
7202-technical-scorecard.md Core Web Vitals, crawlability, schema validity (1-10 per dimension)
7303-onpage-findings.md per-template issues with affected URL list
7404-content-quality.md E-E-A-T, thin/duplicate, topical coverage
7505-link-profile.md own backlink health (hand off to backlink-gap for prospect work)
7606-eeat-evaluation.md author signals, expertise indicators, trust elements
7707-local-seo.md only if business profile.target_markets has local intent
7808-quality-scorecard.md the gates below — must pass for status: ready
7909-prioritised-actions.md impact × effort matrix, top 20 actions
80PLAN.md single-page deliverable
81```
82 
83Downstream skills (`seo-implement`, `seo-plan`, `content-engine`) consume `PLAN.md` and the relevant numbered file rather than re-querying.
84 
85## Quality scorecard
86 
87| Gate | What it checks |
88|---|---|
89| **crawl_coverage** | ≥ 90% of sitemap URLs successfully crawled (else input data is incomplete) |
90| **dimension_completeness** | Scores filled for all 6 mandatory dimensions (technical, on-page, content, E-E-A-T, link, local-if-applicable) |
91| **finding_actionability** | Every "high impact" finding has a named owner + effort estimate (else it's not actionable) |
92| **core_update_flag_set** | If running inside a Core Update window, `00-input.md` flags it AND `PLAN.md` carries the "wait 7-14 days before reactive changes" callout |
93 
94`status: ready` requires all four gates pass.
95 
96## Chain handoffs
97 
98- **Upstream:** brand profile + (optional) prior `tech-seo-audit`, `aeo-audit` outputs
99- **Downstream:**
100 - `/digital-marketing-pro:seo-implement` — applies the top-N findings to CMS / dev backlog
101 - `/digital-marketing-pro:seo-plan` — consumes via dispatcher pillar scoring
102 - `/digital-marketing-pro:backlink-gap` — for the link-prospect side that `05-link-profile.md` only covers from the own-domain angle
103 - `/digital-marketing-pro:seo-drift` — next quarter, compare two audit snapshots
104 
105## Tips & caveats
106 
107- **Run during a Core Update?** Mark it loudly in `00-input.md` and don't recommend reactive changes. The audit findings stay valid; the timing of action does not.
108- **Don't audit at the URL level for sites > 10k pages.** Sample template-typically (cluster by template, audit one representative URL per template, generalise).
109- **E-E-A-T scoring is judgement, not measurement.** Two senior SEOs will disagree by ~1 point per dimension on the same site. Calibrate against the brand's industry: a 7/10 author signal is excellent for SaaS but minimum-viable for a YMYL health publisher.
110- **Local SEO dimension** only applies if the brand profile has `business_model: local` or `target_markets` includes specific geographies with physical service. Otherwise skip.
111- **The link-profile dimension here is own-domain health** (broken links, redirect chains, anchor-text distribution on inbound links). For competitor link-gap analysis, hand off to `/digital-marketing-pro:backlink-gap` — don't try to do both in this audit.
112 
113## Agents Used
114 
115- **seo-specialist** — All audit dimensions, scoring, prioritization, and recommendations
116 

Discussion

Alternatives

Agentic Browsing ReadinessAudit and fix agent readiness: the Lighthouse Agentic Browsing fraction, accessibility tree for agents, robots.txt and Content-Signal for AI agents, WAF treatment of agent traffic, llms.txt, Markdown delivery, ai-catalog.json, /.well-known discovery files, and WebMCP tools. Exclude AI citability and brand signals (seo-geo) and commerce protocol depth (seo-ecommerce).Marketing · MITBacklink Profile AnalysisBacklink profile analysis: referring domains, anchor text distribution, toxic link detection, competitor gap analysis. Works with free APIs (Moz, Bing Webmaster, Common Crawl) and DataForSEO extension. Use when user says backlinks, link profile, referring domains, anchor text, toxic links, link gap, link building, disavow, or backlink audit.Marketing · MIT/setup-cmsConnect a CMS to notfair SEO tools. Guides users through configuring WordPress, Strapi, Contentful, or Ghost — tests the connection, and writes credentials to .env.local. Once set up, seo-analysis automatically cross- references CMS content against Google Search Console data. Use whenever the user says "connect my CMS", "set up WordPress", "configure Strapi", "add Contentful", "connect Ghost", or "CMS setup". Also trigger if the user asks why no CMS data appears in a seo-analysis report. · MITBacklink checkBacklink profile for any domain — referring domains, authority, anchors, new/lost links, and a side-by-side vs a competitor. Use when asked "check my backlinks", "backlink profile of X", "who links to them", or "link gap vs competitor".Marketing · MIT