Skip to content
AI & Agents
Command

/seo-auditor

Scan and optimize documentation files for SEO. Audits README.md files and docs/ pages for meta tags, headings, keywords, readability, duplicate content, and broken links. Applies fixes, updates sitemap.xml, and generates a report. Usage: /seo-auditor [path]

From plugin
claude-skills
30k173 skills129 agents173 commands2 MCP
$ npx -y skills add alirezarezvani/claude-skills --agent claude-code

Command definition

seo-auditor.md
name: seo-auditor
description: |
  Scan and optimize documentation files for SEO. Audits README.md files and docs/ pages for
  meta tags, headings, keywords, readability, duplicate content, and broken links. Applies
  fixes, updates sitemap.xml, and generates a report. Usage: /seo-auditor [path]
argument-hint: "[path]"

/seo-auditor

Systematically scan, audit, and optimize documentation files for SEO. Targets README.md files and docs/ pages — fixes issues in place, preserves rankings on high-performing pages, and generates a final report.

Usage

/seo-auditor                    # Audit all docs/ and root README.md
/seo-auditor docs/skills/       # Audit a specific docs subdirectory
/seo-auditor --report-only      # Scan without making changes

What It Does

Execute all 7 phases sequentially. Auto-fix non-destructive issues. Preserve existing high-ranking content. Report everything at the end.

---

Phase 1: Discovery & Baseline

1a. Identify target files

Scan for documentation files that need SEO audit:

# Find all markdown files in docs/ and root README files
find docs/ -name '*.md' -type f | sort
find . -maxdepth 2 -name 'README.md' -not -path './.codex/*' -not -path './.gemini/*' | sort

Classify each file:

  • **New/recently modified** — files changed in the last 2 commits (check via `git log`)
  • **Index pages** — `index.md` files (high authority, handle with care)
  • **Skill pages** — `docs/skills/**/*.md` (generated by `generate-docs.py`)
  • **Static pages** — `docs/index.md`, `docs/getting-started.md`, `docs/integrations.md`, etc.
  • **README files** — root and domain-level README.md

1b. Capture baseline

For each target file, extract current SEO state:

  • `title:` frontmatter field → becomes `<title>` tag
  • `description:` frontmatter field → becomes `<meta name="description">`
  • First `# H1` heading
  • All `## H2` and `### H3` subheadings
  • Word count
  • Internal link count
  • External link count

Store baseline in memory for the report.

---

Phase 2: Meta Tag Audit

For every file with YAML frontmatter, check and fix:

Title Tag (`title:`)

**Rules:**

  • Must exist and be non-empty
  • Length: 50-60 characters ideal (Google truncates at ~60)
  • Must contain a primary keyword
  • Must NOT duplicate another page's title
  • For skill pages: should follow the pattern `{Skill Name} — {Differentiator} - {site_name}`
  • site_name from `mkdocs.yml` is appended automatically — don't duplicate it in the title

**Auto-fix:** If title is generic (e.g., just the skill name), enrich it with domain context using the DOMAIN_SEO_SUFFIX pattern from `scripts/generate-docs.py`.

Meta Description (`description:`)

**Rules:**

  • Must exist and be non-empty
  • Length: 120-160 characters (Google truncates at ~160)
  • Must contain the primary keyword naturally
  • Must be unique across all pages — no two pages share the same description
  • Should include a call-to-action or value proposition
  • Must NOT start with "This page..." or "This document..."

**Auto-fix:** If description is missing or generic, generate one from the SKILL.md frontmatter description (if available) or from the first paragraph of content. Use the `extract_description_from_frontmatter()` function from `generate-docs.py` as reference.

Validation Script

Run on each file that has HTML output in `site/`:

python3 marketing-skill/skills/seo-audit/scripts/seo_checker.py --file site/{path}/index.html

Parse the score. Flag any page scoring below 60.

---

Phase 3: Content Quality & Readability

For each target file, analyze and improve:

Heading Structure

**Rules:**

  • Exactly one `# H1` per page
  • H2s follow H1, H3s follow H2 — no skipping levels
  • Headings should contain keywords naturally (not stuffed)
  • No duplicate headings on the same page

**Auto-fix:** If heading levels skip (H1 → H3), adjust to proper hierarchy.

Readability

Run the content scorer on each file:

python3 marketing-skill/skills/content-production/scripts/content_scorer.py {file_path}

Check scores for:

  • **Readability** — aim for score ≥ 70
  • **Structure** — aim for score ≥ 60
  • **Engagement** — aim for score ≥ 50

Content Quality Rules

  • **Paragraphs:** No single paragraph longer than 5 sentences
  • **Sentences:** Average sentence length 15-20 words
  • **Passive voice:** Less than 15% of sentences
  • **Transition words:** At least 30% of sentences use transitions
  • **Bullet lists:** Use lists for 3+ items instead of comma-separated inline lists

AI Content Detection

Run the humanizer scorer on non-generated content (README.md files, static pages):

python3 marketing-skill/skills/content-humanizer/scripts/humanizer_scorer.py {file_path}

Flag pages scoring below 50 (too AI-sounding). For these pages, apply voice techniques from `marketing-skill/skills/content-humanizer/references/voice-techniques.md`:

  • Replace AI clichés ("delve into", "leverage", "it's important to note")
  • Vary sentence length
  • Add specific examples instead of generic statements
  • Use active voice

**Important:** Only modify content that was recently created or updated. Do NOT rewrite pages that are ranking well — preserve their content.

---

Phase 4: Keyword Optimization

4a. Identify target keywords per page

Based on the page's purpose and domain:

| Page Type | Primary Keywords | Secondary Keywords | |-----------|-----------------|-------------------| | Homepage (docs/index.md) | "Claude Code Skills", "agent plugins" | "Codex skills", "Gemini CLI", "OpenClaw" | | Skill pages | Skill name + "Claude Code" | "agent skill", "Codex plugin", domain terms | | Agent pages | Agent name + "AI coding agent" | "Claude Code", "orchestrator" | | Command pages | Command name + "slash command" | "Claude Code", "AI coding" | | Getting started | "install Claude Code skills" | platform names | | Domain index | Domain + "skills" + "plugins" | "Claude Code", platform names |

4b. Keyword placement

Read more
@alirezarezvani
Ships withclaude-skills

415 production-ready skills for Claude Code and 12 other coding agents, covering engineering, product, marketing, compliance, finance and the C-suite. We test whether each skill loads when you ask in plain words, and publish the results.

30k200 skills129 agents2 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
29.8k
Star history of alirezarezvani/claude-skills on GitHub, a chart by star-history.com

Other commands on claude-skills.

focused-fix

focused-fix

Command

Deep-dive feature repair — systematically fix an entire feature/module across all its files and dependencies. Usage: /focused-fix…

plugin-audit

plugin-audit

Command

Comprehensive audit pipeline for skills, plugins, agents, and commands. Validates structure, quality, security, marketplace…

More commands from other plugins.

devbox-entrypoint

devbox-entrypoint

Command

Context: runloop resumes a devbox by re-running the same entrypoint script, which invokes `cn serve --id <agentId> ...`. Because…

@continuedev@continuedevInstall Command
c

c

Command

Shortcut for "continue working" — pick the work in flight back up exactly where it stopped and keep going until it is done or…

lifeos2w20k
@danielmiessler@danielmiesslerInstall Command
sidecar

sidecar

Command

Spawn a read-only sidecar subagent to investigate something in this checkout without editing files, moving branches, or touching…

@builderio@builderioInstall Command