o2o-infinith-demo/docs/AEO_GEO_RUBRIC.md
Haewon Kam f8a254126c feat: 뷰성형외과 Question Bank 120문항 2엔진 실측 + 기준표 v1.1 과제 + 점수 정합성 교정(50/C)
- Question Bank 120문항(사전판정 ◯5/△35/✕80) + OpenAI·Perplexity API 실측: 브랜드 언급 97~100%, 논브랜드 GPT 11%/PPLX 3%, 시술 정보 52문항 0건
- 러너 run_question_bank_openai.py(재개 가능)·merge_qb_results.py·export_qb_excel.py, 결과 MD 3종 + xlsx 5시트 + raw JSONL
- AEO_GEO_RUBRIC.md v1.1 과제 5건: 서브도메인 실측, D3 표면 범위 확대, 엔진별 판정, 브랜드/논브랜드 축, 점수 표기 정합성
- 점수 교정: scoreDiscovery 계산값 50/C(44.1/89, 검증 32/36)로 진단 리포트 덱·POC 제안서 일괄 교정(구판 48, 커밋 메시지 49는 착오)
- 진단 리포트 덱 13→14장: Validation 슬라이드 추가, A5·B4·C6 재채점 반영, 연락처 o2oteam@o2o.kr 교정
- POC 제안서 10→14장: 부록 4장(QB 설계·실측 KPI·브랜드vs논브랜드·블로그 인용 증거), 랜딩 스크린샷 50점 화면 재캡처

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0155BJMHJyhqqAPGYjGKYhPS
2026-09-01 11:03:15 +09:00

