/** * 뷰성형외과 (viewclinic.com) AEO/GEO 진단 결과 * 실측일: 2026-08-28 · 도구: crawler_audit.py + curl + HTML 파서 * 2026-08-31 audit_aeo_geo.py 재채점 반영: A5(2→3)·B4(2→1)·C6(1→3)·D6(unverified→0) * — 기존 수작업 실측의 샘플링 누락 보정 (post-sitemap만 확인, 시술 페이지 meta 미확인 등) * 미검증 항목은 'unverified'. 오너 접근(GA4·GSC·Bing) 또는 수동 확인이 필요하다. * 2026-09-07 재검증(v1.1): 프리저베 페이지에 FAQ 7문항 + FAQPage 스키마와 수술시간·마취·회복 텍스트가 있어 C2(0→2)·C4(1→2) 정정. * blog.viewclinic.com은 2026-09-07까지 발행 중이고 AI 봇 14종을 명시 허용하므로 '블로그 정지' 판정을 철회. 총점 50→54(C). */ import type { DiscoveryResult } from '../types/discovery'; export const DISCOVERY_VIEWCLINIC: DiscoveryResult = { id: 'viewclinic', clinicName: '뷰성형외과', url: 'https://www.viewclinic.com', industry: '성형외과 (강남 신논현)', auditedAt: '2026-09-07', rubricVersion: '2.0', conditions: [ '실측 대상: 메인 페이지 + /breast/main/ (가슴성형) 2개 URL, JS 미실행 HTML 기준', '크롤러 접근성: robots.txt 파싱 + 12개 AI 봇 UA 실제 GET 요청', '강남언니·Google 비즈니스 프로필은 공개 페이지를 실측(2026-08-28). GBP 소유권 클레임 여부·인사이트와 측정 인프라(GA4·GSC·Bing·서버로그)는 오너 접근 필요 → 미검증 처리, 분모 제외', '답변엔진 언급률은 측정하지 않았다 (단발 조회는 무효, 반복 측정은 별도 기준선 단계에서 수행)', '2026-08-31 자동 채점기(audit_aeo_geo.py) 재채점으로 A5·B4·C6·D6 4항목 보정 (전체 sitemap·시술 페이지 meta·Wikidata까지 실측 범위 확장)', '2026-09-07 재검증(v1.1): 홈·프리저베·가슴·코·오시는길 5개 URL 원본 HTML 재수집. 프리저베 페이지의 FAQ 7문항(FAQPage 스키마 유효, 모바일 분기로 2문항 중복)과 수술시간 20~40분·마취·회복 1~3일 텍스트를 확인해 C2·C4 정정. blog.viewclinic.com은 2026-09-07 게시까지 활발하고 robots.txt가 AI 봇 14종을 명시 허용. 총점 50→54(C). GBP 항목(D2·D4)은 2026-08-28 실측값 유지, 재확인 필요', ], results: [ // A. 접근성 { criterionId: 'A1', level: 3, evidence: '12개 AI 봇 전부 허용. OAI-SearchBot·PerplexityBot·GPTBot UA로 GET → 전부 200', source: 'robots.txt: User-agent: * / Disallow: /wp-admin/' }, { criterionId: 'A2', level: 3, evidence: 'Server: nginx 직접 응답, Cloudflare 헤더 없음, AI UA 챌린지 없음' }, { criterionId: 'A3', level: 3, evidence: 'WordPress 서버 렌더링. JS 미실행 HTML에서 본문 텍스트 10,757자 추출' }, { criterionId: 'A4', level: 3, evidence: 'http://viewclinic.com → 301 → https://www.viewclinic.com/ 정본 수렴' }, { criterionId: 'A5', level: 3, evidence: 'robots.txt에 sitemap 선언, 200 응답, AIOSEO 3.7.1 동적 생성, URL 3,636개. page/portfolio-sitemap lastmod 최신 2026-08-31. www의 post-sitemap은 2024-05-31에서 멈췄으나 블로그는 별도 서브도메인 blog.viewclinic.com에서 2026-09-07까지 발행 중 (v1.1 정정)' }, { criterionId: 'A6', level: 'unverified', evidence: 'Bing Webmaster Tools 등록 여부는 오너 계정 접근 필요' }, { criterionId: 'A7', level: 2, evidence: 'TTFB 0.135s (양호) / 초기 HTML 838KB (비대). 시술 페이지 862KB' }, // B. 엔티티 { criterionId: 'B1', level: 1, evidence: 'JSON-LD 2블록 중 ItemList 블록이 문법 오류(쉼표 누락, line 11)로 파싱 실패 → 시술 목록 구조화 데이터 전체 무효', source: 'Expecting \',\' delimiter: line 11 column 7' }, { criterionId: 'B2', level: 1, evidence: 'Organization + WebSite + WebPage만 존재. MedicalClinic/LocalBusiness 없음 → 주소·전화·진료시간이 구조화되어 있지 않음' }, { criterionId: 'B3', level: 0, evidence: 'Physician 스키마 없음. 의료진 정보는 HTML 텍스트·이미지로만 존재' }, { criterionId: 'B4', level: 1, evidence: '주소 3가지 표기 혼재: "서울 강남구 봉은사로 107 뷰성형외과 빌딩" / "서울특별시 강남구 봉은사로 107, 뷰성형외과빌딩" / 시술 페이지 "서울시 강남구 봉은사로 107, 뷰성형외과빌딩(논현동…". 전화 02-539-1177·02-539-1132 + 휴대폰 혼재' }, { criterionId: 'B5', level: 0, evidence: 'Organization.sameAs: [] (빈 배열). 푸터에 YouTube·Instagram·Facebook·네이버블로그 링크가 있으나 스키마에 미연결' }, { criterionId: 'B6', level: 2, evidence: 'rel=canonical self-referencing 존재' }, { criterionId: 'B7', level: 0, evidence: '영문 사이트가 별도 도메인(viewplasticsurgery.com, en-US)으로 존재하나 두 사이트 어디에도 hreflang 없음. 다국어 페이지가 있는데 미연결' }, // C. 콘텐츠 { criterionId: 'C1', level: 0, evidence: '메인 첫 화면은 슬라이더·"VIEW SELFIE" 등 라벨. "뷰성형외과는 …에 있는 … 병원입니다" 형태의 정의문 없음. 시술 페이지 첫 텍스트는 오시는길·상담폼' }, { criterionId: 'C2', level: 2, evidence: 'v1.1 정정: 프리저베 페이지(/preserve/)에 FAQ 7문항과 유효한 FAQPage 스키마 존재. 모바일 분기로 2문항이 중복. 메인·가슴성형(/breast/main/)·코성형·오시는길에는 FAQ 없음 → 시술별 확산 전이라 레벨 2', source: 'https://www.viewclinic.com/preserve/ JSON-LD #1 FAQPage (2026-09-07 파싱 성공)' }, { criterionId: 'C3', level: 0, evidence: 'H1 5개: "VIEW SELFIE / VIEW EVENT / VIEW SHORTS / VIEW FILM / VIEW SPECIALITY". 전부 영문 라벨. H2는 같은 문구가 2회씩 중복(모바일/PC 분기). 가슴·코·오시는길 페이지 H1 없음. 프리저베 페이지만 H1 1개 서술형 (2026-09-07 재확인)' }, { criterionId: 'C4', level: 2, evidence: 'v1.1 정정: 프리저베 페이지에 수술시간 20~40분·마취(국소 또는 수면)·회복 1~3일, 코성형 페이지에 수술시간 1~2시간·실밥 7일·일상 5~7일, 안면윤곽 페이지에 1~2시간·전신마취·당일 또는 1일 입원이 텍스트로 있음. 가격대 표기는 없음. 가슴성형 메인(/breast/main/)은 여전히 주장형 문구만' }, { criterionId: 'C5', level: 0, evidence: 'HTML 없음. 비교 정보는 이미지로 추정' }, { criterionId: 'C6', level: 3, evidence: '시술 페이지에 article:modified_time·dateModified 2026-04-17 존재, page/portfolio-sitemap lastmod 최신 2026-08-31. blog.viewclinic.com은 2026-09-07 게시까지 활발 (v1.1 정정: 이전의 "블로그 2024-05 정지"는 www post-sitemap만 본 오판)' }, { criterionId: 'C7', level: 2, evidence: '원장·전문의·의료진 언급 17회, 모티바 글로벌 KOL·보건복지부장관표창·갈더마 방문 등 권위 신호 존재. 단 구조화 안 됨' }, { criterionId: 'C8', level: 1, evidence: 'H2 "철저한 정밀 검진 / ONE_STOP 시스템 / 1:1 전담 마취시스템". 단독으로 떼면 어느 병원의 무엇인지 알 수 없음' }, // D. 표면 { criterionId: 'D1', level: 3, evidence: '강남언니 hospitals/189 등록. 후기 19,373건(2026-09-04 재확인, 08-28 19,316건), 이벤트 52건, 의료진 26명(정재현 9.6·후기 3,236 등), 병원정보 10건(CCTV·마취과 상주), 진료시간 표기', source: 'https://www.gangnamunni.com/hospitals/189' }, { criterionId: 'D2', level: 2, evidence: 'GBP 존재. 평점 4.9(리뷰 901), 소유자 제공 게시물 2일 전(소유·활성). 단 전화번호 미등록("장소의 전화번호 추가" 상태), 웹사이트가 국문 홈페이지가 아닌 viewplasticsurgery.com' }, { criterionId: 'D3', level: 2, evidence: '자체 YouTube 채널 활발(영상 1,215편, 2026-09-04). blog.viewclinic.com 활발(AI 봇 14종 명시 허용, 2026-09-07). 언론 보도 1,137건·매체 254곳(2026-09-04 수집). NAP 불일치로 "일관된 언급" 레벨 3은 보류' }, { criterionId: 'D4', level: 1, evidence: '주소 표기 3종 혼재: 홈페이지 "서울 강남구 봉은사로 107 뷰성형외과 빌딩" / 강남언니 "서울 강남구 봉은사로 107 (논현동)" / GBP "서울특별시 강남구 봉은사로 107". GBP 전화 누락, 웹사이트 도메인 불일치' }, { criterionId: 'D5', level: 2, evidence: '네이버 플레이스 존재(리뷰 776건, 2026-04 INFINITH 리포트 기준). 홈페이지 링크 연결 여부 미확인 → 보수적으로 2' }, { criterionId: 'D6', level: 0, evidence: 'Wikidata에서 "뷰성형외과" 검색 결과 없음 (wbsearchentities ko, 2026-08-31)' }, // E. 측정 { criterionId: 'E1', level: 'unverified', evidence: '서버 로그 접근 필요 (nginx 직접 호스팅, Cloudflare AI Crawl Control 미사용)' }, { criterionId: 'E2', level: 'unverified', evidence: 'GA4 접근 필요' }, { criterionId: 'E3', level: 'unverified', evidence: 'GSC 접근 필요' }, { criterionId: 'E4', level: 0, evidence: '기준선 스팟체크 미실시' }, // F. 위생 { criterionId: 'F1', level: 1, evidence: '이미지 302개 중 111개(37%) alt 누락 또는 빈 값' }, { criterionId: 'F2', level: 0, evidence: 'meta generator: WordPress 5.5.3 (2020-10 출시, 6년 전) + WPBakery. 보안 패치 미적용 위험' }, { criterionId: 'F3', level: 1, evidence: '초기 HTML 838KB (기준 300KB의 2.8배)' }, { criterionId: 'F4', level: 2, evidence: 'viewport meta 존재, 반응형. CWV 미측정' }, ], keyFindings: [ { title: '크롤러 접근은 정상이다. AI가 사이트를 읽을 수 있다', detail: 'robots.txt가 AI 검색봇 12종을 모두 허용하고, Cloudflare 차단도 없으며, WordPress가 본문을 서버에서 렌더링한다. 접근성 카테고리는 상위권. "AI에 안 나오는" 원인은 차단이 아니라 내용에 있다.', severity: 'good', }, { title: '읽어도 "누구인지" 확정할 수 없다', detail: 'MedicalClinic 스키마가 없고 Organization.sameAs가 비어 있으며, 시술 목록 JSON-LD는 쉼표 하나가 빠져 통째로 무효다. 주소 표기도 사이트 안에서 3가지(메인 2종 + 시술 페이지 1종). AI는 "뷰성형외과"라는 이름과 흩어진 사실을 하나의 엔티티로 묶을 근거를 얻지 못한다.', severity: 'critical', }, { title: '인용할 문장이 부족하다 (v1.1: 프리저베 페이지는 예외)', detail: 'H1이 "VIEW SELFIE / VIEW EVENT / VIEW SHORTS…" 5개, HTML 표 0개, 병원 정의문 0개. 가슴성형 페이지의 첫 텍스트는 상담 폼이다. 프리저베 페이지만 H1 1개·FAQ 7문항·수술시간·회복 텍스트를 갖춰 인용 가능한 구조이며, 이 구조를 다른 시술 페이지로 확산하는 것이 과제다. 답변엔진이 패시지 단위로 잘라 가져갈 자기완결적 단락이 존재하지 않는다. 권위 신호(KOL·표창)는 있으나 이미지와 슬로건 안에만 있어 텍스트로 읽히지 않는다.', severity: 'critical', }, { title: '갱신 신호는 살아 있고, 블로그도 발행 중이다 (v1.1 정정)', detail: '시술 페이지의 article:modified_time(2026-04-17)과 sitemap 최신 lastmod(2026-08-31)를 확인했다. 이전 판에서 "블로그 2024-05 정지"로 판정한 것은 www의 post-sitemap만 본 오판이다. 블로그는 별도 서브도메인 blog.viewclinic.com에서 2026-09-07까지 발행 중이고, robots.txt가 OAI-SearchBot·PerplexityBot·GPTBot·ClaudeBot 등 AI 봇 14종을 명시 허용한다. 120문항 실측에서 ChatGPT가 이 블로그를 인용한 것도 이 때문이다. 다만 프리저베를 제외한 시술 페이지에는 FAQ와 수치가 없어 텍스트 근거는 여전히 블로그와 프리저베 한 페이지에 쏠려 있다.', severity: 'good', }, { title: '강남언니는 강하다. GBP는 전화번호가 없고 웹사이트가 다르다', detail: '강남언니에 후기 19,316건·의료진 26명·이벤트 52건으로 병의원 AI 인용의 핵심 표면은 확보됐다. GBP도 4.9점(901 리뷰)에 소유자 게시물이 활성이다. 문제는 NAP다. GBP에 전화번호가 없고, 웹사이트는 viewclinic.com이 아닌 영문 사이트 viewplasticsurgery.com이며, 주소 표기가 표면마다 3종이다. AI가 세 표면을 한 병원으로 묶을 근거가 약하다.', severity: 'warning', }, ], actions: [ { priority: 'P0', title: '깨진 JSON-LD 수정 + MedicalClinic 스키마 삽입', detail: 'ItemList 블록 쉼표 누락 수정(1시간). Organization → MedicalClinic으로 승격하고 address·telephone·openingHoursSpecification·medicalSpecialty·geo 추가. sameAs에 YouTube·Instagram·Facebook·강남언니·네이버플레이스·GBP URL 연결.', criterionIds: ['B1', 'B2', 'B5'], effort: '1일', }, { priority: 'P0', title: 'GBP 전화번호 등록 + 4개 표면 NAP 통일', detail: 'GBP에 02-539-1177 등록, 웹사이트를 viewclinic.com으로 변경(영문 사이트는 hreflang으로 연결). 홈페이지·강남언니·GBP·플레이스 주소를 "서울특별시 강남구 봉은사로 107 뷰성형외과빌딩"으로 통일. 두 도메인 간 hreflang 상호 연결.', criterionIds: ['D2', 'D4', 'B4', 'B7'], effort: '1주', }, { priority: 'P0', title: '측정 인프라 설치 (개선 증명의 전제)', detail: 'GA4 커스텀 채널그룹(chatgpt.com·perplexity.ai·gemini.google.com·copilot·claude.ai) 생성. nginx access.log에서 AI 봇 히트 추출 + IP 검증 파이프라인. GSC·Bing Webmaster 등록 확인 + IndexNow. 질의 10개 × 5회 기준선 스팟체크.', criterionIds: ['E1', 'E2', 'E3', 'E4', 'A6'], effort: '1주', }, { priority: 'P1', title: '메인·시술 페이지에 정의문 + FAQ 도입', detail: '각 핵심 페이지 첫 단락에 "뷰성형외과는 서울 강남 신논현역 1분 거리의 가슴성형·안면윤곽 전문 성형외과로, 마취과 전문의가 상주한다"형 정의문. 시술별 FAQ 5~8개(가격대·수술시간·회복기간·보형물 종류·재수술)를 H3 질문형으로 작성 + FAQPage 스키마.', criterionIds: ['C1', 'C2', 'C4', 'C8'], effort: '2~4주', }, { priority: 'P1', title: 'H1 재설계 + 이미지 속 정보의 텍스트화', detail: '페이지당 H1 1개 서술형("뷰성형외과 UIU 가슴성형: 보형물 선택과 안전 시스템"). 모바일/PC 중복 H2 제거. 보형물 비교·시술 비교를 HTML
로. 의료진 페이지에 전문의 자격·경력·학회를 텍스트 + Physician 스키마로.', criterionIds: ['C3', 'C5', 'C7', 'B3'], effort: '2~4주', }, { priority: 'P1', title: 'WordPress 5.5.3 → 최신 업그레이드', detail: '6년 된 코어는 보안 위험이자 스팸 주입 시 AI 오인용 위험. 업그레이드 후 alt 누락 111개 보완, HTML 무게 절감(WPBakery 인라인 CSS 정리).', criterionIds: ['F2', 'F1', 'F3'], effort: '1주', }, { priority: 'P2', title: '블로그와 시술 페이지 연결 + 오픈웹 시딩', detail: 'blog.viewclinic.com은 발행 중이고 AI 봇을 허용하므로(v1.1 정정) 재가동이 아니라 연결이 과제다. 블로그 글에서 해당 시술 페이지로, 시술 페이지에서 관련 블로그 글로 내부 링크를 걸고, 유튜브 영상을 블로그 글로 전사해 매월 갱신. 티스토리·언론 기고로 naver.com 외 언급 도메인 확보. 네이버 블로그는 AI에 안 보이므로 글로벌 AEO 용도로는 쓰지 않는다.', criterionIds: ['C6', 'D3'], 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 브리핑은 별도 트랙.' }, ], // v2.0 사람 판정. v1.0에 대응 항목이 없는 4개만. 근거는 2026-09-07 수집기(evidence/viewclinic) 원문. 병원 확인 전 초안이다. v2Results: [ { criterionId: 'AEO6', level: 3, evidence: '모든 페이지 하단에 전화 02-539-1177·주소·온라인 상담 폼이 텍스트로 반복되고(수집기 반복 줄), /counsel/reservation/ 예약 페이지와 카카오톡 채널 링크가 있다. 전화·예약·방문 3경로가 텍스트로 연결됨', source: 'evidence/viewclinic/index.json (reservation 5, direction 2)' }, { criterionId: 'GEO1', level: 1, evidence: '"모티바 보형물 국내 사용량 1위(2023, 모티바코리아 전체 수술량 기준)"처럼 집계 주체·시점이 붙은 주장이 일부 있으나, 모티바 그랜드 어워드·KOL·렛미인 등 대부분의 권위 신호는 이미지·슬로건 안에 있고 원문 링크가 없다. "마취과 전문의 상주 43% vs 23.1%" 비교는 출처·기준 시점 없음', source: 'https://www.viewclinic.com/breast/breast-augmentation/motiva/ · /system/safe-surgery/ (2026-09-07)' }, { criterionId: 'GEO6', level: 2, evidence: '수술 전·후 주의사항(부위별 8탭, 9,585자)·애프터케어 프로그램(4,572자)·검진센터 항목·안전수술시스템 절차는 병원 고유 정보다. 다만 표·체크리스트 형태가 없고(C5=0) 회복 일정은 문단에 흩어져 있다', source: 'evidence/viewclinic/pages/system-precautions.json · system-after-care.json' }, { criterionId: 'GEO7', level: 1, evidence: '푸터에 대표·사업자등록번호·주소가 있어 운영 주체는 분명하다. 그러나 홈페이지에 게시한 후기 광고가 수술비 할인 대가를 표시하지 않아 2026-07-12 공정위 시정명령·공표명령을 받았고, 이벤트·전후·후기 섹션이 정보 페이지와 구분 없이 섞여 있다', source: '공정위 2026-07-12 보도 (한국일보 A2026071211050002674) · evidence/viewclinic/facts.draft.json' }, ], };