GEO 감사 — Generative Engine Optimization 감사
목적
asdlc.io 코드베이스에 대한 종합적인 Generative Engine Optimization(GEO) 감사를 수행합니다. GEO는 AI 시스템(ChatGPT, Claude, Perplexity, Gemini 등)이 웹 콘텐츠를 발견, 이해, 인용 및 추천할 수 있도록 최적화하는 관행입니다.
ASDLC.io는 퍼블리셔 / 지식 기반 사이트로, Agentic SDLC 패턴을 문서화하는 정적 Astro 사이트입니다. 감사는 콘텐츠, 스키마, 기술 인프라가 AI 인용 및 추천을 얼마나 잘 지원하는지에 중점을 둡니다.
사이트 유형: Netlify에 배포된 정적 Astro 5.x 사이트
도메인: https://asdlc.io
콘텐츠 모델: 세 개의 컬렉션(concepts, patterns, practices)과 MCP 서버 노출
경계
- 범위 내: AI 인용성, 기술 GEO 인프라, E-E-A-T, 스키마/구조화된 데이터, MCP 최적화 감사;
docs/reports/GEO-AUDIT-REPORT.md생성. - 범위 외: 코드 또는 콘텐츠 변경 구현(
dev), 사양 수정(spec), 게시 또는 푸시(ship).
감사 워크플로우
0단계: 라이브 사이트 현실 확인
소스 코드를 분석하기 전에 라이브 사이트를 가져와 AI 크롤러가 실제로 보는 내용을 검증합니다. 이 과정에서 소스가 올바르게 보이지만 렌더링된 출력이 손상된 빌드 타임 버그를 찾아냅니다.
1단계: 주요 페이지 가져오기
WebFetch/HTTP 검색을 사용하여 https://asdlc.io에서 렌더링된 HTML을 검사합니다. 대상 페이지:
- 홈페이지 (
/) - 각 컬렉션의 문서 1개 (예:
/concepts/agentic-sdlc,/patterns/첫 번째,/practices/첫 번째) /robots.txt/sitemap-index.xml(또는/sitemap.xml)/llms.txt
가져오기당 30초 제한 시간을 적용합니다. 라이브 사이트에 연결할 수 없는 경우 실패를 기록하고 코드베이스 전용 분석을 계속합니다.
2단계: 렌더링된 출력 검증
가져온 각 페이지에 대해 다음을 추출하고 기록합니다:
- 실제
<title>및 ` — 소스 코드가 의도한 것과 일치합니까? - JSON-LD 블록 — 모든
<script type="application/ld+json">를 파싱하고 렌더링된 HTML에 실제로 존재하는 스키마 유형과 필드를 검증합니다. - Open Graph 태그 —
og:title,og:description,og:image,og:url,og:type을 추출합니다. - 표준 URL —
<link rel="canonical">이 올바르게 해결됩니까? - 제목 구조 —
<h1>이 정확히 하나 있습니까? 제목 계층이 적절합니까? - 콘텐츠 접근성 — 주요 콘텐츠가 시맨틱 HTML(
<article>,<main>,<section>)인지, 아니면 JS 렌더링된 div에 묻혀 있습니까? - 응답 헤더 —
X-Robots-Tag,Cache-Control및 AI 관련 헤더를 기록합니다.
3단계: 소스 대 렌더링 차이
소스 코드가 정의한 내용과 렌더링된 출력에 포함된 내용 간의 차이점을 표시합니다:
- 컴포넌트에 정의되었지만 페이지에 렌더링되지 않은 스키마 마크업
- frontmatter에 정의되었지만 렌더링된
<head>에 나타나지 않는 메타 설명 - 404 오류가 발생하는 페이지를 나열하거나 나열되어야 하는 페이지가 누락된 사이트맵
- 헤더 구성과 일치하지 않는
robots.txt지시문
모든 차이점은 최종 보고서의 전용 "소스 대 렌더링" 섹션에 기록합니다.
1단계: 코드베이스 심층 분석
렌더링된 출력에서 볼 수 없는 모든 것 — 콘텐츠 품질, 관계 밀도, MCP 내부, 모든 페이지의 스키마 완전성 — 에 대해 소스 코드를 분석합니다.
1단계: 콘텐츠 인벤토리
list_articles를 사용하여 전체 문서 매니페스트를 가져옵니다.src/content/config.ts를 읽어 스키마와 frontmatter 필드를 이해합니다.src/content/**/*.{md,mdx}를 글로브(glob)하여 총 콘텐츠 파일 수를 계산합니다.- 각 컬렉션(concepts, patterns, practices)에 대해 다음을 기록합니다:
- 총 문서 수 및 상태 분포(Live, Experimental, Draft)
- 단어 수 샘플링(컬렉션당 3-5개 문서 읽기)
- Frontmatter 완전성(description, tags, relatedConcepts 등)
2단계: 기술 인프라 스캔
public/robots.txt읽기 — AI 크롤러 지시문(GPTBot, ClaudeBot, PerplexityBot 등) 확인public/llms.txt또는public/.well-known/llms.txt존재 여부 확인astro.config.mjs읽기 — 사이트맵 통합, 사이트 URL, 출력 구성 확인src/layouts/BaseLayout.astro읽기 — 메타 태그, 구조화된 데이터 주입 지점 확인src/components/SEOMetadata.astro읽기 — Open Graph, Twitter 카드, 표준 URL 감사- astro 구성에서 사이트맵 통합 확인
- MCP 서버 설정 확인:
netlify/edge-functions/mcp.ts또는 이와 동등한 파일 읽기
3단계: 스키마 및 구조화된 데이터 스캔
- 모든
.astro파일에서application/ld+json을 grep — 모든 JSON-LD 블록 카탈로그 작성 - schema.org 유형 grep: Article, TechArticle, WebSite, Organization, BreadcrumbList, FAQPage, HowTo
- 스키마 생성 컴포넌트 또는 유틸리티 읽기
- 문서 페이지, 인덱스 페이지, 홈페이지에 스키마가 있는지 확인
2단계: 병렬 분석
수집된 데이터를 5가지 핵심 범주에 걸쳐 분석하고 점수(0-100) 및 결과를 계산합니다:
- AI 인용성 분석 (가중치 30%) — 구절 자체 포함성, 답변 블록 밀도, 정의 명확성, 구조적 탐색 가능성
- 콘텐츠 E-E-A-T 품질 (가중치 25%) — 출처 품질, 인용 밀도, 콘텐츠 깊이, 신선도, 권위 신호
- 기술 GEO 인프라 (가중치 15%) — 크롤러 접근성, 검색 가능성 신호, 렌더링 방식, MCP 노출
- 스키마 및 구조화된 데이터 (가중치 15%) — 스키마 범위, 유형 다양성, 필드 완전성, 유효성 검증 정확성
- 지식 기반 및 MCP 최적화 (가중치 15%) — MCP 완전성, 매니페스트 품질, 관계 밀도, 에이전트 탐색 가능성
3단계: 점수 집계 및 보고서
종합 GEO 점수 계산:
GEO_Score = (Citability * 0.30) + (EEAT * 0.25) + (Technical * 0.15) + (Schema * 0.15) + (MCP * 0.15)
설정된 표준 보고서 템플릿에 따라 docs/reports/GEO-AUDIT-REPORT.md를 생성합니다.
$ARGUMENTS