110 lines
9.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# INFINITH AI Discovery AEO/GEO 채점 기준표 v1.0
> 코드 원본: `src/data/aeoGeoRubric.ts` · 타입: `src/types/discovery.ts` · 집계: `src/lib/discoveryScore.ts`
> 리포트 페이지: `/discovery/:id` (`src/pages/DiscoveryReportPage.tsx`)
> 근거 기반: ado2-aeo-geo 스킬 (2026-08-26 한국 실측 · Princeton GEO KDD 2024 · C-SEO Bench NeurIPS 2025)
## 채점 방식
- 항목마다 **level 0~3** (없음/치명 · 미흡 · 양호 · 우수) → `weight × level/3`
- **미검증(unverified)** 항목은 0점이 아니라 **분모에서 제외**한다. 확인 못 한 것을 감점하면 점수가 거짓이 된다.
- 전체 점수 = 검증 항목 획득 / 검증 항목 배점 × 100
- 등급: A(81+) · B(61–80) · C(41–60) · D(≤40). ScoreRing 색 임계값과 동일
- 항목마다 **근거 등급**(실측/학술/벤더/추정) · **통제 가능성**(직접/영향/불가) · **채점 방식**(자동/반자동/수동)을 명시한다.
## 배점 철학
| 원칙 | 반영 |
|---|---|
| "차단되면 절대 인용될 수 없다"는 논쟁의 여지가 없다 | A 접근성 20 · B 엔티티 20. 크롤러 접근에 무게 |
| GEO 콘텐츠 전술의 효과는 학술적으로 논쟁 중 | C 콘텐츠 25. 배점은 크지만 "좋은 콘텐츠 원칙"으로만 설명. "X% 올려드립니다" 금지 |
| 병의원 AI 인용은 강남언니(`ai-input=yes`) 등 버티컬이 100% 장악 (실측) | D1 강남언니 6점. 단일 항목 최고 배점 |
| 네이버 자산은 글로벌 AI에 기여도 0 (robots.txt 전면 차단) | D5 네이버 플레이스는 2점, "AI 브리핑 전용"으로 한정 |
| llms.txt는 위약 (Google 효과 0, 채택률 0.13%) | 항목에서 **제외** |
| 개선을 증명 못 하면 상품이 아니다 | E 측정 인프라 10 |
## 카테고리 (100점)
| 코드 | 카테고리 | 배점 | 무엇을 보나 |
|---|---|---|---|
| A | AI 크롤러 접근성 | 20 | 검색봇 허용(학습봇과 구분) · CDN 차단 · SSR · HTTPS · sitemap · Bing 색인 · 속도 |
| B | 엔티티 식별·구조화 | 20 | JSON-LD 유효성 · MedicalClinic · Physician · NAP 일관성 · sameAs · canonical · hreflang |
| C | 답변 인용 가능 콘텐츠 | 25 | 정의문 · FAQ · 제목 계층 · 구체 수치 · 표 · 신선도 · 의료진 E-E-A-T · 패시지 자기완결성 |
| D | AI 인용 표면 확보 | 20 | 강남언니 · GBP · 오픈웹 언급 · 표면 간 NAP · 네이버 플레이스 · Wikidata |
| E | AI 가시성 측정 인프라 | 10 | 크롤러 로그(IP 검증) · GA4 AI 채널 · GSC AIO · 기준선 스팟체크 |
| F | 기술 위생 | 5 | 이미지 alt · CMS 최신성 · 페이지 무게 · 모바일 |
## 항목 목록
| ID | 항목 | 배점 | 근거 | 통제 | 채점 | 3점 기준 |
|---|---|---|---|---|---|---|
| A1 | 검색용 AI 봇 허용 | 5 | 실측 | 직접 | 자동 | 검색봇 전부 허용 + 200 응답 |
| A2 | CDN/WAF AI 차단 없음 | 3 | 실측 | 직접 | 자동 | CDN 차단 없음 확인 |
| A3 | 서버 렌더링 본문 | 3 | 실측 | 직접 | 자동 | JS 미실행 텍스트 80% 이상 |
| A4 | HTTPS·리다이렉트 정합 | 2 | 실측 | 직접 | 자동 | 전부 301로 정본 수렴 |
| A5 | sitemap.xml 제공 | 3 | 실측 | 직접 | 자동 | 선언·200·lastmod 최신 |
| A6 | Bing 색인 (ChatGPT 경로) | 3 | 벤더 | 직접 | 수동 | 색인 + IndexNow |
| A7 | 응답 속도·크롤 예산 | 1 | 추정 | 직접 | 자동 | TTFB < 0.5s, HTML < 300KB |
| B1 | JSON-LD 문법 유효성 | 3 | 실측 | 직접 | 자동 | 전부 유효 + @graph 연결 |
| B2 | 업종 엔티티 스키마 (MedicalClinic / LegalService) | 5 | 학술 | 직접 | 자동 | + openingHours·medicalSpecialty·geo |
| B3 | 전문가 스키마 (Physician / Attorney) | 3 | 학술 | 직접 | 자동 | 자격·소속·sameAs 포함 |
| B4 | NAP 사이트 내 일관성 | 3 | 실측 | 직접 | 자동 | 단일 표기 |
| B5 | sameAs 연결 | 2 | 학술 | 직접 | 자동 | 5개 이상 (SNS+버티컬+지도) |
| B6 | canonical·중복 제거 | 2 | 실측 | 직접 | 자동 | 있음 + 파라미터 정리 |
| B7 | 다국어 hreflang | 2 | 벤더 | 직접 | 자동 | 3개 이상 연결 |
| C1 | 정의문형 첫 문단 | 4 | 학술 | 직접 | 반자동 | 전 핵심 페이지 정의문 |
| C2 | FAQ 섹션 | 4 | 학술 | 직접 | 자동 | FAQ + FAQPage 스키마 + 시술별 |
| C3 | 제목 계층 의미성 | 3 | 실측 | 직접 | 자동 | H1 1개 서술형, H2 논리 계층 |
| C4 | 구체 수치 (가격·시간·회복) | 4 | 학술 | 직접 | 반자동 | 시술별 가격대·시간·회복 표기 |
| C5 | 표·비교 구조 | 2 | 벤더 | 직접 | 자동 | HTML 표 다수 |
| C6 | 신선도 신호 | 3 | 학술 | 직접 | 자동 | 3개월 이내 + dateModified |
| C7 | 전문가 E-E-A-T (의료진 / 변호사) | 3 | 학술 | 직접 | 반자동 | + 논문·학회·수상 + Physician 스키마 |
| C8 | 패시지 자기완결성 | 2 | 학술 | 직접 | 수동 | 80% 이상 |
| D1 | 업종 버티컬 프로필 (강남언니 / 로톡) | 6 | 실측 | 직접 | 수동 | + 의료진·가격 갱신 3개월 이내 |
| D2 | Google 비즈니스 프로필 | 4 | 실측 | 직접 | 수동 | 소유·리뷰 응답·게시물 활성 |
| D3 | 오픈웹 언급 | 4 | 학술 | 영향 | 반자동 | 다수 오픈 도메인 일관 언급 |
| D4 | 표면 간 NAP 완전 일치 | 3 | 실측 | 직접 | 수동 | 완전 일치 |
| D5 | 네이버 플레이스 (AI 브리핑) | 2 | 실측 | 직접 | 반자동 | 연결·리뷰·소식 활성 |
| D6 | Wikidata/위키백과 | 1 | 추정 | 영향 | 자동 | 항목 + 공식 사이트 연결 |
| E1 | AI 크롤러 로그 (IP 검증) | 3 | 실측 | 직접 | 수동 | IP 검증 히트 집계 |
| E2 | GA4 AI 유입 채널 | 3 | 실측 | 직접 | 수동 | 커스텀 채널 (Perplexity 포함) |
| E3 | GSC AI Overviews | 2 | 벤더 | 직접 | 수동 | 월간 추적 |
| E4 | 기준선 스팟체크 | 2 | 학술 | 직접 | 수동 | 분기 반복 측정 |
| F1 | 이미지 대체텍스트 | 2 | 실측 | 직접 | 자동 | 5% 미만 누락 |
| F2 | CMS 보안·최신성 | 1 | 추정 | 직접 | 자동 | 최신 |
| F3 | 페이지 무게 | 1 | 추정 | 직접 | 자동 | < 300KB |
| F4 | 모바일 대응 | 1 | 실측 | 직접 | 자동 | 반응형 + CWV 양호 |
각 항목의 level 0~2 라벨과 `howToCheck`(자동화 구현 스펙)는 `aeoGeoRubric.ts`에 있다.
## 자동화 로드맵 (Edge Function `discover-aeo-geo`)
| 단계 | 자동 채점 가능 항목 | 도구 |
|---|---|---|
| 1 | A1–A5, A7, B1, B4, B6, B7, C2(탐지), C3, C5, C6, F1–F4 | robots 파싱 + curl UA 테스트 + HTML 파서 (crawler_audit.py 로직 이식) |
| 2 | B2, B3, C1, C4, C7, C8 | Perplexity/Claude에 HTML 텍스트 투입 → 구조화 판정 |
| 3 | D3, D6 | 검색 그라운딩 도메인 집계, Wikidata API |
| 수동 | A6, D1, D2, D4, E1–E4 | 오너 계정 접근 또는 담당자 확인 → 입력 슬롯 |
## 하지 않을 것 (리포트에 항상 명시)
- llms.txt 납품 · "스키마 넣으면 인용됩니다" · 단발 조회 순위 보고 · 답변엔진 UI 자동 조회(약관 위반) · 네이버 블로그 증량(글로벌 AI 기여도 0)
## v1.1 개선 과제 (2026-09-01 · Question Bank 120문항 실측 검증에서 도출)
뷰성형외과 잠재 환자 질문 120개를 OpenAI 웹검색 API(gpt-4o + web_search, 서울 고정)와 Perplexity API(sonar)로 실측해 기준표 기반 사전판정을 채점했다. 데이터: `docs/reports/Viewclinic_QB_Results_Combined.md`, raw `scripts/out/qb_{openai,perplexity}_results.jsonl`, 러너 `scripts/run_question_bank_openai.py`.
**검증 요약**
- 논브랜드(병원명 미포함) ✕ 판정 73문항: Perplexity 언급 0건, ChatGPT 5건. 시술 정보 질문 52문항은 두 엔진 모두 0건. 핵심 인과(콘텐츠 부재 → 논브랜드 미인용) 적중.
- 브랜드 ✕ 판정 7문항: 전부 오판. 뉴스 기사·채용공고·바비톡·네이버 예약 정보를 근거로 두 엔진 다 정답(개원연도·주차·휴진·렛미인).
- ChatGPT 추천 질문 5건: 갱신이 멈춘 blog.viewclinic.com과 순위 집계 사이트를 근거로 뷰를 2~5위에 배치. Perplexity는 0건으로 엔진별 근거 표면이 다름.
**과제**
1. **실측 대상에 서브도메인 포함.** 현재 진단은 메인 + 시술 2개 URL 기준. 실제 인용은 blog.viewclinic.com에서 나왔다. C군 콘텐츠·C6 신선도 판정에 블로그 서브도메인을 넣는다.
2. **D3 오픈웹 언급의 실측 범위 확대.** 강남언니·GBP 중심에서 바비톡, 뉴스 도메인(보건뉴스·머니투데이 등), 순위 집계 사이트, 채용공고까지. AI가 실제로 인용한 도메인 목록을 판정 근거로 쓴다.
3. **엔진별 표면 차이 명시.** ChatGPT는 블로그·집계 사이트를, Perplexity는 다른 소스 프로필을 인용한다. 판정을 엔진 공통 단일값이 아니라 엔진별로 나눌지 검토.
4. **사전판정에 브랜드/논브랜드 축 추가.** 브랜드 질문은 제3자 표면만으로 언급이 성립하므로 "인용 불가" 판정은 논브랜드 전용으로 좁힌다.
5. **점수 표기 정합성.** scoreDiscovery 계산값은 50/C(44.1/89, 검증 32/36)인데 재채점 커밋 메시지가 49로 기록됐다. 산출물 숫자는 항상 계산값을 따른다 (2026-09-01 덱·문서 일괄 교정 완료).