/** * 원진성형외과 (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 없음. 비교 정보는 이미지로 추정 (이미지 표 여부는 수동 확인)' }, { 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 브리핑은 별도 트랙.' }, ], };