o2o-infinith-demo/src/data/discovery_wonjin.ts

113 lines
13 KiB
TypeScript
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.

/**
* 원진성형외과 (www.k-wonjin.co.kr) AEO/GEO 진단. 자동 채점 초안
* 생성: audit_aeo_geo.py · 2026-09-08 · JS 미실행 HTML 기준
*
* ⚠️ 이 파일은 초안이다. 배포 전 사람이 해야 할 일:
* 1. [semi·사람 판정 필요] 항목 5개(C1·C4·C7·D3·D5)의 증거를 보고 level 확정
* 2. [manual] 항목 9개 중 실측 가능한 것(D1·D2·D4) 실측, 나머지는 unverified 유지
* 3. keyFindings(3~5개) · actions(P0~P2) 작성
* 4. discoveryResults.ts에 등록: wonjin: DISCOVERY_WONJIN,
*/
import type { DiscoveryResult } from '../types/discovery';
export const DISCOVERY_WONJIN: DiscoveryResult = {
id: 'wonjin',
clinicName: '원진성형외과',
url: 'https://www.k-wonjin.co.kr',
industry: '성형외과 (강남역)',
auditedAt: '2026-09-08',
rubricVersion: '2.0',
conditions: [
'실측 대상: 메인 페이지 + /contents/eye/cfs 2개 URL, JS 미실행 HTML 기준',
'크롤러 접근성: robots.txt 파싱 + 12개 AI 봇 UA 실제 GET 요청',
'semi/manual 항목은 자동 수집 증거만 첨부하고 미검증 처리, 분모 제외 (사람 보정 후 확정)',
'답변엔진 언급률은 측정하지 않았다 (단발 조회는 무효, 반복 측정은 별도 기준선 단계에서 수행)',
],
results: [
// A. 접근성
{ criterionId: 'A1', level: 3, evidence: '12개 AI 봇 전부 허용. OAI-SearchBot·PerplexityBot·GPTBot UA로 GET → 전부 200', source: 'robots.txt: User-agent: * / Disallow: /admin/' },
{ criterionId: 'A2', level: 3, evidence: 'Server: Microsoft-IIS/10.0 직접 응답, Cloudflare 헤더 없음, AI UA 챌린지 없음' },
{ criterionId: 'A3', level: 3, evidence: '서버 렌더링. JS 미실행 HTML에서 본문 텍스트 14,079자 추출' },
{ criterionId: 'A4', level: 1, evidence: '변형 간 최종 URL 불일치(중복 콘텐츠 위험): [\'https://k-wonjin.co.kr\', \'https://www.k-wonjin.co.kr\']' },
{ criterionId: 'A5', level: 1, evidence: '/sitemap.xml 200이나 robots.txt에 Sitemap 미선언. URL 132개' },
{ criterionId: 'A6', level: 'unverified', evidence: '[manual] Bing Webmaster Tools 등록 여부는 오너 계정 접근 필요 (또는 site: 검색 수동 확인)' },
{ criterionId: 'A7', level: 3, evidence: 'TTFB 0.094s / 초기 HTML 153KB. 시술 페이지 145KB. 모두 기준 이내' },
// B. 엔티티
{ criterionId: 'B1', level: 2, evidence: 'JSON-LD 4블록 전부 유효 (@graph 미사용)' },
{ criterionId: 'B2', level: 1, evidence: 'ItemList + Organization만 존재. MedicalClinic/LocalBusiness 없음 → 주소·전화·진료시간이 구조화되어 있지 않음' },
{ criterionId: 'B3', level: 0, evidence: 'Physician/Attorney 스키마 없음. 전문가 정보는 HTML 텍스트·이미지로만 존재' },
{ criterionId: 'B4', level: 3, evidence: '주소 단일 표기: "서울시 서초구 강남대로 419 파고다타워 12". 전화 6종: 02-3477-3300, 023480-3573, 02392-0330' },
{ criterionId: 'B5', level: 3, evidence: 'sameAs 10개 (SNS·버티컬·지도 연결)' },
{ criterionId: 'B6', level: 2, evidence: 'rel=canonical self-referencing 존재' },
{ criterionId: 'B7', level: 0, evidence: '다국어 페이지 흔적(https://www.wonjinbeauty.com/en/) 있으나 hreflang 없음. 미연결' },
// C. 콘텐츠
{ criterionId: 'C1', level: 0, evidence: "홈 본문 1,999자에 \"원진성형외과는 …에 있는 … 병원입니다\" 형태의 정의문 없음. 소개 문구(25년 헤리티지·강남역)는 메인 비주얼 이미지 alt 에만 있고, 소개 페이지(/hospitalinfo/about) 첫 단락도 슬로건형", source: "evidence/wonjin/pages/home.json · hospitalinfo-about.json (2026-09-07)" },
{ criterionId: 'C2', level: 0, evidence: 'FAQ·자주 묻는 질문·Q&A 섹션 탐지 안 됨 (메인·시술 페이지)' },
{ criterionId: 'C3', level: 0, evidence: '메인 H1 0개: 없음. 시술 페이지 H1 없음' },
{ criterionId: 'C4', level: 2, evidence: "눈매교정(CFS) 페이지에 수술 시간 2시간·단기 수면 또는 부분 마취·실밥 제거 7일·일상생활 3일 텍스트 존재. 트임(오픈아이) 40분·5~7일. 쌍꺼풀·눈매교정(글램아이·더블유착) 페이지는 수치 없음. 가격 표기 0회(비급여 안내 페이지는 별도)", source: "https://www.k-wonjin.co.kr/contents/eye/cfs 원본 HTML 파싱 (2026-09-07 근거 수집)" },
{ criterionId: 'C5', level: 0, evidence: 'HTML <table> 없음. 비교 정보는 이미지로 추정 (이미지 표 여부는 수동 확인)' },
{ criterionId: 'C6', level: 1, evidence: '최신 갱신 신호 2025-02-18 (sitemap lastmod 2025-02-18). 18개월 전. dateModified 마크업 없음' },
{ criterionId: 'C7', level: 2, evidence: "의료진 상세 페이지 17명의 직함·전문의 여부·경력(원장당 12~23줄)이 HTML 텍스트로 존재. 학술 활동 페이지 3,760자. 단 Physician 스키마·저자 표기는 없어 구조화되지 않음", source: "evidence/wonjin/doctors.json (2026-09-07)" },
{ criterionId: 'C8', level: 'unverified', evidence: '[manual] 핵심 페이지 단락 샘플 10개의 상호·시술명 포함 비율 수동 채점 필요' },
// D. 표면
{ criterionId: 'D1', level: 'unverified', evidence: "강남언니 프로필은 공개 페이지 수동 실측 필요 (후기 수·의료진·이벤트·갱신일). 홈페이지 sameAs 에 버티컬 링크 포함 여부는 확인됨(10개 중)" },
{ criterionId: 'D2', level: 'unverified', evidence: '[manual] Google Maps 검색으로 GBP 소유·리뷰·NAP 수동 실측 필요' },
{ criterionId: 'D3', level: 2, evidence: "자체 YouTube 채널 @wjwonjin 영상 736편·구독 1.5만·누적 조회 3,113만(2026-09-08 API 집계). 인스타그램 3계정·페이스북·네이버 블로그(popokpop) 존재. 채널 sameAs 10개로 홈페이지와 연결됨. 단 홈페이지 내 외부 링크는 JS 렌더라 HTML에서 미노출", source: "YouTube Data API v3 channels.list, clinic registry (2026-09-08)" },
{ criterionId: 'D4', level: 'unverified', evidence: '[manual] 홈페이지·버티컬·GBP·플레이스 NAP 대조표 수동 작성 필요' },
{ criterionId: 'D5', level: 'unverified', evidence: '[semi·사람 판정 필요] 사이트에 네이버 플레이스 링크 없음. 플레이스 존재·홈페이지 역연결·리뷰 수 수동 확인' },
{ criterionId: 'D6', level: 0, evidence: 'Wikidata에서 "원진성형외과" 검색 결과 없음' },
// E. 측정
{ criterionId: 'E1', level: 'unverified', evidence: '[manual] 서버 로그 접근 필요 (AI 크롤러 히트 + IP 검증)' },
{ criterionId: 'E2', level: 'unverified', evidence: '[manual] GA4 접근 필요 (AI 유입 커스텀 채널그룹 여부)' },
{ criterionId: 'E3', level: 'unverified', evidence: '[manual] GSC 접근 필요 (AI Overviews 노출)' },
{ criterionId: 'E4', level: 'unverified', evidence: '[manual] 기준선 스팟체크 미실시 (질의 10개 × 5회 반복은 별도 단계)' },
// F. 위생
{ criterionId: 'F1', level: 0, evidence: '메인 페이지 이미지 45개 중 28개(62%) alt 누락 또는 빈 값' },
{ criterionId: 'F2', level: 'unverified', evidence: "Server: Microsoft-IIS/10.0, ASP.NET 계열 자체 제작 추정(meta generator 없음). CMS 버전·보안 패치 여부 판정 불가" },
{ criterionId: 'F3', level: 3, evidence: '초기 HTML 153KB (300KB 미만)' },
{ criterionId: 'F4', level: 2, evidence: 'viewport meta 존재, 반응형. CWV 미측정' },
],
keyFindings: [
{
title: "크롤러 접근은 열려 있습니다. 서버 렌더링이라 AI가 본문을 읽습니다",
detail: "robots.txt가 AI 검색봇 12종을 모두 허용하고, IIS가 본문을 서버에서 렌더링해 JS 없이도 14,079자를 읽을 수 있습니다. TTFB 0.09초, 초기 HTML 153KB로 가볍습니다. 다만 www 유무에 따라 최종 URL이 갈라지고(정본 미수렴), sitemap이 robots.txt에 선언돼 있지 않습니다.",
severity: "good",
},
{
title: "연결은 됐지만 병원 자체가 스키마로 정의돼 있지 않습니다",
detail: "Organization.sameAs 10개로 SNS·지도·버티컬을 잘 묶었고 주소 표기도 한 가지입니다. 그러나 MedicalClinic·Physician 스키마가 없어 주소·전화·진료시간·의료진 17명이 구조화돼 있지 않고, 전화번호는 6종이 섞여 있습니다. 영문 사이트(wonjinbeauty.com)는 hreflang으로 연결되지 않았습니다.",
severity: "critical",
},
{
title: "인용할 문장이 부족합니다. H1도 표도 정의문도 없습니다",
detail: "메인·시술 페이지에 H1이 없고 HTML 표가 없으며 병원 정의문도 없습니다. 눈매교정(CFS)·트임 페이지에는 수술 시간·마취·실밥·일상 복귀 수치가 텍스트로 있어 인용 구조의 출발점이 될 수 있지만, 쌍꺼풀·눈매교정 나머지 페이지는 수치가 없습니다. 최신 갱신 신호가 2025-02-18(sitemap)로 18개월 전입니다.",
severity: "critical",
},
{
title: "유튜브는 강합니다. 736편·누적 3,113만 회",
detail: "설명형 롱폼(눈성형 관리법·중년 눈성형 비교·지방흡입 QnA 등)이 있어 글의 근거 영상으로 쓸 수 있습니다. 다만 상위 조회 영상의 다수가 브랜드 필름·연예인·전후 형식이라 인용용 정보형 영상은 10편 안팎입니다. 이 채널이 원진의 가장 큰 오픈웹 자산입니다.",
severity: "warning",
},
{
title: "이미지 alt 62% 누락, 의료진 경력은 텍스트지만 구조화는 안 됨",
detail: "메인 이미지 45개 중 28개가 alt 없이 실려 AI가 이미지 내용을 읽지 못합니다. 의료진 17명의 경력은 텍스트로 있어(원장당 12~23줄) Physician 스키마만 붙이면 바로 엔티티가 됩니다. 강남언니·GBP·네이버 플레이스는 이번 자동 채점 범위 밖이라 수동 실측이 남아 있습니다.",
severity: "warning",
},
],
actions: [
{ priority: "P0", title: "정본 URL 수렴 + sitemap 선언", detail: "k-wonjin.co.kr → www.k-wonjin.co.kr 로 301 통일, robots.txt 에 Sitemap: 선언, sitemap lastmod 갱신. 전화번호를 대표번호 1개로 통일.", criterionIds: ["A4", "A5", "B4"], effort: "1일" },
{ priority: "P0", title: "MedicalClinic + Physician 스키마", detail: "Organization 을 MedicalClinic 으로 승격(address·telephone·openingHoursSpecification·medicalSpecialty). 의료진 17명 Physician 스키마(이름·직함·전문의·프로필 URL). 영문 사이트와 hreflang 상호 연결.", criterionIds: ["B2", "B3", "B7"], effort: "1주" },
{ priority: "P1", title: "시술 페이지 인용 구조: H1·표·FAQ", detail: "시술 페이지마다 H1 1개, 수술 시간·마취·실밥·일상 복귀를 HTML 표로, FAQ 5문항 + FAQPage 스키마. CFS·트임 페이지의 수치 형식을 다른 눈·코·윤곽 페이지로 확산. 메인에 병원 정의문 한 단락.", criterionIds: ["C1", "C2", "C3", "C4", "C5"], effort: "2~4주" },
{ priority: "P1", title: "이미지 alt 일괄 정비 + 갱신 신호", detail: "메인 28개 이미지 alt 작성(무엇을 찍은 사진인지 사실만). 페이지에 dateModified 마크업, sitemap lastmod 를 실제 수정일로.", criterionIds: ["F1", "C6"], effort: "1주" },
{ priority: "P1", title: "서포터즈 사이트로 오픈웹 원문 공급", detail: "자동 빌드 미리보기(supporters-wonjin.vercel.app)의 글 6편을 병원이 검토·승인하면 색인 허용 도메인으로 발행. 유튜브 설명 영상 10편을 글에 연결. 이후 질문 뱅크 기준으로 편집 캘린더 운영.", criterionIds: ["C2", "C4", "C5", "D3"], effort: "2~4주" },
{ priority: "P2", title: "표면 실측과 측정 인프라", detail: "강남언니·GBP·네이버 플레이스 NAP 대조표 작성, GA4 AI 유입 채널그룹, GSC AI Overviews 확인, 서버 로그의 AI 크롤러 히트 계측. Bing Webmaster 등록.", criterionIds: ["D1", "D2", "D4", "D5", "E1", "E2", "E3", "A6"], effort: "지속" },
],
notDoing: [
{ item: 'llms.txt 제작', reason: 'Google 공식(2026-06) 효과 0, 채택률 0.13%, 서버 로그에 요청 자체가 없음. 위약이다.' },
{ item: '"스키마 넣으면 AI가 인용합니다" 약속', reason: '인과 증거 없음. 스키마는 엔티티 식별을 돕는 위생 조치로만 설명한다.' },
{ item: '단발 조회로 순위·노출 보고', reason: 'LLM 답변 분산 10~34%. 반복 측정 + 신뢰구간으로만 보고한다.' },
{ item: '답변엔진 UI 자동 조회', reason: 'OpenAI·Perplexity 약관 위반. 주력 측정은 오너가 소유한 신호(로그·GA4)로 한다.' },
{ item: '네이버 블로그 증량', reason: 'blog.naver.com robots.txt가 AI 크롤링을 전면 금지. 글로벌 AI 답변 기여도 0. 네이버 AI 브리핑은 별도 트랙.' },
],
};