Files
our-claude-skills/custom-skills/11-seo-comprehensive-audit/code/commands/seo-comprehensive-audit.md
Andrew Yim a3ff965b87 Add SEO skills 19-28, 31-32 with full Python implementations
12 new skills: Keyword Strategy, SERP Analysis, Position Tracking,
Link Building, Content Strategy, E-Commerce SEO, KPI Framework,
International SEO, AI Visibility, Knowledge Graph, Competitor Intel,
and Crawl Budget. ~20K lines of Python across 25 domain scripts.
Updated skill 11 pipeline table and repo CLAUDE.md.
Enhanced skill 18 local SEO workflow from jamie.clinic audit.

Note: Skill 26 hreflang_validator.py pending (content filter block).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 12:05:59 +09:00

6.2 KiB

description, allowed-tools
description allowed-tools
Comprehensive SEO audit: technical, on-page, schema, CWV, local, and GSC in one unified report Read, Write, Edit, Bash, Glob, Grep, WebFetch, WebSearch, Task

Comprehensive SEO Audit

Overview

Orchestrates a unified 6-stage SEO audit by calling sub-skill scripts sequentially, merging results, computing a weighted health score (0-100), and optionally pushing a summary to Notion.

Usage

/seo-comprehensive-audit https://example.com
/seo-comprehensive-audit https://example.com --skip-local --skip-gsc
/seo-comprehensive-audit https://example.com --json
/seo-comprehensive-audit https://example.com --skip-notion

Pipeline Stages

# Stage Sub-Skill Skip Flag
1 Technical SEO 12-seo-technical-audit
2 On-Page SEO 13-seo-on-page-audit
3 Core Web Vitals 14-seo-core-web-vitals
4 Schema Validation 16-seo-schema-validator
5 Local SEO 18-seo-local-audit --skip-local
6 Search Console 15-seo-search-console --skip-gsc

Execution

# Find repo root
REPO_ROOT=$(git -C /path/to/our-claude-skills rev-parse --show-toplevel)
SKILLS="$REPO_ROOT/custom-skills"

# Run orchestrator
python "$SKILLS/11-seo-comprehensive-audit/code/scripts/seo_audit_orchestrator.py" \
  --url https://example.com \
  --skills-dir "$SKILLS"

Option B: Manual Stage-by-Stage

Run each sub-skill script with --json flag, then synthesize:

# Stage 1: Technical SEO
python "$SKILLS/12-seo-technical-audit/code/scripts/robots_checker.py" --url $URL --json
python "$SKILLS/12-seo-technical-audit/code/scripts/sitemap_validator.py" --url "$URL/sitemap.xml" --json

# Stage 2: On-Page SEO
python "$SKILLS/13-seo-on-page-audit/code/scripts/page_analyzer.py" --url $URL --json

# Stage 3: Core Web Vitals
python "$SKILLS/14-seo-core-web-vitals/code/scripts/pagespeed_client.py" --url $URL --json

# Stage 4: Schema Validation
python "$SKILLS/16-seo-schema-validator/code/scripts/schema_validator.py" --url $URL --json

# Stage 5: Local SEO (see detailed instructions below)
# Stage 6: Search Console (requires GSC API credentials)

Stage 5: Local SEO — Detailed Instructions

Stage 5 is prompt-driven (no script). Follow this sequence:

  1. Extract Business Identity from website (MANDATORY FIRST)

    • WebFetch the homepage and parse JSON-LD <script type="application/ld+json"> tags
    • Extract from Organization, Hospital, or LocalBusiness schema: Korean name, English name, address, telephone
    • Check sameAs array for GBP, Naver Place, Kakao Map URLs
  2. Check website for listing links

    • Scrape footer, contact page, about page for links matching:
      • GBP: maps.app.goo.gl/*, google.com/maps/place/*, g.page/*
      • Naver Place: naver.me/*, map.naver.com/*/place/*, m.place.naver.com/*
      • Kakao Map: place.map.kakao.com/*, kko.to/*
    • Check embedded iframes for Google Maps Place IDs or Naver Map embeds
  3. Layered search fallback (if links not found on website)

    • GBP: Search "[Korean Name]" "[district]" Google Maps, then "[phone]" site:google.com/maps
    • Naver: Search "[Korean Name]" site:map.naver.com, then "[Korean Name]" 네이버 지도 [district]
    • Kakao: Search "[Korean Name]" site:place.map.kakao.com
  4. Follow 18-seo-local-audit/code/CLAUDE.md workflow for the full audit (Steps 2-7)

  5. Important language: Distinguish "not discoverable via web search" from "does not exist." GBP and Naver Map are JS-rendered; WebFetch cannot extract their listing data. Absence in search results does not confirm absence of the listing.

  6. Korean market priorities: GBP and Naver Smart Place are both Critical. Kakao Map is High. US-centric directories (Yelp, Yellow Pages) are Low priority for Korean businesses.

Health Score (Weighted 0-100)

Category Weight
Technical SEO 20%
On-Page SEO 20%
Core Web Vitals 25%
Schema 15%
Local SEO 10%
Search Console 10%

Scores per category are normalized to 0-100. Skipped stages redistribute their weight proportionally.

Output Format

{
  "url": "https://example.com",
  "audit_date": "2025-01-15",
  "health_score": 72,
  "grade": "B",
  "stages": {
    "technical": {"score": 85, "issues": [], "weight": 0.20},
    "on_page": {"score": 70, "issues": [], "weight": 0.20},
    "core_web_vitals": {"score": 60, "issues": [], "weight": 0.25},
    "schema": {"score": 80, "issues": [], "weight": 0.15},
    "local_seo": {"score": 65, "issues": [], "weight": 0.10},
    "search_console": {"score": 75, "issues": [], "weight": 0.10}
  },
  "critical_issues": [],
  "recommendations": []
}

Grading Scale

Score Grade Status
90-100 A Excellent
80-89 B+ Good
70-79 B Above Average
60-69 C Needs Improvement
40-59 D Poor
0-39 F Critical

Notion Output (Required)

IMPORTANT: Summary report MUST be saved to the OurDigital SEO Audit Log database.

Database Configuration

Field Value
Database ID 2c8581e5-8a1e-8035-880b-e38cefc2f3ef

Summary Page Title

종합 SEO 감사 보고서 - [domain] - YYYY-MM-DD

Required Properties

Property Type Value
Issue Title 종합 SEO 감사 보고서 - [domain] - YYYY-MM-DD
Site URL Audited website URL
Category Select Comprehensive Audit
Priority Select Based on health score (Critical if <40, High if <60, Medium if <80, Low if ≥80)
Found Date Date Audit date (YYYY-MM-DD)
Audit ID Rich Text COMP-YYYYMMDD-001

Individual Issues

Create one Notion page per Critical/High finding with:

  • Appropriate Category (Technical SEO, On-page SEO, Performance, Schema/Structured Data, Local SEO)
  • Priority matching the finding severity
  • Audit ID linking back to the comprehensive audit

Language Guidelines

  • Report content in Korean (한국어)
  • Keep technical English terms as-is (e.g., SEO Audit, Core Web Vitals, Schema Markup)
  • URLs and code remain unchanged