skills/seo-audit/SKILL.md
SEO+GEO 점검 → 수정 선택 → 구현. 25개 항목 자동 점검 후 코드 수정 가능 항목을 골라 바로 구현.
npx skillsauth add october-academy/agnt 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.
SEO + GEO 점검 + 자동 수정. 사이트 URL을 25개 항목(P0/P1/P2)으로 자동 점검한 뒤, 미비 항목을 선택하여 바로 구현까지 진행합니다.
.claude/agnt/state.json Read → 성공 시 AGNT_DIR = .claude/agnt~/.claude/agnt/state.json → ~/.claude/agnt.codex/agnt/state.json → .codex/agnt~/.codex/agnt/state.json → ~/.codex/agntAGNT_DIR이 있으면 {AGNT_DIR}/references/ 탐색. null이면:
~/.claude/plugins/marketplaces/agentic30/references/내부 로직(경로 탐색, state 파싱, MCP 검색)은 무음 처리.
| # | 항목 | 확인 방법 |
| --- | ---------------- | ----------------------------------------------------------- |
| 1 | HTTPS | URL https:// 확인 |
| 2 | robots.txt | 주요 경로 Disallow 없음 |
| 3 | sitemap.xml | 접근 가능 + 유효 XML |
| 4 | TTFB | < 1초 |
| 5 | 모바일 반응형 | viewport 메타 존재 |
| 6 | noindex 오용 | 주요 페이지에 noindex 없음 |
| 7 | title | 존재, 60자 이내 |
| 8 | h1 | 1개 존재 |
| 9 | meta description | 존재, 155자 이내 |
| 10 | OG 태그 | og:title + og:description + og:image (이미지 1200x630 권장) |
| 11 | canonical | rel="canonical" 설정 |
| # | 항목 | 확인 방법 | | --- | ------------------ | ----------------------------------------------- | | 12 | LCP | < 2.5s (Chrome DevTools 또는 Lighthouse) | | 13 | CLS | < 0.1 | | 14 | 이미지 최적화 | 포맷(WebP/AVIF) + lazy loading + alt 텍스트 | | 15 | Schema (JSON-LD) | 1개 이상 존재 | | 16 | AI 봇 접근 | robots.txt에서 AI 봇 미차단 (RFC 9309 기준) | | 17 | FAQPage Schema | FAQPage JSON-LD 존재 | | 18 | Content-Answer Fit | 정의/단계/비교 블록 중 1개 이상 | | 19 | E-E-A-T 시그널 | 후기 섹션, 제작자 프로필, 외부 인용 중 1개 이상 | | 20 | Trustworthiness | HTTPS + 개인정보정책 링크 + 연락처/회사 정보 | | 21 | SSR/SSG | 서버사이드 렌더링 확인 (AI 크롤러가 JS 미실행) |
| # | 항목 | 확인 방법 | | --- | ---------- | --------------------------------- | | 22 | 내부 링크 | 3개 이상 | | 23 | 외부 링크 | 1개 이상 | | 24 | URL 구조 | 짧고 깔끔, 불필요한 파라미터 없음 | | 25 | Custom 404 | 유용한 404 페이지 존재 |
User-agent: * + Allow: / → ✅ (전체 허용, 명시 규칙 불필요)User-agent: *에 Disallow만 있고 AI 봇 명시 규칙 없음 → ✅ (나머지 경로 허용)AGNT_DIR ≠ null이면 {AGNT_DIR}/state.json Read.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
SEO + GEO 점검
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
전통 SEO + AI 검색엔진 최적화를 같이 점검해줄게.
AskUserQuestion: "점검할 URL은?" — 자유 입력
AskUserQuestion: "사이트 유형은?"
{REFS_DIR}/seo/seo-checklist.md, geo-optimization.md, ai-platform-factors.md Read (있으면).
Tier 1 — Chrome DevTools MCP (권장):
ToolSearch로 +chrome-devtools 검색. 도구 발견 시:
navigate_page로 URL 접속evaluate_script로 메타데이터 일괄 추출 (title, meta desc, OG, canonical, h1, JSON-LD, img alt, lang, viewport, noindex)performance_start_trace (reload: true, autoStop: true) → CWV 측정lighthouse_audit → Performance/SEO/Accessibility 점수Tier 2 — WebFetch 폴백: Chrome DevTools 없으면 WebFetch로 HTML + robots.txt + sitemap.xml 수집. CWV(#12, #13)는 "측정 불가" 처리 + PageSpeed URL 안내. 한계 경고: JS 주입 JSON-LD 감지 불가 → Google Rich Results Test 안내.
Chrome DevTools 미설치 시: "CWV 자동 측정을 위해 claude mcp add chrome-devtools --scope user npx chrome-devtools-mcp@latest 설치 권장" 안내.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
P0 — Critical
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[Technical]
#1 HTTPS: {✅/❌}
#2 robots.txt: {✅/❌ + 차단 경로}
#3 sitemap.xml: {✅/❌ + URL 수}
#4 TTFB: {✅/❌ + 측정값}
#5 모바일 반응형: {✅/❌}
#6 noindex 오용: {✅/❌}
[On-Page]
#7 title: {✅/❌ + 현재값, 길이}
#8 h1: {✅/❌ + 현재값, 개수}
#9 meta description: {✅/❌ + 현재값, 길이}
#10 OG 태그: {✅/❌ + 누락 항목, og:image 사이즈 1200x630 확인}
#11 canonical: {✅/❌}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
P1 — Important
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[Core Web Vitals]
#12 LCP: {측정값 또는 "측정 불가"} (기준: < 2.5s)
#13 CLS: {측정값 또는 "측정 불가"} (기준: < 0.1)
{Lighthouse 점수 표시. 미측정 시 PageSpeed URL 안내}
[Technical]
#14 이미지 최적화: {포맷, lazy loading, alt 누락 개수}
#15 Schema (JSON-LD): {✅/❌ + 감지된 @type}
[GEO]
#16 AI 봇 접근: {✅/❌ + 판정 근거}
#17 FAQPage Schema: {✅/❌}
#18 Content-Answer Fit: {✅/❌ + 블록 유형}
[E-E-A-T]
#19 E-E-A-T 시그널: {✅/❌ + 감지된 요소}
#20 Trustworthiness: {✅/❌ + 근거}
#21 SSR/SSG: {✅/❌ + 렌더링 방식, CDN}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
P2 — Recommended
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
#22 내부 링크: {개수}
#23 외부 링크: {개수}
#24 URL 구조: {✅/❌}
#25 Custom 404: {✅/❌/"확인 불가"}
[{site_type}별 참고] (점수 미포함)
사이트 유형별 참고:
점수: P0 8점, P1 5점, P2 2점. 만점 대비 비율. "해당 없음" 항목은 만점에서 제외. CWV 미측정 시 해당 항목 배점 제외.
══════════════════════════════════════════
SEO + GEO 점검 결과
══════════════════════════════════════════
URL: {URL} | 유형: {site_type}
──────────────────────────────────────────
점수: {점수}% ({등급})
──────────────────────────────────────────
전통 SEO: {trad}% [{bar}]
GEO (AI): {geo}% [{bar}]
E-E-A-T: {eeat}% [{bar}]
A (90%+) | B (75-89%) | C (60-74%) | D (<60%)
✅ 통과: {개수}/{전체}
❌ 미비 (우선순위순):
{[Px] 항목명 — 1줄 수정 방법}
══════════════════════════════════════════
미비 0개 → Step 11로.
미비 항목을 카테고리별로 분류하여 AskUserQuestion (Multi-Select):
🔧 AUTO — 코드로 바로 수정 가능:
| 대상 항목 | 수정 방법 | | ------------------ | --------------------------------------------------- | | #7-11 메타데이터 | layout/metadata 파일 수정 (OG 이미지 1200x630 포함) | | #14 이미지 alt | img 태그에 alt 추가 | | #15 Schema JSON-LD | head에 JSON-LD 추가/수정 | | #16 AI 봇 접근 | robots.txt Disallow 제거 (명시 차단 시에만) | | #25 Custom 404 | 404 페이지 생성 |
✏️ SEMI — 콘텐츠 확인 후 구현 (카피/구조 변경이라 유저 승인 필요):
| 대상 항목 | 필요 입력 | | ---------------------- | ------------------------------------------------------------- | | #17 FAQPage | FAQ 초안 3-5개 생성 → 유저 확인 → JSON-LD + visible 섹션 적용 | | #18 Content-Answer Fit | 정의/단계/비교 블록 초안 → 유저 확인 후 적용 (전환 카피 보호) | | #19 E-E-A-T 시그널 | 후기, 제작자 정보, 또는 외부 인용 중 택 |
어떤 항목을 지금 수정할까? (복수 선택 가능)
🔧 코드 수정:
□ A) #{n} {항목명} — {1줄 설명} [P{x}]
...
✏️ 콘텐츠 + 코드:
□ X) #19 E-E-A-T — 후기/프로필/인용 섹션 추가 [P1]
──────────────────
□ ALL) 🔧 전체 자동 수정
□ SKIP) 수정 없이 종료
SKIP → Step 11로. ALL → AUTO 항목 전체 선택.
SEMI 항목이 선택된 경우에만 실행.
#17 FAQPage 선택 시: 페이지 콘텐츠를 분석하여 FAQ 3-5개 초안 생성 → AskUserQuestion으로 유저 확인: "이 FAQ로 진행할까? 수정/삭제/추가해줘." 확인 후 visible FAQ 섹션 + FAQPage JSON-LD 동시 적용.
#18 Content-Answer Fit 선택 시: 페이지에 맞는 블록(정의/단계/비교) 초안 생성 → AskUserQuestion으로 유저 확인: "이 블록을 페이지에 추가할까? 기존 전환 카피와 충돌하지 않는지 확인해줘."
#19 E-E-A-T 선택 시: AskUserQuestion: "어떤 E-E-A-T 시그널을 추가할까?"
입력/확인받은 콘텐츠를 구현에 사용.
프로젝트 판별: 점검 URL이 현재 작업 디렉토리 프로젝트인지 확인.
파일 탐색:
metadata export, Astro frontmatter 등)public/robots.txt 또는 app/robots.tsscript[type="application/ld+json"] 위치<img> 태그가 있는 컴포넌트수정 원칙:
User-agent: * + Allow: /이면 수정 불필요. 명시 Disallow만 제거.각 항목 완료 시:
✅ #{n} {항목명} — {변경 파일}
전체 완료 후 TypeScript 프로젝트면 typecheck 실행. 에러 시 즉시 수정.
외부 작업 가이드 (코드로 해결 불가한 최적화 안내):
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
외부 작업 가이드
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
□ Google Search Console — search.google.com/search-console
□ NAVER Search Advisor — searchadvisor.naver.com
□ Bing Webmaster Tools — bing.com/webmasters (Copilot 가시성)
□ Brave Search 등록 — brave.com/search/submit (Claude 검색 소스)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
GEO 팁 (geo_score < 50%이고 미수정 GEO 항목이 남아있으면):
AI 검색에서 인용되려면:
1. FAQPage Schema (+Perplexity, AI Overview)
2. Content-Answer Fit (+55% ChatGPT 인용)
3. 구체적 숫자/통계 (+37% 가시성)
journey-brief.md + state (AGNT_DIR ≠ null):
{AGNT_DIR}/journey-brief.md ## Market > ### SEO 추가/갱신artifacts.seo_audited = true, meta.last_action = "seo-audit", meta.total_actions++submit_practice (wf-seo-audit) 또는 sync.pending_events 큐잉완료 출력:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
SEO + GEO 점검 {수정 시: "+ 수정"} 완료
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
{수정 시: ✅ N개 수정, 📊 이전%→예상% (등급→등급)}
{미비 남아있으면: → 남은 N개는 배포 후 /seo-audit 재실행}
{등급별 다음 행동:
A: SEO+GEO 완비. → /agnt:channel로 첫 트래픽을 보내봐.
B: 양호. → /agnt:channel로 커뮤니티 유입 시작하면서 남은 P1 보완.
C: P0부터 수정 후 재실행. 수정 완료되면 /agnt:channel로 유입 시작.
D: 색인 문제. P0 즉시 수정 필수. 수정 후 재점검.}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
User-agent: * + Allow: /이면 전체 허용, 명시 규칙 불필요tools
도구 비교 가이드 — 결제, 마케팅, 분석, 광고 도구. 도구 비교, 결제 솔루션 선택 시 사용.
testing
구독 전략 설계 — niche, paywall, pricing, trial, 플랫폼, 웹 병행 전략을 정한다. 앱/구독형 제품 monetization 설계 시 사용.
tools
현재 상태 대시보드 — 진행 현황, 시그널, 도구, 리더보드. 진행 상태 확인 시 사용.
data-ai
Agentic30 온보딩 + 상태 초기화. 시작하기, 프로젝트 시작 시 사용.