skills/seo-audit/SKILL.md
Run comprehensive SEO audit. Use when: checking technical health, on-page, content quality, E-E-A-T, or link profile.
npx skillsauth add indranilbanerjee/digital-marketing-pro seo-auditInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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.
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:
The user must provide (or will be prompted for):
~/.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.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.A structured SEO audit report containing:
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.
| 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.
tech-seo-audit, aeo-audit outputs/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 snapshots00-input.md and don't recommend reactive changes. The audit findings stay valid; the timing of action does not.business_model: local or target_markets includes specific geographies with physical service. Otherwise skip./digital-marketing-pro:backlink-gap — don't try to do both in this audit.development
Build a content cluster plan from seed keywords — pillar+spokes architecture with internal-link map, intent grouping, and quality scorecard. Use when: planning topical authority, designing a content hub, deduping cannibalising pages, or staging a programmatic content rollout.
testing
Validate a brand profile end-to-end — required fields, voice/audience completeness, connector reachability, credentials health, and compliance prerequisites — without exposing credential values. Run after any credential change or brand-profile edit.
testing
Orchestrate the full multi-channel launch of an approved campaign plan — pre-launch checklist, asset readiness gate, channel-by-channel activation, CRM campaign record creation, kickoff comms, day-1 monitor setup. Broader than /launch-ad-campaign (which is paid-ads only).
testing
Audit a brand's existing live campaigns across every active channel — paid, organic, email, social, content, SEO. Produce a current-state inventory, quick-wins backlog, and red-flags list. Use during agency onboarding or before any /campaign-plan refresh.