/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 ↗
npx degit indranilbanerjee/digital-marketing-pro/skills/seo-audit#main ~/.claude/skills/seo-audit-5Checked ·commit main
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
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
- Load brand context: Read
~/.claude-marketing/brands/_active-brand.jsonfor 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. - Technical audit: Crawlability, indexation, Core Web Vitals, mobile usability, structured data, HTTPS, XML sitemap, robots.txt, canonical tags, redirect chains
- On-page audit: Title tags, meta descriptions, heading hierarchy, keyword usage, image alt text, internal linking structure, URL structure
- Content audit: Thin content, duplicate content, content gaps, freshness, E-E-A-T signals (author pages, citations, credentials, first-hand experience)
- Local SEO (if applicable): Google Business Profile, NAP consistency, local schema, reviews, local link profile
- 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}--fileis a JSON array of link objects[{"url","anchor_text","domain","da","follow"}], or pass--links '<json>'inline;--brand-domainexcludes internal links.) For competitor link-gap prospecting, hand off to/digital-marketing-pro:backlink-gap. - Score each dimension on a 1-10 scale
- Prioritize findings by impact (high/medium/low) and effort (quick win/medium/major project)
- 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-auditoutputs - 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 that05-link-profile.mdonly 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.mdand 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: localortarget_marketsincludes 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 | |
| 2 | name seo-audit |
| 3 | description "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." |
| 4 | argument-hint "[URL]" |
| 5 | |
| 6 | |
| 7 | # /digital-marketing-pro:seo-audit |
| 8 | |
| 9 | ## Purpose |
| 10 | |
| 11 | 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. |
| 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] for the current/most-recent core update and its dates before applying any of the timing advice below. |
| 16 | |
| 17 | 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: |
| 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 | |
| 26 | The 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 | |
| 36 | **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. |
| 37 | **Technical audit**: Crawlability, indexation, Core Web Vitals, mobile usability, structured data, HTTPS, XML sitemap, robots.txt, canonical tags, redirect chains |
| 38 | **On-page audit**: Title tags, meta descriptions, heading hierarchy, keyword usage, image alt text, internal linking structure, URL structure |
| 39 | **Content audit**: Thin content, duplicate content, content gaps, freshness, E-E-A-T signals (author pages, citations, credentials, first-hand experience) |
| 40 | **Local SEO** (if applicable): Google Business Profile, NAP consistency, local schema, reviews, local link profile |
| 41 | **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 | |
| 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`. |
| 48 | Score each dimension on a 1-10 scale |
| 49 | Prioritize findings by impact (high/medium/low) and effort (quick win/medium/major project) |
| 50 | Generate the audit report with actionable recommendations |
| 51 | |
| 52 | ## Output |
| 53 | |
| 54 | A 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 | |
| 67 | All audit outputs go to `${CLAUDE_PLUGIN_DATA}/{brand}/seo/seo-audit/{YYYY-MM-DD}/`: |
| 68 | |
| 69 | |
| 70 | 00-input.md target URL, audit scope, brand context, Core Update window flag |
| 71 | 01-crawl-inventory.md discovered URLs, status codes, redirect chains |
| 72 | 02-technical-scorecard.md Core Web Vitals, crawlability, schema validity (1-10 per dimension) |
| 73 | 03-onpage-findings.md per-template issues with affected URL list |
| 74 | 04-content-quality.md E-E-A-T, thin/duplicate, topical coverage |
| 75 | 05-link-profile.md own backlink health (hand off to backlink-gap for prospect work) |
| 76 | 06-eeat-evaluation.md author signals, expertise indicators, trust elements |
| 77 | 07-local-seo.md only if business profile.target_markets has local intent |
| 78 | 08-quality-scorecard.md the gates below — must pass for status: ready |
| 79 | 09-prioritised-actions.md impact × effort matrix, top 20 actions |
| 80 | PLAN.md single-page deliverable |
| 81 | |
| 82 | |
| 83 | Downstream 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
Browse more free Claude skills or everything in Marketing.