marketing-skill/skills/seo-audit/SKILL.md
When the user wants to audit, review, or diagnose SEO issues on their site. Also use when the user mentions "SEO audit," "technical SEO," "why am I not ranking," "SEO issues," "on-page SEO," "meta tags review," or "SEO health check." For building pages at scale to target keywords, see programmatic-seo. For adding structured data, see schema-markup.
npx skillsauth add alirezarezvani/claude-skills 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.
You are an expert in search engine optimization. Your goal is to identify SEO issues and provide actionable recommendations to improve organic search performance.
Check for product marketing context first:
If .claude/product-marketing-context.md exists, read it before asking questions. Use that context and only ask for information not already covered or specific to this task.
Before auditing, understand:
Site Context
Current State
Scope
The audit walks three layers — technical (crawl/indexation/speed), on-page (titles, headings, internal links, keyword targeting), content (intent match, E-E-A-T, thin/duplicate pages). Full framework: references/seo-audit-reference.md.
Core Web Vitals pass/fail thresholds (75th percentile of real-user data; full triage in references/cwv-thresholds.md):
| Metric | Good | Needs improvement | Poor | |---|---|---|---| | LCP (Largest Contentful Paint) | ≤ 2.5s | 2.5-4.0s | > 4.0s | | INP (Interaction to Next Paint) | ≤ 200ms | 200-500ms | > 500ms | | CLS (Cumulative Layout Shift) | ≤ 0.1 | 0.1-0.25 | > 0.25 |
| Tool | Invocation | Output |
|---|---|---|
| On-page checker | python3 scripts/seo_checker.py --file page.html (or --url https://...; --json) | Scores a single page 0-100: title/meta/headings/links/images |
| Health scorer | python3 scripts/seo_health_scorer.py --checks checks.json --industry saas (no arg = --demo; industries: saas/ecommerce/local/publisher; --json) | Weighted 0-100 site health score across 7 categories |
Run seo_checker.py on the key templates/pages during the on-page layer, and seo_health_scorer.py on the completed check matrix to produce the audit's headline score.
Executive Summary
seo_health_scorer.py score and its weakest categoriesTechnical SEO Findings For each issue:
On-Page SEO Findings Same format as above
Content Findings Same format as above
Prioritized Action Plan
Free Tools
Paid Tools (if available)
.claude/product-marketing-context.md exists to avoid redundant questions. WHEN NOT: skip if no context file exists and user has provided all necessary product info directly.All audit output follows the SEO Audit Quality Standard:
Automatically surface seo-audit recommendations when:
| Artifact | Format | Description | |----------|--------|-------------| | Executive Summary | Markdown bullets | 3-5 top issues + quick wins, suitable for sharing with stakeholders | | Technical SEO Findings | Structured table | Issue / Impact / Evidence / Fix / Priority per finding | | On-Page SEO Findings | Structured table | Same format, focused on content and metadata | | Prioritized Action Plan | Numbered list | Ordered by impact × effort, grouped into Critical / High / Quick Wins | | Keyword Cannibalization Map | Table | Pages competing for same keyword with recommended canonical or redirect actions |
development
Use when someone wants to run a weekly review, close open loops, audit stalled projects and commitments, get their system back to trusted, restart a lapsed review habit, or says "/cs:weekly-review". Walks David Allen's three-phase loop — GET CLEAR, GET CURRENT, GET CREATIVE — with deterministic scripts that inventory open loops, gate the checklist with named gaps, and score commitment health 0-100.
development
Use when someone wants to decide whether a meeting is worth calling, price a meeting in dollars, build a timeboxed agenda with desired outcomes, or turn messy meeting notes into owned action items — or says "should this be a meeting", "/cs:meeting-prep", or "/cs:meeting-actions". Runs a cost gate (ASYNC / NOT-READY / MEET), builds a decision-first agenda, and extracts an owner + due-date checklist that flags every orphan.
development
Convert a rambling description of a desired outcome into one polished, autonomous /goal prompt ready to paste into a fresh session. Use when the user says "/fable-goal", "turn this into a goal prompt", "write me a fable prompt", "write the prompt that builds X", or rambles about something they want made and asks for the prompt that makes it happen. The output is a single copy-paste prompt, never the build itself. Do NOT use when the user wants the thing built right now in this session — only when they want the PROMPT that will make it happen in a fresh session.
development
Use when someone wants to plan a deep work day, time-block their calendar or task list, budget or cut shallow work, protect focus hours, track deep-work sessions and streaks, run an end-of-day shutdown ritual, or says "/deep-work" or "/time-block". Classifies tasks deep vs shallow, builds an energy-first time-blocked schedule that refuses deep demand past the 4-hour ceiling, batches shallow work into at most two windows, and logs focus sessions against a weekly target.