{
  "version": "1.0.0",
  "observed_date": "2026-09-11",
  "article_url": "https://vlyvly.me/lab/geo-solutions/",
  "states": {
    "applied": {
      "label": "적용",
      "symbol": "✓"
    },
    "partial": {
      "label": "일부 적용",
      "symbol": "△"
    },
    "missing": {
      "label": "미적용",
      "symbol": "✕"
    },
    "na": {
      "label": "해당 없음",
      "symbol": "—"
    },
    "unknown": {
      "label": "미측정",
      "symbol": "?"
    }
  },
  "checks": [
    {
      "id": "title",
      "category": "제목·메타",
      "label": "HTML title",
      "criterion": "비어 있지 않은 HTML title이 1개 이상. SVG title 제외."
    },
    {
      "id": "title_head",
      "category": "제목·메타",
      "label": "title의 head 배치",
      "criterion": "비어 있지 않은 HTML title 중 head 안에 배치한 비율."
    },
    {
      "id": "description",
      "category": "제목·메타",
      "label": "메타 설명",
      "criterion": "비어 있지 않은 meta description 선언."
    },
    {
      "id": "og",
      "category": "제목·메타",
      "label": "OG 제목·설명·이미지",
      "criterion": "og:title, og:description, og:image 중 비어 있지 않은 속성 종류 수 / 3."
    },
    {
      "id": "canonical",
      "category": "제목·메타",
      "label": "canonical 선언",
      "criterion": "비어 있지 않은 link rel=canonical href. URL 적합성·검색엔진 채택 여부는 미판정."
    },
    {
      "id": "lang",
      "category": "제목·메타",
      "label": "HTML 언어 선언",
      "criterion": "html lang 값이 비어 있지 않음. 언어 코드의 정확성은 별도."
    },
    {
      "id": "viewport",
      "category": "제목·메타",
      "label": "반응형 viewport 선언",
      "criterion": "viewport에 width=device-width 선언. 실제 반응형 동작은 별도."
    },
    {
      "id": "h1",
      "category": "의미 구조",
      "label": "H1",
      "criterion": "비어 있지 않은 H1 태그 1개 이상. 저장 DOM 전체, CSS 가시성 미측정."
    },
    {
      "id": "h2",
      "category": "의미 구조",
      "label": "H2",
      "criterion": "비어 있지 않은 H2 태그 1개 이상. 저장 DOM 전체, CSS 가시성 미측정."
    },
    {
      "id": "h3",
      "category": "의미 구조",
      "label": "H3",
      "criterion": "비어 있지 않은 H3 태그 1개 이상. 저장 DOM 전체, CSS 가시성 미측정."
    },
    {
      "id": "main",
      "category": "의미 구조",
      "label": "main 요소",
      "criterion": "HTML main 요소 1개 이상. role 대체 선언과 의미 적합성은 이 항목에서 판정하지 않음."
    },
    {
      "id": "article",
      "category": "의미 구조",
      "label": "article 요소",
      "criterion": "HTML article 요소 1개 이상. role 대체 선언과 의미 적합성은 이 항목에서 판정하지 않음."
    },
    {
      "id": "toc",
      "category": "의미 구조",
      "label": "헤딩으로 이동하는 링크",
      "criterion": "같은 문서의 H1–H6 id로 연결되는 앵커 1개 이상. 목차의 완결성은 별도."
    },
    {
      "id": "schema",
      "category": "구조화 데이터",
      "label": "구조화 데이터 타입",
      "criterion": "JSON-LD @type / microdata itemtype / RDFa typeof 중 비어 있지 않은 값 존재. 스키마 유효성 검증과 구분."
    },
    {
      "id": "jsonld",
      "category": "구조화 데이터",
      "label": "JSON-LD 블록",
      "criterion": "application/ld+json script 1개 이상. 내용의 유효성과 구분."
    },
    {
      "id": "jsonld_parse",
      "category": "구조화 데이터",
      "label": "JSON-LD 문법 파싱",
      "criterion": "JSON 파싱에 성공한 블록 / 전체 JSON-LD 블록. 스키마 필수 속성 검증은 아님."
    },
    {
      "id": "author",
      "category": "구조화 데이터",
      "label": "JSON-LD 작성자 이름",
      "criterion": "파싱한 JSON-LD 노드의 author 문자열 또는 author.name 존재. 본문 저자 표기·실제 작성자 확인과 구분."
    },
    {
      "id": "published",
      "category": "구조화 데이터",
      "label": "JSON-LD 발행일",
      "criterion": "파싱한 JSON-LD 노드의 datePublished 값 존재. 날짜 형식·내용의 사실성은 별도."
    },
    {
      "id": "modified",
      "category": "구조화 데이터",
      "label": "JSON-LD 수정일",
      "criterion": "파싱한 JSON-LD 노드의 dateModified 값 존재. 실제 갱신 여부는 별도."
    },
    {
      "id": "alt",
      "category": "이미지",
      "label": "img alt 속성",
      "criterion": "alt 속성이 있는 img / 전체 img. alt=\"\"도 속성 적용으로 세며 문구 적합성은 별도."
    },
    {
      "id": "dimensions",
      "category": "이미지",
      "label": "img width·height 속성",
      "criterion": "width와 height가 모두 양의 정수인 img / 전체 img. CSS 크기 지정과 실제 CLS는 별도."
    },
    {
      "id": "srcset",
      "category": "이미지",
      "label": "img srcset 사용",
      "criterion": "img가 있으면 비어 있지 않은 srcset 사용 사례 1개 이상. 모든 이미지에 필요한 속성으로 보지 않음."
    },
    {
      "id": "lazy",
      "category": "이미지",
      "label": "img loading=lazy 사용",
      "criterion": "img가 있으면 loading=lazy 사용 사례 1개 이상. 모든 이미지의 지연 로딩을 권장하는 지표가 아님."
    },
    {
      "id": "scripts",
      "category": "스크립트·본문",
      "label": "외부 JS async·defer·module",
      "criterion": "외부 classic/module JS 중 async, defer 또는 type=module 선언 비율. 실행 성능은 별도."
    },
    {
      "id": "table",
      "category": "스크립트·본문",
      "label": "본문 HTML 표",
      "criterion": "추출 본문에 table 1개 이상. 관련 글이 추출 범위에 포함될 수 있음."
    },
    {
      "id": "table_headers",
      "category": "스크립트·본문",
      "label": "본문 표의 th 사용",
      "criterion": "th가 1개 이상 있는 표 / 추출 본문의 전체 표. caption·scope·병합 셀 적합성은 별도."
    },
    {
      "id": "list",
      "category": "스크립트·본문",
      "label": "본문 HTML 목록",
      "criterion": "추출 본문에 ul 또는 ol 1개 이상."
    },
    {
      "id": "external",
      "category": "스크립트·본문",
      "label": "본문 외부 링크",
      "criterion": "추출 본문에 다른 origin으로 가는 HTTP(S) 링크 1개 이상. 출처 신뢰도는 별도."
    },
    {
      "id": "cwv",
      "category": "추가 측정",
      "label": "Core Web Vitals",
      "criterion": "실제 사용자 LCP·INP·CLS 자료가 필요."
    },
    {
      "id": "image_bytes",
      "category": "추가 측정",
      "label": "이미지 압축·전송량",
      "criterion": "이미지 응답의 형식·바이트와 표시 크기를 함께 측정해야 함."
    },
    {
      "id": "bot_access",
      "category": "추가 측정",
      "label": "검색·AI 봇 접근 조건",
      "criterion": "봇별 robots.txt·HTTP·meta/header 정책과 실제 접근을 구분해 확인해야 함."
    }
  ],
  "summary": [
    {
      "id": "google",
      "label": "Google 일반 결과",
      "pages": 9,
      "checks": [
        {
          "check_id": "title",
          "applied": 9,
          "partial": 0,
          "missing": 0,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "title_head",
          "applied": 8,
          "partial": 0,
          "missing": 1,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "description",
          "applied": 8,
          "partial": 0,
          "missing": 1,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "og",
          "applied": 8,
          "partial": 1,
          "missing": 0,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "canonical",
          "applied": 8,
          "partial": 0,
          "missing": 1,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "lang",
          "applied": 8,
          "partial": 0,
          "missing": 1,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "viewport",
          "applied": 9,
          "partial": 0,
          "missing": 0,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "h1",
          "applied": 7,
          "partial": 0,
          "missing": 2,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "h2",
          "applied": 9,
          "partial": 0,
          "missing": 0,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "h3",
          "applied": 8,
          "partial": 0,
          "missing": 1,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "main",
          "applied": 5,
          "partial": 0,
          "missing": 4,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "article",
          "applied": 4,
          "partial": 0,
          "missing": 5,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "toc",
          "applied": 1,
          "partial": 0,
          "missing": 8,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "schema",
          "applied": 8,
          "partial": 0,
          "missing": 1,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "jsonld",
          "applied": 8,
          "partial": 0,
          "missing": 1,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "jsonld_parse",
          "applied": 8,
          "partial": 0,
          "missing": 0,
          "na": 1,
          "unknown": 0
        },
        {
          "check_id": "author",
          "applied": 4,
          "partial": 0,
          "missing": 5,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "published",
          "applied": 6,
          "partial": 0,
          "missing": 3,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "modified",
          "applied": 5,
          "partial": 0,
          "missing": 4,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "alt",
          "applied": 5,
          "partial": 3,
          "missing": 0,
          "na": 1,
          "unknown": 0
        },
        {
          "check_id": "dimensions",
          "applied": 0,
          "partial": 6,
          "missing": 2,
          "na": 1,
          "unknown": 0
        },
        {
          "check_id": "srcset",
          "applied": 3,
          "partial": 0,
          "missing": 5,
          "na": 1,
          "unknown": 0
        },
        {
          "check_id": "lazy",
          "applied": 6,
          "partial": 0,
          "missing": 2,
          "na": 1,
          "unknown": 0
        },
        {
          "check_id": "scripts",
          "applied": 1,
          "partial": 7,
          "missing": 1,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "table",
          "applied": 4,
          "partial": 0,
          "missing": 5,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "table_headers",
          "applied": 4,
          "partial": 0,
          "missing": 0,
          "na": 5,
          "unknown": 0
        },
        {
          "check_id": "list",
          "applied": 8,
          "partial": 0,
          "missing": 1,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "external",
          "applied": 6,
          "partial": 0,
          "missing": 3,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "cwv",
          "applied": 0,
          "partial": 0,
          "missing": 0,
          "na": 0,
          "unknown": 9
        },
        {
          "check_id": "image_bytes",
          "applied": 0,
          "partial": 0,
          "missing": 0,
          "na": 0,
          "unknown": 9
        },
        {
          "check_id": "bot_access",
          "applied": 0,
          "partial": 0,
          "missing": 0,
          "na": 0,
          "unknown": 9
        }
      ]
    },
    {
      "id": "naver",
      "label": "네이버 관련 웹문서",
      "pages": 7,
      "checks": [
        {
          "check_id": "title",
          "applied": 7,
          "partial": 0,
          "missing": 0,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "title_head",
          "applied": 7,
          "partial": 0,
          "missing": 0,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "description",
          "applied": 7,
          "partial": 0,
          "missing": 0,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "og",
          "applied": 7,
          "partial": 0,
          "missing": 0,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "canonical",
          "applied": 6,
          "partial": 0,
          "missing": 1,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "lang",
          "applied": 6,
          "partial": 0,
          "missing": 1,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "viewport",
          "applied": 6,
          "partial": 0,
          "missing": 1,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "h1",
          "applied": 5,
          "partial": 0,
          "missing": 2,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "h2",
          "applied": 6,
          "partial": 0,
          "missing": 1,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "h3",
          "applied": 6,
          "partial": 0,
          "missing": 1,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "main",
          "applied": 4,
          "partial": 0,
          "missing": 3,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "article",
          "applied": 4,
          "partial": 0,
          "missing": 3,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "toc",
          "applied": 1,
          "partial": 0,
          "missing": 6,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "schema",
          "applied": 5,
          "partial": 0,
          "missing": 2,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "jsonld",
          "applied": 5,
          "partial": 0,
          "missing": 2,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "jsonld_parse",
          "applied": 5,
          "partial": 0,
          "missing": 0,
          "na": 2,
          "unknown": 0
        },
        {
          "check_id": "author",
          "applied": 0,
          "partial": 0,
          "missing": 7,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "published",
          "applied": 1,
          "partial": 0,
          "missing": 6,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "modified",
          "applied": 1,
          "partial": 0,
          "missing": 6,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "alt",
          "applied": 5,
          "partial": 2,
          "missing": 0,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "dimensions",
          "applied": 0,
          "partial": 4,
          "missing": 3,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "srcset",
          "applied": 2,
          "partial": 0,
          "missing": 5,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "lazy",
          "applied": 3,
          "partial": 0,
          "missing": 4,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "scripts",
          "applied": 1,
          "partial": 6,
          "missing": 0,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "table",
          "applied": 3,
          "partial": 0,
          "missing": 4,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "table_headers",
          "applied": 2,
          "partial": 0,
          "missing": 1,
          "na": 4,
          "unknown": 0
        },
        {
          "check_id": "list",
          "applied": 6,
          "partial": 0,
          "missing": 1,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "external",
          "applied": 2,
          "partial": 0,
          "missing": 5,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "cwv",
          "applied": 0,
          "partial": 0,
          "missing": 0,
          "na": 0,
          "unknown": 7
        },
        {
          "check_id": "image_bytes",
          "applied": 0,
          "partial": 0,
          "missing": 0,
          "na": 0,
          "unknown": 7
        },
        {
          "check_id": "bot_access",
          "applied": 0,
          "partial": 0,
          "missing": 0,
          "na": 0,
          "unknown": 7
        }
      ]
    },
    {
      "id": "cited",
      "label": "Perplexity 인용 페이지",
      "pages": 3,
      "checks": [
        {
          "check_id": "title",
          "applied": 3,
          "partial": 0,
          "missing": 0,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "title_head",
          "applied": 3,
          "partial": 0,
          "missing": 0,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "description",
          "applied": 3,
          "partial": 0,
          "missing": 0,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "og",
          "applied": 3,
          "partial": 0,
          "missing": 0,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "canonical",
          "applied": 3,
          "partial": 0,
          "missing": 0,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "lang",
          "applied": 3,
          "partial": 0,
          "missing": 0,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "viewport",
          "applied": 3,
          "partial": 0,
          "missing": 0,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "h1",
          "applied": 3,
          "partial": 0,
          "missing": 0,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "h2",
          "applied": 3,
          "partial": 0,
          "missing": 0,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "h3",
          "applied": 3,
          "partial": 0,
          "missing": 0,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "main",
          "applied": 2,
          "partial": 0,
          "missing": 1,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "article",
          "applied": 3,
          "partial": 0,
          "missing": 0,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "toc",
          "applied": 2,
          "partial": 0,
          "missing": 1,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "schema",
          "applied": 3,
          "partial": 0,
          "missing": 0,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "jsonld",
          "applied": 3,
          "partial": 0,
          "missing": 0,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "jsonld_parse",
          "applied": 3,
          "partial": 0,
          "missing": 0,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "author",
          "applied": 3,
          "partial": 0,
          "missing": 0,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "published",
          "applied": 3,
          "partial": 0,
          "missing": 0,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "modified",
          "applied": 3,
          "partial": 0,
          "missing": 0,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "alt",
          "applied": 3,
          "partial": 0,
          "missing": 0,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "dimensions",
          "applied": 0,
          "partial": 3,
          "missing": 0,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "srcset",
          "applied": 2,
          "partial": 0,
          "missing": 1,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "lazy",
          "applied": 3,
          "partial": 0,
          "missing": 0,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "scripts",
          "applied": 1,
          "partial": 2,
          "missing": 0,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "table",
          "applied": 2,
          "partial": 0,
          "missing": 1,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "table_headers",
          "applied": 2,
          "partial": 0,
          "missing": 0,
          "na": 1,
          "unknown": 0
        },
        {
          "check_id": "list",
          "applied": 3,
          "partial": 0,
          "missing": 0,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "external",
          "applied": 3,
          "partial": 0,
          "missing": 0,
          "na": 0,
          "unknown": 0
        },
        {
          "check_id": "cwv",
          "applied": 0,
          "partial": 0,
          "missing": 0,
          "na": 0,
          "unknown": 3
        },
        {
          "check_id": "image_bytes",
          "applied": 0,
          "partial": 0,
          "missing": 0,
          "na": 0,
          "unknown": 3
        },
        {
          "check_id": "bot_access",
          "applied": 0,
          "partial": 0,
          "missing": 0,
          "na": 0,
          "unknown": 3
        }
      ]
    }
  ],
  "searches": [
    {
      "engine": "google",
      "query": "GEO 솔루션",
      "captured_at": "2026-09-11T02:41:07.206Z",
      "total": 9,
      "relevant": 9,
      "irrelevant": 0,
      "records": [
        {
          "page_id": "dbfc99837847ef77",
          "rank": 1,
          "type": "guide",
          "relevance": "relevant"
        },
        {
          "page_id": "80378d64ebe55383",
          "rank": 2,
          "type": "service",
          "relevance": "relevant"
        },
        {
          "page_id": "c55a1b1ef8eddc1d",
          "rank": 3,
          "type": "comparison",
          "relevance": "relevant"
        },
        {
          "page_id": "1c6562a93933d008",
          "rank": 4,
          "type": "guide",
          "relevance": "relevant"
        },
        {
          "page_id": "fb21eb26efd75d12",
          "rank": 5,
          "type": "service",
          "relevance": "relevant"
        },
        {
          "page_id": "428786e5987dbec4",
          "rank": 6,
          "type": "guide",
          "relevance": "relevant"
        },
        {
          "page_id": "16f898ab3a806c48",
          "rank": 7,
          "type": "guide",
          "relevance": "relevant"
        },
        {
          "page_id": "14e53fc7e0c1cf2a",
          "rank": 8,
          "type": "service",
          "relevance": "relevant"
        },
        {
          "page_id": "0bfa65aa59f698d4",
          "rank": 9,
          "type": "comparison",
          "relevance": "relevant"
        }
      ]
    },
    {
      "engine": "naver",
      "query": "GEO 솔루션",
      "captured_at": "2026-09-11T02:41:07.218Z",
      "total": 10,
      "relevant": 7,
      "irrelevant": 3,
      "records": [
        {
          "page_id": "1ac461ac066e08fc",
          "rank": 1,
          "type": "other",
          "relevance": "irrelevant"
        },
        {
          "page_id": "6fb99135154e65cc",
          "rank": 2,
          "type": "other",
          "relevance": "irrelevant"
        },
        {
          "page_id": "935a8bad39aed231",
          "rank": 3,
          "type": "directory",
          "relevance": "irrelevant"
        },
        {
          "page_id": "868c487437f83645",
          "rank": 4,
          "type": "service",
          "relevance": "relevant"
        },
        {
          "page_id": "db888db76c8721f7",
          "rank": 5,
          "type": "service",
          "relevance": "relevant"
        },
        {
          "page_id": "6e1dadd8272b6ac4",
          "rank": 6,
          "type": "service",
          "relevance": "relevant"
        },
        {
          "page_id": "47014a5f3f28cf5c",
          "rank": 7,
          "type": "service",
          "relevance": "relevant"
        },
        {
          "page_id": "f18d3872434dfb29",
          "rank": 8,
          "type": "service",
          "relevance": "relevant"
        },
        {
          "page_id": "54959273951bf734",
          "rank": 9,
          "type": "service",
          "relevance": "relevant"
        },
        {
          "page_id": "7e84e870066cf33b",
          "rank": 10,
          "type": "news",
          "relevance": "relevant"
        }
      ]
    }
  ],
  "answers": [
    {
      "engine": "chatgpt",
      "prompt": "GEO 솔루션을 도입하려면 비용과 준비 사항을 무엇부터 확인해야 하나?",
      "captured_at": "2026-09-11T02:44:25.386Z",
      "inline_occurrences": 11,
      "cited_urls": [
        "https://www.geogen.io/ko",
        "https://developers.google.com/search/updates",
        "https://georank.co.kr/report/geo-agency-selection-guide-why-choosing-the-right-one-matters",
        "https://www.gpto.kr/guides/aeo-geo-pricing-guide",
        "https://georank.co.kr/report/geo-faq-27-questions-ai-search-optimization",
        "https://www.geogen.io/ko/yogeumje",
        "https://developers.google.com/search/docs/appearance/structured-data/recipe",
        "https://wikiap.org/en/articles/korea-geo-agency-comparison-selection-guide",
        "https://searchpolaris.com/blog/how-to-choose-geo-agency/"
      ]
    },
    {
      "engine": "chatgpt",
      "prompt": "한국어 사이트에 쓸 GEO 솔루션은 어떤 기준으로 비교해야 하나?",
      "captured_at": "2026-09-11T02:43:33.098Z",
      "inline_occurrences": 0,
      "cited_urls": []
    },
    {
      "engine": "chatgpt",
      "prompt": "GEO 솔루션은 무엇을 하는 도구인가?",
      "captured_at": "2026-09-11T02:41:07.233Z",
      "inline_occurrences": 0,
      "cited_urls": []
    },
    {
      "engine": "perplexity",
      "prompt": "한국어 사이트에 쓸 GEO 솔루션은 어떤 기준으로 비교해야 하나?",
      "captured_at": "2026-09-11T02:48:06.923Z",
      "inline_occurrences": 6,
      "cited_urls": [
        "https://villion.io/blog/geo-tools-comparison",
        "https://villion.io/blog/korea-geo-agency-solution-guide",
        "https://ainnect.co.kr/blog/insights/choose-geo-agency/"
      ]
    }
  ],
  "pages": [
    {
      "page_id": "dbfc99837847ef77",
      "code": "P01",
      "url": "https://soyoyu.cc/blog/geo-solution-implementation-guide",
      "title": "GEO 솔루션 도입 가이드 2026: AI 검색에서 발견되는 브랜드 만들기 | SOYOYU Blog",
      "domain": "soyoyu.cc",
      "captured_at": "2026-09-11T02:45:45.372Z",
      "type": "guide",
      "relevance": "relevant",
      "related_party": true,
      "cohorts": [
        "google"
      ],
      "headings": {
        "whole": {
          "h1": 1,
          "h2": 11,
          "h3": 32,
          "h4": 4,
          "h5": 0,
          "h6": 0
        },
        "nonempty": {
          "h1": 1,
          "h2": 11,
          "h3": 32,
          "h4": 4,
          "h5": 0,
          "h6": 0
        },
        "extracted": {
          "h1": 1,
          "h2": 11,
          "h3": 32,
          "h4": 0,
          "h5": 0,
          "h6": 0
        }
      },
      "landmarks": {
        "main": 1,
        "article": 7,
        "section": 5,
        "header": 1,
        "nav": 3,
        "aside": 0,
        "footer": 1
      },
      "checks": [
        {
          "check_id": "title",
          "state": "applied",
          "reason": "비어 있지 않은 HTML title 1개."
        },
        {
          "check_id": "title_head",
          "state": "applied",
          "reason": "1개 중 1개. head 밖 title도 별도 제목 보유 항목에서는 인정합니다.",
          "present": 1,
          "total": 1
        },
        {
          "check_id": "description",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "og",
          "state": "applied",
          "reason": "3개 중 3개. 공유 메타의 내용 적합성과 이미지 로딩은 별도입니다.",
          "present": 3,
          "total": 3
        },
        {
          "check_id": "canonical",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "lang",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "viewport",
          "state": "applied",
          "reason": "viewport의 width=device-width 선언을 확인했습니다."
        },
        {
          "check_id": "h1",
          "state": "applied",
          "reason": "전체 1개 / 비어 있지 않은 태그 1개."
        },
        {
          "check_id": "h2",
          "state": "applied",
          "reason": "전체 11개 / 비어 있지 않은 태그 11개."
        },
        {
          "check_id": "h3",
          "state": "applied",
          "reason": "전체 32개 / 비어 있지 않은 태그 32개."
        },
        {
          "check_id": "main",
          "state": "applied",
          "reason": "main 요소 1개."
        },
        {
          "check_id": "article",
          "state": "applied",
          "reason": "article 요소 7개."
        },
        {
          "check_id": "toc",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "schema",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "jsonld",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "jsonld_parse",
          "state": "applied",
          "reason": "7개 중 7개. JSON 문법만 검사했습니다.",
          "present": 7,
          "total": 7
        },
        {
          "check_id": "author",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "published",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "modified",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "alt",
          "state": "na",
          "reason": "대상 요소가 없습니다. 빈 alt 0개. 장식 이미지인지 여부는 판정하지 않았습니다. CSS 배경 이미지는 제외합니다.",
          "present": 0,
          "total": 0
        },
        {
          "check_id": "dimensions",
          "state": "na",
          "reason": "대상 요소가 없습니다. HTML 크기 속성만 확인했습니다.",
          "present": 0,
          "total": 0
        },
        {
          "check_id": "srcset",
          "state": "na",
          "reason": "img 요소가 없습니다."
        },
        {
          "check_id": "lazy",
          "state": "na",
          "reason": "img 요소가 없습니다."
        },
        {
          "check_id": "scripts",
          "state": "partial",
          "reason": "13개 중 11개. JSON 데이터 스크립트·인라인 JS는 제외. 미실행 nomodule 여부는 현재 자료에 없어 별도로 분리하지 않았습니다.",
          "present": 11,
          "total": 13
        },
        {
          "check_id": "table",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "table_headers",
          "state": "applied",
          "reason": "7개 중 7개.",
          "present": 7,
          "total": 7
        },
        {
          "check_id": "list",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "external",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "cwv",
          "state": "unknown",
          "reason": "이번 수집에서는 실제 사용자 성능 자료를 측정하지 않았습니다."
        },
        {
          "check_id": "image_bytes",
          "state": "unknown",
          "reason": "저장 DOM의 파일명·크기 속성만으로 압축 상태를 판단하지 않았습니다."
        },
        {
          "check_id": "bot_access",
          "state": "unknown",
          "reason": "이번 robots 판정은 수집기 VlyvlyResearch 기준입니다. Googlebot·AI 봇 접근이나 색인 상태로 확대하지 않습니다."
        }
      ]
    },
    {
      "page_id": "80378d64ebe55383",
      "code": "P02",
      "url": "https://www.beusable.net/geo",
      "title": "GEO｜Beusable",
      "domain": "beusable.net",
      "captured_at": "2026-09-11T02:45:08.405Z",
      "type": "service",
      "relevance": "relevant",
      "related_party": false,
      "cohorts": [
        "google"
      ],
      "headings": {
        "whole": {
          "h1": 0,
          "h2": 18,
          "h3": 0,
          "h4": 0,
          "h5": 0,
          "h6": 0
        },
        "nonempty": {
          "h1": 0,
          "h2": 18,
          "h3": 0,
          "h4": 0,
          "h5": 0,
          "h6": 0
        },
        "extracted": {
          "h1": 0,
          "h2": 32,
          "h3": 0,
          "h4": 0,
          "h5": 0,
          "h6": 0
        }
      },
      "landmarks": {
        "main": 0,
        "article": 0,
        "section": 0,
        "header": 2,
        "nav": 1,
        "aside": 0,
        "footer": 1
      },
      "checks": [
        {
          "check_id": "title",
          "state": "applied",
          "reason": "비어 있지 않은 HTML title 1개."
        },
        {
          "check_id": "title_head",
          "state": "applied",
          "reason": "1개 중 1개. head 밖 title도 별도 제목 보유 항목에서는 인정합니다.",
          "present": 1,
          "total": 1
        },
        {
          "check_id": "description",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "og",
          "state": "applied",
          "reason": "3개 중 3개. 공유 메타의 내용 적합성과 이미지 로딩은 별도입니다.",
          "present": 3,
          "total": 3
        },
        {
          "check_id": "canonical",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "lang",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "viewport",
          "state": "applied",
          "reason": "viewport의 width=device-width 선언을 확인했습니다."
        },
        {
          "check_id": "h1",
          "state": "missing",
          "reason": "전체 0개 / 비어 있지 않은 태그 0개."
        },
        {
          "check_id": "h2",
          "state": "applied",
          "reason": "전체 18개 / 비어 있지 않은 태그 18개."
        },
        {
          "check_id": "h3",
          "state": "missing",
          "reason": "전체 0개 / 비어 있지 않은 태그 0개."
        },
        {
          "check_id": "main",
          "state": "missing",
          "reason": "main 요소 0개."
        },
        {
          "check_id": "article",
          "state": "missing",
          "reason": "article 요소 0개."
        },
        {
          "check_id": "toc",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "schema",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "jsonld",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "jsonld_parse",
          "state": "applied",
          "reason": "1개 중 1개. JSON 문법만 검사했습니다.",
          "present": 1,
          "total": 1
        },
        {
          "check_id": "author",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "published",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "modified",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "alt",
          "state": "partial",
          "reason": "68개 중 9개. 빈 alt 7개. 장식 이미지인지 여부는 판정하지 않았습니다. CSS 배경 이미지는 제외합니다.",
          "present": 9,
          "total": 68
        },
        {
          "check_id": "dimensions",
          "state": "partial",
          "reason": "68개 중 1개. HTML 크기 속성만 확인했습니다.",
          "present": 1,
          "total": 68
        },
        {
          "check_id": "srcset",
          "state": "missing",
          "reason": "img srcset 사용 여부. picture 대안·후보 URL 동작은 별도입니다."
        },
        {
          "check_id": "lazy",
          "state": "missing",
          "reason": "네이티브 lazy 선언 사용 여부. 화면 내 이미지 위치·JS 지연 로딩은 미판정입니다."
        },
        {
          "check_id": "scripts",
          "state": "partial",
          "reason": "23개 중 18개. JSON 데이터 스크립트·인라인 JS는 제외. 미실행 nomodule 여부는 현재 자료에 없어 별도로 분리하지 않았습니다.",
          "present": 18,
          "total": 23
        },
        {
          "check_id": "table",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "table_headers",
          "state": "na",
          "reason": "대상 요소가 없습니다.",
          "present": 0,
          "total": 0
        },
        {
          "check_id": "list",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "external",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "cwv",
          "state": "unknown",
          "reason": "이번 수집에서는 실제 사용자 성능 자료를 측정하지 않았습니다."
        },
        {
          "check_id": "image_bytes",
          "state": "unknown",
          "reason": "저장 DOM의 파일명·크기 속성만으로 압축 상태를 판단하지 않았습니다."
        },
        {
          "check_id": "bot_access",
          "state": "unknown",
          "reason": "이번 robots 판정은 수집기 VlyvlyResearch 기준입니다. Googlebot·AI 봇 접근이나 색인 상태로 확대하지 않습니다."
        }
      ]
    },
    {
      "page_id": "c55a1b1ef8eddc1d",
      "code": "P03",
      "url": "https://wikidocs.net/346843",
      "title": "09-06. GEO 솔루션 추천: AI 검색 최적화 도구 선택 기준 - 생성형 엔진 최적화(GEO) 실전 교과서: SEO에서 AI 검색 최적화까지",
      "domain": "wikidocs.net",
      "captured_at": "2026-09-11T02:45:39.348Z",
      "type": "comparison",
      "relevance": "relevant",
      "related_party": false,
      "cohorts": [
        "google"
      ],
      "headings": {
        "whole": {
          "h1": 1,
          "h2": 10,
          "h3": 5,
          "h4": 1,
          "h5": 0,
          "h6": 0
        },
        "nonempty": {
          "h1": 1,
          "h2": 10,
          "h3": 5,
          "h4": 1,
          "h5": 0,
          "h6": 0
        },
        "extracted": {
          "h1": 0,
          "h2": 9,
          "h3": 3,
          "h4": 0,
          "h5": 0,
          "h6": 0
        }
      },
      "landmarks": {
        "main": 0,
        "article": 0,
        "section": 0,
        "header": 0,
        "nav": 0,
        "aside": 1,
        "footer": 0
      },
      "checks": [
        {
          "check_id": "title",
          "state": "applied",
          "reason": "비어 있지 않은 HTML title 1개."
        },
        {
          "check_id": "title_head",
          "state": "applied",
          "reason": "1개 중 1개. head 밖 title도 별도 제목 보유 항목에서는 인정합니다.",
          "present": 1,
          "total": 1
        },
        {
          "check_id": "description",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "og",
          "state": "applied",
          "reason": "3개 중 3개. 공유 메타의 내용 적합성과 이미지 로딩은 별도입니다.",
          "present": 3,
          "total": 3
        },
        {
          "check_id": "canonical",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "lang",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "viewport",
          "state": "applied",
          "reason": "viewport의 width=device-width 선언을 확인했습니다."
        },
        {
          "check_id": "h1",
          "state": "applied",
          "reason": "전체 1개 / 비어 있지 않은 태그 1개."
        },
        {
          "check_id": "h2",
          "state": "applied",
          "reason": "전체 10개 / 비어 있지 않은 태그 10개."
        },
        {
          "check_id": "h3",
          "state": "applied",
          "reason": "전체 5개 / 비어 있지 않은 태그 5개."
        },
        {
          "check_id": "main",
          "state": "missing",
          "reason": "main 요소 0개."
        },
        {
          "check_id": "article",
          "state": "missing",
          "reason": "article 요소 0개."
        },
        {
          "check_id": "toc",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "schema",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "jsonld",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "jsonld_parse",
          "state": "na",
          "reason": "대상 요소가 없습니다. JSON 문법만 검사했습니다.",
          "present": 0,
          "total": 0
        },
        {
          "check_id": "author",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "published",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "modified",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "alt",
          "state": "applied",
          "reason": "2개 중 2개. 빈 alt 0개. 장식 이미지인지 여부는 판정하지 않았습니다. CSS 배경 이미지는 제외합니다.",
          "present": 2,
          "total": 2
        },
        {
          "check_id": "dimensions",
          "state": "missing",
          "reason": "2개 중 0개. HTML 크기 속성만 확인했습니다.",
          "present": 0,
          "total": 2
        },
        {
          "check_id": "srcset",
          "state": "missing",
          "reason": "img srcset 사용 여부. picture 대안·후보 URL 동작은 별도입니다."
        },
        {
          "check_id": "lazy",
          "state": "applied",
          "reason": "네이티브 lazy 선언 사용 여부. 화면 내 이미지 위치·JS 지연 로딩은 미판정입니다."
        },
        {
          "check_id": "scripts",
          "state": "partial",
          "reason": "28개 중 14개. JSON 데이터 스크립트·인라인 JS는 제외. 미실행 nomodule 여부는 현재 자료에 없어 별도로 분리하지 않았습니다.",
          "present": 14,
          "total": 28
        },
        {
          "check_id": "table",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "table_headers",
          "state": "applied",
          "reason": "3개 중 3개.",
          "present": 3,
          "total": 3
        },
        {
          "check_id": "list",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "external",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "cwv",
          "state": "unknown",
          "reason": "이번 수집에서는 실제 사용자 성능 자료를 측정하지 않았습니다."
        },
        {
          "check_id": "image_bytes",
          "state": "unknown",
          "reason": "저장 DOM의 파일명·크기 속성만으로 압축 상태를 판단하지 않았습니다."
        },
        {
          "check_id": "bot_access",
          "state": "unknown",
          "reason": "이번 robots 판정은 수집기 VlyvlyResearch 기준입니다. Googlebot·AI 봇 접근이나 색인 상태로 확대하지 않습니다."
        }
      ]
    },
    {
      "page_id": "1c6562a93933d008",
      "code": "P04",
      "url": "https://blog.ab180.co/posts/geo-optimization-strategy-ai-brand-visibility",
      "title": "AB180 Blog | GEO 최적화 전략, AI 검색 브랜드 가시성을 높이고 확인하는 팁",
      "domain": "ab180.co",
      "captured_at": "2026-09-11T02:44:34.705Z",
      "type": "guide",
      "relevance": "relevant",
      "related_party": false,
      "cohorts": [
        "google"
      ],
      "headings": {
        "whole": {
          "h1": 1,
          "h2": 5,
          "h3": 10,
          "h4": 0,
          "h5": 0,
          "h6": 0
        },
        "nonempty": {
          "h1": 1,
          "h2": 5,
          "h3": 10,
          "h4": 0,
          "h5": 0,
          "h6": 0
        },
        "extracted": {
          "h1": 0,
          "h2": 5,
          "h3": 10,
          "h4": 0,
          "h5": 0,
          "h6": 0
        }
      },
      "landmarks": {
        "main": 0,
        "article": 0,
        "section": 4,
        "header": 0,
        "nav": 5,
        "aside": 0,
        "footer": 0
      },
      "checks": [
        {
          "check_id": "title",
          "state": "applied",
          "reason": "비어 있지 않은 HTML title 1개."
        },
        {
          "check_id": "title_head",
          "state": "applied",
          "reason": "1개 중 1개. head 밖 title도 별도 제목 보유 항목에서는 인정합니다.",
          "present": 1,
          "total": 1
        },
        {
          "check_id": "description",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "og",
          "state": "applied",
          "reason": "3개 중 3개. 공유 메타의 내용 적합성과 이미지 로딩은 별도입니다.",
          "present": 3,
          "total": 3
        },
        {
          "check_id": "canonical",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "lang",
          "state": "missing",
          "reason": "저장 DOM의 html에 lang 속성이 없습니다."
        },
        {
          "check_id": "viewport",
          "state": "applied",
          "reason": "viewport의 width=device-width 선언을 확인했습니다."
        },
        {
          "check_id": "h1",
          "state": "applied",
          "reason": "전체 1개 / 비어 있지 않은 태그 1개."
        },
        {
          "check_id": "h2",
          "state": "applied",
          "reason": "전체 5개 / 비어 있지 않은 태그 5개."
        },
        {
          "check_id": "h3",
          "state": "applied",
          "reason": "전체 10개 / 비어 있지 않은 태그 10개."
        },
        {
          "check_id": "main",
          "state": "missing",
          "reason": "main 요소 0개."
        },
        {
          "check_id": "article",
          "state": "missing",
          "reason": "article 요소 0개."
        },
        {
          "check_id": "toc",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "schema",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "jsonld",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "jsonld_parse",
          "state": "applied",
          "reason": "1개 중 1개. JSON 문법만 검사했습니다.",
          "present": 1,
          "total": 1
        },
        {
          "check_id": "author",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "published",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "modified",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "alt",
          "state": "partial",
          "reason": "19개 중 16개. 빈 alt 16개. 장식 이미지인지 여부는 판정하지 않았습니다. CSS 배경 이미지는 제외합니다.",
          "present": 16,
          "total": 19
        },
        {
          "check_id": "dimensions",
          "state": "partial",
          "reason": "19개 중 3개. HTML 크기 속성만 확인했습니다.",
          "present": 3,
          "total": 19
        },
        {
          "check_id": "srcset",
          "state": "applied",
          "reason": "img srcset 사용 여부. picture 대안·후보 URL 동작은 별도입니다."
        },
        {
          "check_id": "lazy",
          "state": "applied",
          "reason": "네이티브 lazy 선언 사용 여부. 화면 내 이미지 위치·JS 지연 로딩은 미판정입니다."
        },
        {
          "check_id": "scripts",
          "state": "partial",
          "reason": "23개 중 9개. JSON 데이터 스크립트·인라인 JS는 제외. 미실행 nomodule 여부는 현재 자료에 없어 별도로 분리하지 않았습니다.",
          "present": 9,
          "total": 23
        },
        {
          "check_id": "table",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "table_headers",
          "state": "applied",
          "reason": "1개 중 1개.",
          "present": 1,
          "total": 1
        },
        {
          "check_id": "list",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "external",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "cwv",
          "state": "unknown",
          "reason": "이번 수집에서는 실제 사용자 성능 자료를 측정하지 않았습니다."
        },
        {
          "check_id": "image_bytes",
          "state": "unknown",
          "reason": "저장 DOM의 파일명·크기 속성만으로 압축 상태를 판단하지 않았습니다."
        },
        {
          "check_id": "bot_access",
          "state": "unknown",
          "reason": "이번 robots 판정은 수집기 VlyvlyResearch 기준입니다. Googlebot·AI 봇 접근이나 색인 상태로 확대하지 않습니다."
        }
      ]
    },
    {
      "page_id": "fb21eb26efd75d12",
      "code": "P05",
      "url": "https://www.osangtech.co.kr/geo.html",
      "title": "(주)오상테크놀로지 | GEO 솔루션",
      "domain": "osangtech.co.kr",
      "captured_at": "2026-09-11T02:45:49.915Z",
      "type": "service",
      "relevance": "relevant",
      "related_party": false,
      "cohorts": [
        "google"
      ],
      "headings": {
        "whole": {
          "h1": 1,
          "h2": 8,
          "h3": 27,
          "h4": 37,
          "h5": 33,
          "h6": 6
        },
        "nonempty": {
          "h1": 1,
          "h2": 8,
          "h3": 27,
          "h4": 37,
          "h5": 29,
          "h6": 6
        },
        "extracted": {
          "h1": 2,
          "h2": 8,
          "h3": 26,
          "h4": 37,
          "h5": 29,
          "h6": 6
        }
      },
      "landmarks": {
        "main": 1,
        "article": 0,
        "section": 7,
        "header": 7,
        "nav": 2,
        "aside": 0,
        "footer": 2
      },
      "checks": [
        {
          "check_id": "title",
          "state": "applied",
          "reason": "비어 있지 않은 HTML title 1개."
        },
        {
          "check_id": "title_head",
          "state": "missing",
          "reason": "1개 중 0개. head 밖 title도 별도 제목 보유 항목에서는 인정합니다.",
          "present": 0,
          "total": 1
        },
        {
          "check_id": "description",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "og",
          "state": "partial",
          "reason": "3개 중 2개. 공유 메타의 내용 적합성과 이미지 로딩은 별도입니다.",
          "present": 2,
          "total": 3
        },
        {
          "check_id": "canonical",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "lang",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "viewport",
          "state": "applied",
          "reason": "viewport의 width=device-width 선언을 확인했습니다."
        },
        {
          "check_id": "h1",
          "state": "applied",
          "reason": "전체 1개 / 비어 있지 않은 태그 1개."
        },
        {
          "check_id": "h2",
          "state": "applied",
          "reason": "전체 8개 / 비어 있지 않은 태그 8개."
        },
        {
          "check_id": "h3",
          "state": "applied",
          "reason": "전체 27개 / 비어 있지 않은 태그 27개."
        },
        {
          "check_id": "main",
          "state": "applied",
          "reason": "main 요소 1개."
        },
        {
          "check_id": "article",
          "state": "missing",
          "reason": "article 요소 0개."
        },
        {
          "check_id": "toc",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "schema",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "jsonld",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "jsonld_parse",
          "state": "applied",
          "reason": "1개 중 1개. JSON 문법만 검사했습니다.",
          "present": 1,
          "total": 1
        },
        {
          "check_id": "author",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "published",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "modified",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "alt",
          "state": "applied",
          "reason": "14개 중 14개. 빈 alt 13개. 장식 이미지인지 여부는 판정하지 않았습니다. CSS 배경 이미지는 제외합니다.",
          "present": 14,
          "total": 14
        },
        {
          "check_id": "dimensions",
          "state": "missing",
          "reason": "14개 중 0개. HTML 크기 속성만 확인했습니다.",
          "present": 0,
          "total": 14
        },
        {
          "check_id": "srcset",
          "state": "missing",
          "reason": "img srcset 사용 여부. picture 대안·후보 URL 동작은 별도입니다."
        },
        {
          "check_id": "lazy",
          "state": "missing",
          "reason": "네이티브 lazy 선언 사용 여부. 화면 내 이미지 위치·JS 지연 로딩은 미판정입니다."
        },
        {
          "check_id": "scripts",
          "state": "missing",
          "reason": "6개 중 0개. JSON 데이터 스크립트·인라인 JS는 제외. 미실행 nomodule 여부는 현재 자료에 없어 별도로 분리하지 않았습니다.",
          "present": 0,
          "total": 6
        },
        {
          "check_id": "table",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "table_headers",
          "state": "na",
          "reason": "대상 요소가 없습니다.",
          "present": 0,
          "total": 0
        },
        {
          "check_id": "list",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "external",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "cwv",
          "state": "unknown",
          "reason": "이번 수집에서는 실제 사용자 성능 자료를 측정하지 않았습니다."
        },
        {
          "check_id": "image_bytes",
          "state": "unknown",
          "reason": "저장 DOM의 파일명·크기 속성만으로 압축 상태를 판단하지 않았습니다."
        },
        {
          "check_id": "bot_access",
          "state": "unknown",
          "reason": "이번 robots 판정은 수집기 VlyvlyResearch 기준입니다. Googlebot·AI 봇 접근이나 색인 상태로 확대하지 않습니다."
        }
      ]
    },
    {
      "page_id": "428786e5987dbec4",
      "code": "P06",
      "url": "https://www.adriel.com/ko/blog/geo-guide",
      "title": "AI 검색엔진 시대 GEO 최적화 가이드 | 아드리엘",
      "domain": "adriel.com",
      "captured_at": "2026-09-11T02:44:37.055Z",
      "type": "guide",
      "relevance": "relevant",
      "related_party": false,
      "cohorts": [
        "google"
      ],
      "headings": {
        "whole": {
          "h1": 2,
          "h2": 5,
          "h3": 5,
          "h4": 0,
          "h5": 0,
          "h6": 0
        },
        "nonempty": {
          "h1": 2,
          "h2": 5,
          "h3": 5,
          "h4": 0,
          "h5": 0,
          "h6": 0
        },
        "extracted": {
          "h1": 0,
          "h2": 5,
          "h3": 5,
          "h4": 0,
          "h5": 0,
          "h6": 0
        }
      },
      "landmarks": {
        "main": 0,
        "article": 1,
        "section": 0,
        "header": 1,
        "nav": 5,
        "aside": 0,
        "footer": 0
      },
      "checks": [
        {
          "check_id": "title",
          "state": "applied",
          "reason": "비어 있지 않은 HTML title 1개."
        },
        {
          "check_id": "title_head",
          "state": "applied",
          "reason": "1개 중 1개. head 밖 title도 별도 제목 보유 항목에서는 인정합니다.",
          "present": 1,
          "total": 1
        },
        {
          "check_id": "description",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "og",
          "state": "applied",
          "reason": "3개 중 3개. 공유 메타의 내용 적합성과 이미지 로딩은 별도입니다.",
          "present": 3,
          "total": 3
        },
        {
          "check_id": "canonical",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "lang",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "viewport",
          "state": "applied",
          "reason": "viewport의 width=device-width 선언을 확인했습니다."
        },
        {
          "check_id": "h1",
          "state": "applied",
          "reason": "전체 2개 / 비어 있지 않은 태그 2개."
        },
        {
          "check_id": "h2",
          "state": "applied",
          "reason": "전체 5개 / 비어 있지 않은 태그 5개."
        },
        {
          "check_id": "h3",
          "state": "applied",
          "reason": "전체 5개 / 비어 있지 않은 태그 5개."
        },
        {
          "check_id": "main",
          "state": "missing",
          "reason": "main 요소 0개."
        },
        {
          "check_id": "article",
          "state": "applied",
          "reason": "article 요소 1개."
        },
        {
          "check_id": "toc",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "schema",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "jsonld",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "jsonld_parse",
          "state": "applied",
          "reason": "1개 중 1개. JSON 문법만 검사했습니다.",
          "present": 1,
          "total": 1
        },
        {
          "check_id": "author",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "published",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "modified",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "alt",
          "state": "partial",
          "reason": "55개 중 49개. 빈 alt 46개. 장식 이미지인지 여부는 판정하지 않았습니다. CSS 배경 이미지는 제외합니다.",
          "present": 49,
          "total": 55
        },
        {
          "check_id": "dimensions",
          "state": "partial",
          "reason": "55개 중 3개. HTML 크기 속성만 확인했습니다.",
          "present": 3,
          "total": 55
        },
        {
          "check_id": "srcset",
          "state": "applied",
          "reason": "img srcset 사용 여부. picture 대안·후보 URL 동작은 별도입니다."
        },
        {
          "check_id": "lazy",
          "state": "applied",
          "reason": "네이티브 lazy 선언 사용 여부. 화면 내 이미지 위치·JS 지연 로딩은 미판정입니다."
        },
        {
          "check_id": "scripts",
          "state": "partial",
          "reason": "140개 중 127개. JSON 데이터 스크립트·인라인 JS는 제외. 미실행 nomodule 여부는 현재 자료에 없어 별도로 분리하지 않았습니다.",
          "present": 127,
          "total": 140
        },
        {
          "check_id": "table",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "table_headers",
          "state": "na",
          "reason": "대상 요소가 없습니다.",
          "present": 0,
          "total": 0
        },
        {
          "check_id": "list",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "external",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "cwv",
          "state": "unknown",
          "reason": "이번 수집에서는 실제 사용자 성능 자료를 측정하지 않았습니다."
        },
        {
          "check_id": "image_bytes",
          "state": "unknown",
          "reason": "저장 DOM의 파일명·크기 속성만으로 압축 상태를 판단하지 않았습니다."
        },
        {
          "check_id": "bot_access",
          "state": "unknown",
          "reason": "이번 robots 판정은 수집기 VlyvlyResearch 기준입니다. Googlebot·AI 봇 접근이나 색인 상태로 확대하지 않습니다."
        }
      ]
    },
    {
      "page_id": "16f898ab3a806c48",
      "code": "P07",
      "url": "https://seo.tbwakorea.com/geo-consulting/solution/",
      "title": "GEO 솔루션의 오해: 콘텐츠의 양산으로 AI 검색 최적화가 불가능한 이유",
      "domain": "tbwakorea.com",
      "captured_at": "2026-09-11T02:44:30.649Z",
      "type": "guide",
      "relevance": "relevant",
      "related_party": false,
      "cohorts": [
        "google"
      ],
      "headings": {
        "whole": {
          "h1": 1,
          "h2": 9,
          "h3": 12,
          "h4": 5,
          "h5": 0,
          "h6": 0
        },
        "nonempty": {
          "h1": 1,
          "h2": 9,
          "h3": 12,
          "h4": 5,
          "h5": 0,
          "h6": 0
        },
        "extracted": {
          "h1": 1,
          "h2": 9,
          "h3": 12,
          "h4": 0,
          "h5": 0,
          "h6": 0
        }
      },
      "landmarks": {
        "main": 1,
        "article": 0,
        "section": 2,
        "header": 2,
        "nav": 1,
        "aside": 0,
        "footer": 1
      },
      "checks": [
        {
          "check_id": "title",
          "state": "applied",
          "reason": "비어 있지 않은 HTML title 1개."
        },
        {
          "check_id": "title_head",
          "state": "applied",
          "reason": "1개 중 1개. head 밖 title도 별도 제목 보유 항목에서는 인정합니다.",
          "present": 1,
          "total": 1
        },
        {
          "check_id": "description",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "og",
          "state": "applied",
          "reason": "3개 중 3개. 공유 메타의 내용 적합성과 이미지 로딩은 별도입니다.",
          "present": 3,
          "total": 3
        },
        {
          "check_id": "canonical",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "lang",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "viewport",
          "state": "applied",
          "reason": "viewport의 width=device-width 선언을 확인했습니다."
        },
        {
          "check_id": "h1",
          "state": "applied",
          "reason": "전체 1개 / 비어 있지 않은 태그 1개."
        },
        {
          "check_id": "h2",
          "state": "applied",
          "reason": "전체 9개 / 비어 있지 않은 태그 9개."
        },
        {
          "check_id": "h3",
          "state": "applied",
          "reason": "전체 12개 / 비어 있지 않은 태그 12개."
        },
        {
          "check_id": "main",
          "state": "applied",
          "reason": "main 요소 1개."
        },
        {
          "check_id": "article",
          "state": "missing",
          "reason": "article 요소 0개."
        },
        {
          "check_id": "toc",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "schema",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "jsonld",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "jsonld_parse",
          "state": "applied",
          "reason": "1개 중 1개. JSON 문법만 검사했습니다.",
          "present": 1,
          "total": 1
        },
        {
          "check_id": "author",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "published",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "modified",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "alt",
          "state": "applied",
          "reason": "25개 중 25개. 빈 alt 6개. 장식 이미지인지 여부는 판정하지 않았습니다. CSS 배경 이미지는 제외합니다.",
          "present": 25,
          "total": 25
        },
        {
          "check_id": "dimensions",
          "state": "partial",
          "reason": "25개 중 19개. HTML 크기 속성만 확인했습니다.",
          "present": 19,
          "total": 25
        },
        {
          "check_id": "srcset",
          "state": "applied",
          "reason": "img srcset 사용 여부. picture 대안·후보 URL 동작은 별도입니다."
        },
        {
          "check_id": "lazy",
          "state": "applied",
          "reason": "네이티브 lazy 선언 사용 여부. 화면 내 이미지 위치·JS 지연 로딩은 미판정입니다."
        },
        {
          "check_id": "scripts",
          "state": "partial",
          "reason": "54개 중 8개. JSON 데이터 스크립트·인라인 JS는 제외. 미실행 nomodule 여부는 현재 자료에 없어 별도로 분리하지 않았습니다.",
          "present": 8,
          "total": 54
        },
        {
          "check_id": "table",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "table_headers",
          "state": "na",
          "reason": "대상 요소가 없습니다.",
          "present": 0,
          "total": 0
        },
        {
          "check_id": "list",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "external",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "cwv",
          "state": "unknown",
          "reason": "이번 수집에서는 실제 사용자 성능 자료를 측정하지 않았습니다."
        },
        {
          "check_id": "image_bytes",
          "state": "unknown",
          "reason": "저장 DOM의 파일명·크기 속성만으로 압축 상태를 판단하지 않았습니다."
        },
        {
          "check_id": "bot_access",
          "state": "unknown",
          "reason": "이번 robots 판정은 수집기 VlyvlyResearch 기준입니다. Googlebot·AI 봇 접근이나 색인 상태로 확대하지 않습니다."
        }
      ]
    },
    {
      "page_id": "14e53fc7e0c1cf2a",
      "code": "P08",
      "url": "https://bizspring.co.kr/geo_consulting",
      "title": "GEO(생성형 엔진 최적화) 컨설팅 | AI 검색 시대 브랜드 노출 최적화 | 비즈스프링",
      "domain": "bizspring.co.kr",
      "captured_at": "2026-09-11T02:44:28.991Z",
      "type": "service",
      "relevance": "relevant",
      "related_party": false,
      "cohorts": [
        "google"
      ],
      "headings": {
        "whole": {
          "h1": 1,
          "h2": 10,
          "h3": 24,
          "h4": 0,
          "h5": 0,
          "h6": 0
        },
        "nonempty": {
          "h1": 1,
          "h2": 10,
          "h3": 24,
          "h4": 0,
          "h5": 0,
          "h6": 0
        },
        "extracted": {
          "h1": 2,
          "h2": 14,
          "h3": 21,
          "h4": 0,
          "h5": 0,
          "h6": 0
        }
      },
      "landmarks": {
        "main": 1,
        "article": 1,
        "section": 11,
        "header": 12,
        "nav": 2,
        "aside": 0,
        "footer": 1
      },
      "checks": [
        {
          "check_id": "title",
          "state": "applied",
          "reason": "비어 있지 않은 HTML title 1개."
        },
        {
          "check_id": "title_head",
          "state": "applied",
          "reason": "1개 중 1개. head 밖 title도 별도 제목 보유 항목에서는 인정합니다.",
          "present": 1,
          "total": 1
        },
        {
          "check_id": "description",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "og",
          "state": "applied",
          "reason": "3개 중 3개. 공유 메타의 내용 적합성과 이미지 로딩은 별도입니다.",
          "present": 3,
          "total": 3
        },
        {
          "check_id": "canonical",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "lang",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "viewport",
          "state": "applied",
          "reason": "viewport의 width=device-width 선언을 확인했습니다."
        },
        {
          "check_id": "h1",
          "state": "applied",
          "reason": "전체 1개 / 비어 있지 않은 태그 1개."
        },
        {
          "check_id": "h2",
          "state": "applied",
          "reason": "전체 10개 / 비어 있지 않은 태그 10개."
        },
        {
          "check_id": "h3",
          "state": "applied",
          "reason": "전체 24개 / 비어 있지 않은 태그 24개."
        },
        {
          "check_id": "main",
          "state": "applied",
          "reason": "main 요소 1개."
        },
        {
          "check_id": "article",
          "state": "applied",
          "reason": "article 요소 1개."
        },
        {
          "check_id": "toc",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "schema",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "jsonld",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "jsonld_parse",
          "state": "applied",
          "reason": "4개 중 4개. JSON 문법만 검사했습니다.",
          "present": 4,
          "total": 4
        },
        {
          "check_id": "author",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "published",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "modified",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "alt",
          "state": "applied",
          "reason": "29개 중 29개. 빈 alt 6개. 장식 이미지인지 여부는 판정하지 않았습니다. CSS 배경 이미지는 제외합니다.",
          "present": 29,
          "total": 29
        },
        {
          "check_id": "dimensions",
          "state": "partial",
          "reason": "29개 중 2개. HTML 크기 속성만 확인했습니다.",
          "present": 2,
          "total": 29
        },
        {
          "check_id": "srcset",
          "state": "missing",
          "reason": "img srcset 사용 여부. picture 대안·후보 URL 동작은 별도입니다."
        },
        {
          "check_id": "lazy",
          "state": "applied",
          "reason": "네이티브 lazy 선언 사용 여부. 화면 내 이미지 위치·JS 지연 로딩은 미판정입니다."
        },
        {
          "check_id": "scripts",
          "state": "applied",
          "reason": "25개 중 25개. JSON 데이터 스크립트·인라인 JS는 제외. 미실행 nomodule 여부는 현재 자료에 없어 별도로 분리하지 않았습니다.",
          "present": 25,
          "total": 25
        },
        {
          "check_id": "table",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "table_headers",
          "state": "applied",
          "reason": "1개 중 1개.",
          "present": 1,
          "total": 1
        },
        {
          "check_id": "list",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "external",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "cwv",
          "state": "unknown",
          "reason": "이번 수집에서는 실제 사용자 성능 자료를 측정하지 않았습니다."
        },
        {
          "check_id": "image_bytes",
          "state": "unknown",
          "reason": "저장 DOM의 파일명·크기 속성만으로 압축 상태를 판단하지 않았습니다."
        },
        {
          "check_id": "bot_access",
          "state": "unknown",
          "reason": "이번 robots 판정은 수집기 VlyvlyResearch 기준입니다. Googlebot·AI 봇 접근이나 색인 상태로 확대하지 않습니다."
        }
      ]
    },
    {
      "page_id": "0bfa65aa59f698d4",
      "code": "P09",
      "url": "https://blog.bluedot.so/three-types-of-domestic-geo-generative-engine-optimization-platforms-and-their-features/",
      "title": "국내 GEO(Generative Engine Optimization) / AEO 플랫폼 3가지",
      "domain": "bluedot.so",
      "captured_at": "2026-09-11T02:44:26.938Z",
      "type": "comparison",
      "relevance": "relevant",
      "related_party": false,
      "cohorts": [
        "google"
      ],
      "headings": {
        "whole": {
          "h1": 0,
          "h2": 2,
          "h3": 13,
          "h4": 0,
          "h5": 0,
          "h6": 0
        },
        "nonempty": {
          "h1": 0,
          "h2": 2,
          "h3": 13,
          "h4": 0,
          "h5": 0,
          "h6": 0
        },
        "extracted": {
          "h1": 0,
          "h2": 2,
          "h3": 13,
          "h4": 0,
          "h5": 0,
          "h6": 0
        }
      },
      "landmarks": {
        "main": 1,
        "article": 4,
        "section": 4,
        "header": 2,
        "nav": 1,
        "aside": 0,
        "footer": 0
      },
      "checks": [
        {
          "check_id": "title",
          "state": "applied",
          "reason": "비어 있지 않은 HTML title 1개."
        },
        {
          "check_id": "title_head",
          "state": "applied",
          "reason": "1개 중 1개. head 밖 title도 별도 제목 보유 항목에서는 인정합니다.",
          "present": 1,
          "total": 1
        },
        {
          "check_id": "description",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "og",
          "state": "applied",
          "reason": "3개 중 3개. 공유 메타의 내용 적합성과 이미지 로딩은 별도입니다.",
          "present": 3,
          "total": 3
        },
        {
          "check_id": "canonical",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "lang",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "viewport",
          "state": "applied",
          "reason": "viewport의 width=device-width 선언을 확인했습니다."
        },
        {
          "check_id": "h1",
          "state": "missing",
          "reason": "전체 0개 / 비어 있지 않은 태그 0개."
        },
        {
          "check_id": "h2",
          "state": "applied",
          "reason": "전체 2개 / 비어 있지 않은 태그 2개."
        },
        {
          "check_id": "h3",
          "state": "applied",
          "reason": "전체 13개 / 비어 있지 않은 태그 13개."
        },
        {
          "check_id": "main",
          "state": "applied",
          "reason": "main 요소 1개."
        },
        {
          "check_id": "article",
          "state": "applied",
          "reason": "article 요소 4개."
        },
        {
          "check_id": "toc",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "schema",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "jsonld",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "jsonld_parse",
          "state": "applied",
          "reason": "2개 중 2개. JSON 문법만 검사했습니다.",
          "present": 2,
          "total": 2
        },
        {
          "check_id": "author",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "published",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "modified",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "alt",
          "state": "applied",
          "reason": "15개 중 15개. 빈 alt 6개. 장식 이미지인지 여부는 판정하지 않았습니다. CSS 배경 이미지는 제외합니다.",
          "present": 15,
          "total": 15
        },
        {
          "check_id": "dimensions",
          "state": "partial",
          "reason": "15개 중 4개. HTML 크기 속성만 확인했습니다.",
          "present": 4,
          "total": 15
        },
        {
          "check_id": "srcset",
          "state": "missing",
          "reason": "img srcset 사용 여부. picture 대안·후보 URL 동작은 별도입니다."
        },
        {
          "check_id": "lazy",
          "state": "applied",
          "reason": "네이티브 lazy 선언 사용 여부. 화면 내 이미지 위치·JS 지연 로딩은 미판정입니다."
        },
        {
          "check_id": "scripts",
          "state": "partial",
          "reason": "12개 중 7개. JSON 데이터 스크립트·인라인 JS는 제외. 미실행 nomodule 여부는 현재 자료에 없어 별도로 분리하지 않았습니다.",
          "present": 7,
          "total": 12
        },
        {
          "check_id": "table",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "table_headers",
          "state": "na",
          "reason": "대상 요소가 없습니다.",
          "present": 0,
          "total": 0
        },
        {
          "check_id": "list",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "external",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "cwv",
          "state": "unknown",
          "reason": "이번 수집에서는 실제 사용자 성능 자료를 측정하지 않았습니다."
        },
        {
          "check_id": "image_bytes",
          "state": "unknown",
          "reason": "저장 DOM의 파일명·크기 속성만으로 압축 상태를 판단하지 않았습니다."
        },
        {
          "check_id": "bot_access",
          "state": "unknown",
          "reason": "이번 robots 판정은 수집기 VlyvlyResearch 기준입니다. Googlebot·AI 봇 접근이나 색인 상태로 확대하지 않습니다."
        }
      ]
    },
    {
      "page_id": "1ac461ac066e08fc",
      "code": "P10",
      "url": "https://www.doosangeosolution.com/",
      "title": "두산지오솔루션",
      "domain": "doosangeosolution.com",
      "captured_at": "2026-09-11T02:44:31.899Z",
      "type": "other",
      "relevance": "irrelevant",
      "related_party": false,
      "cohorts": [],
      "headings": {
        "whole": {
          "h1": 1,
          "h2": 0,
          "h3": 0,
          "h4": 0,
          "h5": 0,
          "h6": 0
        },
        "nonempty": {
          "h1": 1,
          "h2": 0,
          "h3": 0,
          "h4": 0,
          "h5": 0,
          "h6": 0
        },
        "extracted": {
          "h1": 0,
          "h2": 0,
          "h3": 0,
          "h4": 0,
          "h5": 0,
          "h6": 0
        }
      },
      "landmarks": {
        "main": 1,
        "article": 0,
        "section": 4,
        "header": 1,
        "nav": 1,
        "aside": 0,
        "footer": 1
      },
      "checks": [
        {
          "check_id": "title",
          "state": "applied",
          "reason": "비어 있지 않은 HTML title 1개."
        },
        {
          "check_id": "title_head",
          "state": "applied",
          "reason": "1개 중 1개. head 밖 title도 별도 제목 보유 항목에서는 인정합니다.",
          "present": 1,
          "total": 1
        },
        {
          "check_id": "description",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "og",
          "state": "partial",
          "reason": "3개 중 2개. 공유 메타의 내용 적합성과 이미지 로딩은 별도입니다.",
          "present": 2,
          "total": 3
        },
        {
          "check_id": "canonical",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "lang",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "viewport",
          "state": "applied",
          "reason": "viewport의 width=device-width 선언을 확인했습니다."
        },
        {
          "check_id": "h1",
          "state": "applied",
          "reason": "전체 1개 / 비어 있지 않은 태그 1개."
        },
        {
          "check_id": "h2",
          "state": "missing",
          "reason": "전체 0개 / 비어 있지 않은 태그 0개."
        },
        {
          "check_id": "h3",
          "state": "missing",
          "reason": "전체 0개 / 비어 있지 않은 태그 0개."
        },
        {
          "check_id": "main",
          "state": "applied",
          "reason": "main 요소 1개."
        },
        {
          "check_id": "article",
          "state": "missing",
          "reason": "article 요소 0개."
        },
        {
          "check_id": "toc",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "schema",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "jsonld",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "jsonld_parse",
          "state": "na",
          "reason": "대상 요소가 없습니다. JSON 문법만 검사했습니다.",
          "present": 0,
          "total": 0
        },
        {
          "check_id": "author",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "published",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "modified",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "alt",
          "state": "applied",
          "reason": "4개 중 4개. 빈 alt 4개. 장식 이미지인지 여부는 판정하지 않았습니다. CSS 배경 이미지는 제외합니다.",
          "present": 4,
          "total": 4
        },
        {
          "check_id": "dimensions",
          "state": "missing",
          "reason": "4개 중 0개. HTML 크기 속성만 확인했습니다.",
          "present": 0,
          "total": 4
        },
        {
          "check_id": "srcset",
          "state": "missing",
          "reason": "img srcset 사용 여부. picture 대안·후보 URL 동작은 별도입니다."
        },
        {
          "check_id": "lazy",
          "state": "missing",
          "reason": "네이티브 lazy 선언 사용 여부. 화면 내 이미지 위치·JS 지연 로딩은 미판정입니다."
        },
        {
          "check_id": "scripts",
          "state": "partial",
          "reason": "11개 중 2개. JSON 데이터 스크립트·인라인 JS는 제외. 미실행 nomodule 여부는 현재 자료에 없어 별도로 분리하지 않았습니다.",
          "present": 2,
          "total": 11
        },
        {
          "check_id": "table",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "table_headers",
          "state": "na",
          "reason": "대상 요소가 없습니다.",
          "present": 0,
          "total": 0
        },
        {
          "check_id": "list",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "external",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "cwv",
          "state": "unknown",
          "reason": "이번 수집에서는 실제 사용자 성능 자료를 측정하지 않았습니다."
        },
        {
          "check_id": "image_bytes",
          "state": "unknown",
          "reason": "저장 DOM의 파일명·크기 속성만으로 압축 상태를 판단하지 않았습니다."
        },
        {
          "check_id": "bot_access",
          "state": "unknown",
          "reason": "이번 robots 판정은 수집기 VlyvlyResearch 기준입니다. Googlebot·AI 봇 접근이나 색인 상태로 확대하지 않습니다."
        }
      ]
    },
    {
      "page_id": "6fb99135154e65cc",
      "code": "P11",
      "url": "https://www.work24.go.kr/wk/a/b/1500/empDetailAuthView.do?infoTypeGroup=tb_workinfoworknet&wantedAuthNo=K152122607240011",
      "title": "채용정보 상세 | 채용정보 상세검색 | 일자리 찾기 | 채용정보",
      "domain": "work24.go.kr",
      "captured_at": "2026-09-11T02:45:03.240Z",
      "type": "other",
      "relevance": "irrelevant",
      "related_party": false,
      "cohorts": [],
      "headings": {
        "whole": {
          "h1": 8,
          "h2": 4,
          "h3": 12,
          "h4": 5,
          "h5": 11,
          "h6": 0
        },
        "nonempty": {
          "h1": 7,
          "h2": 4,
          "h3": 12,
          "h4": 5,
          "h5": 11,
          "h6": 0
        },
        "extracted": {
          "h1": 0,
          "h2": 1,
          "h3": 0,
          "h4": 0,
          "h5": 0,
          "h6": 0
        }
      },
      "landmarks": {
        "main": 0,
        "article": 8,
        "section": 12,
        "header": 6,
        "nav": 1,
        "aside": 0,
        "footer": 3
      },
      "checks": [
        {
          "check_id": "title",
          "state": "applied",
          "reason": "비어 있지 않은 HTML title 1개."
        },
        {
          "check_id": "title_head",
          "state": "applied",
          "reason": "1개 중 1개. head 밖 title도 별도 제목 보유 항목에서는 인정합니다.",
          "present": 1,
          "total": 1
        },
        {
          "check_id": "description",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "og",
          "state": "missing",
          "reason": "3개 중 0개. 공유 메타의 내용 적합성과 이미지 로딩은 별도입니다.",
          "present": 0,
          "total": 3
        },
        {
          "check_id": "canonical",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "lang",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "viewport",
          "state": "applied",
          "reason": "viewport의 width=device-width 선언을 확인했습니다."
        },
        {
          "check_id": "h1",
          "state": "applied",
          "reason": "전체 8개 / 비어 있지 않은 태그 7개."
        },
        {
          "check_id": "h2",
          "state": "applied",
          "reason": "전체 4개 / 비어 있지 않은 태그 4개."
        },
        {
          "check_id": "h3",
          "state": "applied",
          "reason": "전체 12개 / 비어 있지 않은 태그 12개."
        },
        {
          "check_id": "main",
          "state": "missing",
          "reason": "main 요소 0개."
        },
        {
          "check_id": "article",
          "state": "applied",
          "reason": "article 요소 8개."
        },
        {
          "check_id": "toc",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "schema",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "jsonld",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "jsonld_parse",
          "state": "na",
          "reason": "대상 요소가 없습니다. JSON 문법만 검사했습니다.",
          "present": 0,
          "total": 0
        },
        {
          "check_id": "author",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "published",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "modified",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "alt",
          "state": "applied",
          "reason": "34개 중 34개. 빈 alt 25개. 장식 이미지인지 여부는 판정하지 않았습니다. CSS 배경 이미지는 제외합니다.",
          "present": 34,
          "total": 34
        },
        {
          "check_id": "dimensions",
          "state": "missing",
          "reason": "34개 중 0개. HTML 크기 속성만 확인했습니다.",
          "present": 0,
          "total": 34
        },
        {
          "check_id": "srcset",
          "state": "missing",
          "reason": "img srcset 사용 여부. picture 대안·후보 URL 동작은 별도입니다."
        },
        {
          "check_id": "lazy",
          "state": "missing",
          "reason": "네이티브 lazy 선언 사용 여부. 화면 내 이미지 위치·JS 지연 로딩은 미판정입니다."
        },
        {
          "check_id": "scripts",
          "state": "partial",
          "reason": "47개 중 8개. JSON 데이터 스크립트·인라인 JS는 제외. 미실행 nomodule 여부는 현재 자료에 없어 별도로 분리하지 않았습니다.",
          "present": 8,
          "total": 47
        },
        {
          "check_id": "table",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "table_headers",
          "state": "applied",
          "reason": "6개 중 6개.",
          "present": 6,
          "total": 6
        },
        {
          "check_id": "list",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "external",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "cwv",
          "state": "unknown",
          "reason": "이번 수집에서는 실제 사용자 성능 자료를 측정하지 않았습니다."
        },
        {
          "check_id": "image_bytes",
          "state": "unknown",
          "reason": "저장 DOM의 파일명·크기 속성만으로 압축 상태를 판단하지 않았습니다."
        },
        {
          "check_id": "bot_access",
          "state": "unknown",
          "reason": "이번 robots 판정은 수집기 VlyvlyResearch 기준입니다. Googlebot·AI 봇 접근이나 색인 상태로 확대하지 않습니다."
        }
      ]
    },
    {
      "page_id": "935a8bad39aed231",
      "code": "P12",
      "url": "http://www.xn--2s2bi8mdf16o89e.com/",
      "title": "지오솔루션 * 측량장비",
      "domain": "xn--2s2bi8mdf16o89e.com",
      "captured_at": "2026-09-11T02:45:13.449Z",
      "type": "directory",
      "relevance": "irrelevant",
      "related_party": false,
      "cohorts": [],
      "headings": {
        "whole": {
          "h1": 0,
          "h2": 0,
          "h3": 0,
          "h4": 0,
          "h5": 0,
          "h6": 0
        },
        "nonempty": {
          "h1": 0,
          "h2": 0,
          "h3": 0,
          "h4": 0,
          "h5": 0,
          "h6": 0
        },
        "extracted": {
          "h1": 0,
          "h2": 0,
          "h3": 0,
          "h4": 0,
          "h5": 0,
          "h6": 0
        }
      },
      "landmarks": {
        "main": 0,
        "article": 0,
        "section": 0,
        "header": 0,
        "nav": 0,
        "aside": 0,
        "footer": 0
      },
      "checks": [
        {
          "check_id": "title",
          "state": "applied",
          "reason": "비어 있지 않은 HTML title 1개."
        },
        {
          "check_id": "title_head",
          "state": "applied",
          "reason": "1개 중 1개. head 밖 title도 별도 제목 보유 항목에서는 인정합니다.",
          "present": 1,
          "total": 1
        },
        {
          "check_id": "description",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "og",
          "state": "partial",
          "reason": "3개 중 1개. 공유 메타의 내용 적합성과 이미지 로딩은 별도입니다.",
          "present": 1,
          "total": 3
        },
        {
          "check_id": "canonical",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "lang",
          "state": "missing",
          "reason": "저장 DOM의 html에 lang 속성이 없습니다."
        },
        {
          "check_id": "viewport",
          "state": "missing",
          "reason": "viewport의 width=device-width 선언을 확인했습니다."
        },
        {
          "check_id": "h1",
          "state": "missing",
          "reason": "전체 0개 / 비어 있지 않은 태그 0개."
        },
        {
          "check_id": "h2",
          "state": "missing",
          "reason": "전체 0개 / 비어 있지 않은 태그 0개."
        },
        {
          "check_id": "h3",
          "state": "missing",
          "reason": "전체 0개 / 비어 있지 않은 태그 0개."
        },
        {
          "check_id": "main",
          "state": "missing",
          "reason": "main 요소 0개."
        },
        {
          "check_id": "article",
          "state": "missing",
          "reason": "article 요소 0개."
        },
        {
          "check_id": "toc",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "schema",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "jsonld",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "jsonld_parse",
          "state": "na",
          "reason": "대상 요소가 없습니다. JSON 문법만 검사했습니다.",
          "present": 0,
          "total": 0
        },
        {
          "check_id": "author",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "published",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "modified",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "alt",
          "state": "missing",
          "reason": "143개 중 0개. 빈 alt 0개. 장식 이미지인지 여부는 판정하지 않았습니다. CSS 배경 이미지는 제외합니다.",
          "present": 0,
          "total": 143
        },
        {
          "check_id": "dimensions",
          "state": "partial",
          "reason": "143개 중 54개. HTML 크기 속성만 확인했습니다.",
          "present": 54,
          "total": 143
        },
        {
          "check_id": "srcset",
          "state": "missing",
          "reason": "img srcset 사용 여부. picture 대안·후보 URL 동작은 별도입니다."
        },
        {
          "check_id": "lazy",
          "state": "missing",
          "reason": "네이티브 lazy 선언 사용 여부. 화면 내 이미지 위치·JS 지연 로딩은 미판정입니다."
        },
        {
          "check_id": "scripts",
          "state": "partial",
          "reason": "14개 중 1개. JSON 데이터 스크립트·인라인 JS는 제외. 미실행 nomodule 여부는 현재 자료에 없어 별도로 분리하지 않았습니다.",
          "present": 1,
          "total": 14
        },
        {
          "check_id": "table",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "table_headers",
          "state": "missing",
          "reason": "15개 중 0개.",
          "present": 0,
          "total": 15
        },
        {
          "check_id": "list",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "external",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "cwv",
          "state": "unknown",
          "reason": "이번 수집에서는 실제 사용자 성능 자료를 측정하지 않았습니다."
        },
        {
          "check_id": "image_bytes",
          "state": "unknown",
          "reason": "저장 DOM의 파일명·크기 속성만으로 압축 상태를 판단하지 않았습니다."
        },
        {
          "check_id": "bot_access",
          "state": "unknown",
          "reason": "이번 robots 판정은 수집기 VlyvlyResearch 기준입니다. Googlebot·AI 봇 접근이나 색인 상태로 확대하지 않습니다."
        }
      ]
    },
    {
      "page_id": "868c487437f83645",
      "code": "P13",
      "url": "https://thebarum.co.kr/geoMarketing",
      "title": "GEO마케팅",
      "domain": "thebarum.co.kr",
      "captured_at": "2026-09-11T02:45:11.440Z",
      "type": "service",
      "relevance": "relevant",
      "related_party": false,
      "cohorts": [
        "naver"
      ],
      "headings": {
        "whole": {
          "h1": 0,
          "h2": 9,
          "h3": 1,
          "h4": 2,
          "h5": 0,
          "h6": 0
        },
        "nonempty": {
          "h1": 0,
          "h2": 9,
          "h3": 1,
          "h4": 2,
          "h5": 0,
          "h6": 0
        },
        "extracted": {
          "h1": 0,
          "h2": 6,
          "h3": 1,
          "h4": 1,
          "h5": 0,
          "h6": 0
        }
      },
      "landmarks": {
        "main": 1,
        "article": 0,
        "section": 0,
        "header": 0,
        "nav": 1,
        "aside": 0,
        "footer": 1
      },
      "checks": [
        {
          "check_id": "title",
          "state": "applied",
          "reason": "비어 있지 않은 HTML title 1개."
        },
        {
          "check_id": "title_head",
          "state": "applied",
          "reason": "1개 중 1개. head 밖 title도 별도 제목 보유 항목에서는 인정합니다.",
          "present": 1,
          "total": 1
        },
        {
          "check_id": "description",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "og",
          "state": "applied",
          "reason": "3개 중 3개. 공유 메타의 내용 적합성과 이미지 로딩은 별도입니다.",
          "present": 3,
          "total": 3
        },
        {
          "check_id": "canonical",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "lang",
          "state": "missing",
          "reason": "저장 DOM의 html에 lang 속성이 없습니다."
        },
        {
          "check_id": "viewport",
          "state": "applied",
          "reason": "viewport의 width=device-width 선언을 확인했습니다."
        },
        {
          "check_id": "h1",
          "state": "missing",
          "reason": "전체 0개 / 비어 있지 않은 태그 0개."
        },
        {
          "check_id": "h2",
          "state": "applied",
          "reason": "전체 9개 / 비어 있지 않은 태그 9개."
        },
        {
          "check_id": "h3",
          "state": "applied",
          "reason": "전체 1개 / 비어 있지 않은 태그 1개."
        },
        {
          "check_id": "main",
          "state": "applied",
          "reason": "main 요소 1개."
        },
        {
          "check_id": "article",
          "state": "missing",
          "reason": "article 요소 0개."
        },
        {
          "check_id": "toc",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "schema",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "jsonld",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "jsonld_parse",
          "state": "na",
          "reason": "대상 요소가 없습니다. JSON 문법만 검사했습니다.",
          "present": 0,
          "total": 0
        },
        {
          "check_id": "author",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "published",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "modified",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "alt",
          "state": "applied",
          "reason": "19개 중 19개. 빈 alt 0개. 장식 이미지인지 여부는 판정하지 않았습니다. CSS 배경 이미지는 제외합니다.",
          "present": 19,
          "total": 19
        },
        {
          "check_id": "dimensions",
          "state": "missing",
          "reason": "19개 중 0개. HTML 크기 속성만 확인했습니다.",
          "present": 0,
          "total": 19
        },
        {
          "check_id": "srcset",
          "state": "missing",
          "reason": "img srcset 사용 여부. picture 대안·후보 URL 동작은 별도입니다."
        },
        {
          "check_id": "lazy",
          "state": "missing",
          "reason": "네이티브 lazy 선언 사용 여부. 화면 내 이미지 위치·JS 지연 로딩은 미판정입니다."
        },
        {
          "check_id": "scripts",
          "state": "partial",
          "reason": "15개 중 13개. JSON 데이터 스크립트·인라인 JS는 제외. 미실행 nomodule 여부는 현재 자료에 없어 별도로 분리하지 않았습니다.",
          "present": 13,
          "total": 15
        },
        {
          "check_id": "table",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "table_headers",
          "state": "applied",
          "reason": "2개 중 2개.",
          "present": 2,
          "total": 2
        },
        {
          "check_id": "list",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "external",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "cwv",
          "state": "unknown",
          "reason": "이번 수집에서는 실제 사용자 성능 자료를 측정하지 않았습니다."
        },
        {
          "check_id": "image_bytes",
          "state": "unknown",
          "reason": "저장 DOM의 파일명·크기 속성만으로 압축 상태를 판단하지 않았습니다."
        },
        {
          "check_id": "bot_access",
          "state": "unknown",
          "reason": "이번 robots 판정은 수집기 VlyvlyResearch 기준입니다. Googlebot·AI 봇 접근이나 색인 상태로 확대하지 않습니다."
        }
      ]
    },
    {
      "page_id": "db888db76c8721f7",
      "code": "P14",
      "url": "https://bi.bluedot.so/",
      "title": "블루닷 인텔리전스 - 국내 최초 AI검색최적화 GEO AEO 분석 및 컨설팅 플랫폼",
      "domain": "bluedot.so",
      "captured_at": "2026-09-11T02:45:41.475Z",
      "type": "service",
      "relevance": "relevant",
      "related_party": false,
      "cohorts": [
        "naver"
      ],
      "headings": {
        "whole": {
          "h1": 2,
          "h2": 6,
          "h3": 10,
          "h4": 4,
          "h5": 0,
          "h6": 0
        },
        "nonempty": {
          "h1": 2,
          "h2": 6,
          "h3": 10,
          "h4": 4,
          "h5": 0,
          "h6": 0
        },
        "extracted": {
          "h1": 0,
          "h2": 8,
          "h3": 2,
          "h4": 4,
          "h5": 0,
          "h6": 0
        }
      },
      "landmarks": {
        "main": 0,
        "article": 0,
        "section": 10,
        "header": 1,
        "nav": 0,
        "aside": 0,
        "footer": 1
      },
      "checks": [
        {
          "check_id": "title",
          "state": "applied",
          "reason": "비어 있지 않은 HTML title 1개."
        },
        {
          "check_id": "title_head",
          "state": "applied",
          "reason": "1개 중 1개. head 밖 title도 별도 제목 보유 항목에서는 인정합니다.",
          "present": 1,
          "total": 1
        },
        {
          "check_id": "description",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "og",
          "state": "applied",
          "reason": "3개 중 3개. 공유 메타의 내용 적합성과 이미지 로딩은 별도입니다.",
          "present": 3,
          "total": 3
        },
        {
          "check_id": "canonical",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "lang",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "viewport",
          "state": "applied",
          "reason": "viewport의 width=device-width 선언을 확인했습니다."
        },
        {
          "check_id": "h1",
          "state": "applied",
          "reason": "전체 2개 / 비어 있지 않은 태그 2개."
        },
        {
          "check_id": "h2",
          "state": "applied",
          "reason": "전체 6개 / 비어 있지 않은 태그 6개."
        },
        {
          "check_id": "h3",
          "state": "applied",
          "reason": "전체 10개 / 비어 있지 않은 태그 10개."
        },
        {
          "check_id": "main",
          "state": "missing",
          "reason": "main 요소 0개."
        },
        {
          "check_id": "article",
          "state": "missing",
          "reason": "article 요소 0개."
        },
        {
          "check_id": "toc",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "schema",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "jsonld",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "jsonld_parse",
          "state": "applied",
          "reason": "1개 중 1개. JSON 문법만 검사했습니다.",
          "present": 1,
          "total": 1
        },
        {
          "check_id": "author",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "published",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "modified",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "alt",
          "state": "partial",
          "reason": "98개 중 95개. 빈 alt 0개. 장식 이미지인지 여부는 판정하지 않았습니다. CSS 배경 이미지는 제외합니다.",
          "present": 95,
          "total": 98
        },
        {
          "check_id": "dimensions",
          "state": "missing",
          "reason": "98개 중 0개. HTML 크기 속성만 확인했습니다.",
          "present": 0,
          "total": 98
        },
        {
          "check_id": "srcset",
          "state": "missing",
          "reason": "img srcset 사용 여부. picture 대안·후보 URL 동작은 별도입니다."
        },
        {
          "check_id": "lazy",
          "state": "missing",
          "reason": "네이티브 lazy 선언 사용 여부. 화면 내 이미지 위치·JS 지연 로딩은 미판정입니다."
        },
        {
          "check_id": "scripts",
          "state": "applied",
          "reason": "2개 중 2개. JSON 데이터 스크립트·인라인 JS는 제외. 미실행 nomodule 여부는 현재 자료에 없어 별도로 분리하지 않았습니다.",
          "present": 2,
          "total": 2
        },
        {
          "check_id": "table",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "table_headers",
          "state": "na",
          "reason": "대상 요소가 없습니다.",
          "present": 0,
          "total": 0
        },
        {
          "check_id": "list",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "external",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "cwv",
          "state": "unknown",
          "reason": "이번 수집에서는 실제 사용자 성능 자료를 측정하지 않았습니다."
        },
        {
          "check_id": "image_bytes",
          "state": "unknown",
          "reason": "저장 DOM의 파일명·크기 속성만으로 압축 상태를 판단하지 않았습니다."
        },
        {
          "check_id": "bot_access",
          "state": "unknown",
          "reason": "이번 robots 판정은 수집기 VlyvlyResearch 기준입니다. Googlebot·AI 봇 접근이나 색인 상태로 확대하지 않습니다."
        }
      ]
    },
    {
      "page_id": "6e1dadd8272b6ac4",
      "code": "P15",
      "url": "https://pixelart-works.com/SEOAEOGEO-Contents-Optimization",
      "title": "SEO·AEO·GEO 최적화: AI 검색 시대의 콘텐츠 자산화 솔루션 | 픽셀아트공작소",
      "domain": "pixelart-works.com",
      "captured_at": "2026-09-11T02:45:00.318Z",
      "type": "service",
      "relevance": "relevant",
      "related_party": false,
      "cohorts": [
        "naver"
      ],
      "headings": {
        "whole": {
          "h1": 1,
          "h2": 13,
          "h3": 60,
          "h4": 40,
          "h5": 0,
          "h6": 57
        },
        "nonempty": {
          "h1": 1,
          "h2": 13,
          "h3": 60,
          "h4": 40,
          "h5": 0,
          "h6": 57
        },
        "extracted": {
          "h1": 1,
          "h2": 14,
          "h3": 89,
          "h4": 25,
          "h5": 0,
          "h6": 55
        }
      },
      "landmarks": {
        "main": 25,
        "article": 12,
        "section": 3,
        "header": 15,
        "nav": 3,
        "aside": 0,
        "footer": 14
      },
      "checks": [
        {
          "check_id": "title",
          "state": "applied",
          "reason": "비어 있지 않은 HTML title 1개."
        },
        {
          "check_id": "title_head",
          "state": "applied",
          "reason": "1개 중 1개. head 밖 title도 별도 제목 보유 항목에서는 인정합니다.",
          "present": 1,
          "total": 1
        },
        {
          "check_id": "description",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "og",
          "state": "applied",
          "reason": "3개 중 3개. 공유 메타의 내용 적합성과 이미지 로딩은 별도입니다.",
          "present": 3,
          "total": 3
        },
        {
          "check_id": "canonical",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "lang",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "viewport",
          "state": "applied",
          "reason": "viewport의 width=device-width 선언을 확인했습니다."
        },
        {
          "check_id": "h1",
          "state": "applied",
          "reason": "전체 1개 / 비어 있지 않은 태그 1개."
        },
        {
          "check_id": "h2",
          "state": "applied",
          "reason": "전체 13개 / 비어 있지 않은 태그 13개."
        },
        {
          "check_id": "h3",
          "state": "applied",
          "reason": "전체 60개 / 비어 있지 않은 태그 60개."
        },
        {
          "check_id": "main",
          "state": "applied",
          "reason": "main 요소 25개."
        },
        {
          "check_id": "article",
          "state": "applied",
          "reason": "article 요소 12개."
        },
        {
          "check_id": "toc",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "schema",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "jsonld",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "jsonld_parse",
          "state": "applied",
          "reason": "4개 중 4개. JSON 문법만 검사했습니다.",
          "present": 4,
          "total": 4
        },
        {
          "check_id": "author",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "published",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "modified",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "alt",
          "state": "applied",
          "reason": "3개 중 3개. 빈 alt 0개. 장식 이미지인지 여부는 판정하지 않았습니다. CSS 배경 이미지는 제외합니다.",
          "present": 3,
          "total": 3
        },
        {
          "check_id": "dimensions",
          "state": "missing",
          "reason": "3개 중 0개. HTML 크기 속성만 확인했습니다.",
          "present": 0,
          "total": 3
        },
        {
          "check_id": "srcset",
          "state": "missing",
          "reason": "img srcset 사용 여부. picture 대안·후보 URL 동작은 별도입니다."
        },
        {
          "check_id": "lazy",
          "state": "missing",
          "reason": "네이티브 lazy 선언 사용 여부. 화면 내 이미지 위치·JS 지연 로딩은 미판정입니다."
        },
        {
          "check_id": "scripts",
          "state": "partial",
          "reason": "182개 중 23개. JSON 데이터 스크립트·인라인 JS는 제외. 미실행 nomodule 여부는 현재 자료에 없어 별도로 분리하지 않았습니다.",
          "present": 23,
          "total": 182
        },
        {
          "check_id": "table",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "table_headers",
          "state": "missing",
          "reason": "7개 중 0개.",
          "present": 0,
          "total": 7
        },
        {
          "check_id": "list",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "external",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "cwv",
          "state": "unknown",
          "reason": "이번 수집에서는 실제 사용자 성능 자료를 측정하지 않았습니다."
        },
        {
          "check_id": "image_bytes",
          "state": "unknown",
          "reason": "저장 DOM의 파일명·크기 속성만으로 압축 상태를 판단하지 않았습니다."
        },
        {
          "check_id": "bot_access",
          "state": "unknown",
          "reason": "이번 robots 판정은 수집기 VlyvlyResearch 기준입니다. Googlebot·AI 봇 접근이나 색인 상태로 확대하지 않습니다."
        }
      ]
    },
    {
      "page_id": "47014a5f3f28cf5c",
      "code": "P16",
      "url": "https://villion.io/",
      "title": "Villion | GEO AEO 종합 솔루션",
      "domain": "villion.io",
      "captured_at": "2026-09-11T02:44:38.969Z",
      "type": "service",
      "relevance": "relevant",
      "related_party": false,
      "cohorts": [
        "naver"
      ],
      "headings": {
        "whole": {
          "h1": 1,
          "h2": 9,
          "h3": 15,
          "h4": 0,
          "h5": 0,
          "h6": 0
        },
        "nonempty": {
          "h1": 1,
          "h2": 9,
          "h3": 15,
          "h4": 0,
          "h5": 0,
          "h6": 0
        },
        "extracted": {
          "h1": 1,
          "h2": 9,
          "h3": 12,
          "h4": 0,
          "h5": 0,
          "h6": 0
        }
      },
      "landmarks": {
        "main": 1,
        "article": 3,
        "section": 10,
        "header": 1,
        "nav": 1,
        "aside": 0,
        "footer": 1
      },
      "checks": [
        {
          "check_id": "title",
          "state": "applied",
          "reason": "비어 있지 않은 HTML title 1개."
        },
        {
          "check_id": "title_head",
          "state": "applied",
          "reason": "1개 중 1개. head 밖 title도 별도 제목 보유 항목에서는 인정합니다.",
          "present": 1,
          "total": 1
        },
        {
          "check_id": "description",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "og",
          "state": "applied",
          "reason": "3개 중 3개. 공유 메타의 내용 적합성과 이미지 로딩은 별도입니다.",
          "present": 3,
          "total": 3
        },
        {
          "check_id": "canonical",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "lang",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "viewport",
          "state": "applied",
          "reason": "viewport의 width=device-width 선언을 확인했습니다."
        },
        {
          "check_id": "h1",
          "state": "applied",
          "reason": "전체 1개 / 비어 있지 않은 태그 1개."
        },
        {
          "check_id": "h2",
          "state": "applied",
          "reason": "전체 9개 / 비어 있지 않은 태그 9개."
        },
        {
          "check_id": "h3",
          "state": "applied",
          "reason": "전체 15개 / 비어 있지 않은 태그 15개."
        },
        {
          "check_id": "main",
          "state": "applied",
          "reason": "main 요소 1개."
        },
        {
          "check_id": "article",
          "state": "applied",
          "reason": "article 요소 3개."
        },
        {
          "check_id": "toc",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "schema",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "jsonld",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "jsonld_parse",
          "state": "applied",
          "reason": "4개 중 4개. JSON 문법만 검사했습니다.",
          "present": 4,
          "total": 4
        },
        {
          "check_id": "author",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "published",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "modified",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "alt",
          "state": "applied",
          "reason": "32개 중 32개. 빈 alt 25개. 장식 이미지인지 여부는 판정하지 않았습니다. CSS 배경 이미지는 제외합니다.",
          "present": 32,
          "total": 32
        },
        {
          "check_id": "dimensions",
          "state": "partial",
          "reason": "32개 중 27개. HTML 크기 속성만 확인했습니다.",
          "present": 27,
          "total": 32
        },
        {
          "check_id": "srcset",
          "state": "applied",
          "reason": "img srcset 사용 여부. picture 대안·후보 URL 동작은 별도입니다."
        },
        {
          "check_id": "lazy",
          "state": "applied",
          "reason": "네이티브 lazy 선언 사용 여부. 화면 내 이미지 위치·JS 지연 로딩은 미판정입니다."
        },
        {
          "check_id": "scripts",
          "state": "partial",
          "reason": "8개 중 7개. JSON 데이터 스크립트·인라인 JS는 제외. 미실행 nomodule 여부는 현재 자료에 없어 별도로 분리하지 않았습니다.",
          "present": 7,
          "total": 8
        },
        {
          "check_id": "table",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "table_headers",
          "state": "na",
          "reason": "대상 요소가 없습니다.",
          "present": 0,
          "total": 0
        },
        {
          "check_id": "list",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "external",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "cwv",
          "state": "unknown",
          "reason": "이번 수집에서는 실제 사용자 성능 자료를 측정하지 않았습니다."
        },
        {
          "check_id": "image_bytes",
          "state": "unknown",
          "reason": "저장 DOM의 파일명·크기 속성만으로 압축 상태를 판단하지 않았습니다."
        },
        {
          "check_id": "bot_access",
          "state": "unknown",
          "reason": "이번 robots 판정은 수집기 VlyvlyResearch 기준입니다. Googlebot·AI 봇 접근이나 색인 상태로 확대하지 않습니다."
        }
      ]
    },
    {
      "page_id": "f18d3872434dfb29",
      "code": "P17",
      "url": "https://www.next-t.co.kr/geo/",
      "title": "GEO 업체 — 생성형엔진최적화 GEO 컨설팅업체 · OPTIGEO 측정 'GEO 업체' 인용 1위 · GEO 서비스 · GEO 마케팅 | 넥스트티",
      "domain": "next-t.co.kr",
      "captured_at": "2026-09-11T02:45:47.416Z",
      "type": "service",
      "relevance": "relevant",
      "related_party": false,
      "cohorts": [
        "naver"
      ],
      "headings": {
        "whole": {
          "h1": 1,
          "h2": 17,
          "h3": 49,
          "h4": 0,
          "h5": 0,
          "h6": 0
        },
        "nonempty": {
          "h1": 1,
          "h2": 17,
          "h3": 49,
          "h4": 0,
          "h5": 0,
          "h6": 0
        },
        "extracted": {
          "h1": 0,
          "h2": 12,
          "h3": 19,
          "h4": 0,
          "h5": 0,
          "h6": 0
        }
      },
      "landmarks": {
        "main": 0,
        "article": 0,
        "section": 19,
        "header": 1,
        "nav": 2,
        "aside": 2,
        "footer": 1
      },
      "checks": [
        {
          "check_id": "title",
          "state": "applied",
          "reason": "비어 있지 않은 HTML title 1개."
        },
        {
          "check_id": "title_head",
          "state": "applied",
          "reason": "1개 중 1개. head 밖 title도 별도 제목 보유 항목에서는 인정합니다.",
          "present": 1,
          "total": 1
        },
        {
          "check_id": "description",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "og",
          "state": "applied",
          "reason": "3개 중 3개. 공유 메타의 내용 적합성과 이미지 로딩은 별도입니다.",
          "present": 3,
          "total": 3
        },
        {
          "check_id": "canonical",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "lang",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "viewport",
          "state": "applied",
          "reason": "viewport의 width=device-width 선언을 확인했습니다."
        },
        {
          "check_id": "h1",
          "state": "applied",
          "reason": "전체 1개 / 비어 있지 않은 태그 1개."
        },
        {
          "check_id": "h2",
          "state": "applied",
          "reason": "전체 17개 / 비어 있지 않은 태그 17개."
        },
        {
          "check_id": "h3",
          "state": "applied",
          "reason": "전체 49개 / 비어 있지 않은 태그 49개."
        },
        {
          "check_id": "main",
          "state": "missing",
          "reason": "main 요소 0개."
        },
        {
          "check_id": "article",
          "state": "missing",
          "reason": "article 요소 0개."
        },
        {
          "check_id": "toc",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "schema",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "jsonld",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "jsonld_parse",
          "state": "applied",
          "reason": "1개 중 1개. JSON 문법만 검사했습니다.",
          "present": 1,
          "total": 1
        },
        {
          "check_id": "author",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "published",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "modified",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "alt",
          "state": "applied",
          "reason": "132개 중 132개. 빈 alt 0개. 장식 이미지인지 여부는 판정하지 않았습니다. CSS 배경 이미지는 제외합니다.",
          "present": 132,
          "total": 132
        },
        {
          "check_id": "dimensions",
          "state": "partial",
          "reason": "132개 중 2개. HTML 크기 속성만 확인했습니다.",
          "present": 2,
          "total": 132
        },
        {
          "check_id": "srcset",
          "state": "missing",
          "reason": "img srcset 사용 여부. picture 대안·후보 URL 동작은 별도입니다."
        },
        {
          "check_id": "lazy",
          "state": "applied",
          "reason": "네이티브 lazy 선언 사용 여부. 화면 내 이미지 위치·JS 지연 로딩은 미판정입니다."
        },
        {
          "check_id": "scripts",
          "state": "partial",
          "reason": "6개 중 3개. JSON 데이터 스크립트·인라인 JS는 제외. 미실행 nomodule 여부는 현재 자료에 없어 별도로 분리하지 않았습니다.",
          "present": 3,
          "total": 6
        },
        {
          "check_id": "table",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "table_headers",
          "state": "applied",
          "reason": "2개 중 2개.",
          "present": 2,
          "total": 2
        },
        {
          "check_id": "list",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "external",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "cwv",
          "state": "unknown",
          "reason": "이번 수집에서는 실제 사용자 성능 자료를 측정하지 않았습니다."
        },
        {
          "check_id": "image_bytes",
          "state": "unknown",
          "reason": "저장 DOM의 파일명·크기 속성만으로 압축 상태를 판단하지 않았습니다."
        },
        {
          "check_id": "bot_access",
          "state": "unknown",
          "reason": "이번 robots 판정은 수집기 VlyvlyResearch 기준입니다. Googlebot·AI 봇 접근이나 색인 상태로 확대하지 않습니다."
        }
      ]
    },
    {
      "page_id": "54959273951bf734",
      "code": "P18",
      "url": "https://seo.tbwakorea.com/geo-consulting/",
      "title": "GEO 컨설팅 – AI 검색에서 선택되는 브랜드 전략 | TBWA 데이터랩",
      "domain": "tbwakorea.com",
      "captured_at": "2026-09-11T02:44:57.671Z",
      "type": "service",
      "relevance": "relevant",
      "related_party": false,
      "cohorts": [
        "naver"
      ],
      "headings": {
        "whole": {
          "h1": 1,
          "h2": 15,
          "h3": 10,
          "h4": 7,
          "h5": 0,
          "h6": 0
        },
        "nonempty": {
          "h1": 1,
          "h2": 15,
          "h3": 10,
          "h4": 7,
          "h5": 0,
          "h6": 0
        },
        "extracted": {
          "h1": 2,
          "h2": 16,
          "h3": 12,
          "h4": 6,
          "h5": 0,
          "h6": 0
        }
      },
      "landmarks": {
        "main": 1,
        "article": 5,
        "section": 12,
        "header": 2,
        "nav": 1,
        "aside": 0,
        "footer": 1
      },
      "checks": [
        {
          "check_id": "title",
          "state": "applied",
          "reason": "비어 있지 않은 HTML title 1개."
        },
        {
          "check_id": "title_head",
          "state": "applied",
          "reason": "1개 중 1개. head 밖 title도 별도 제목 보유 항목에서는 인정합니다.",
          "present": 1,
          "total": 1
        },
        {
          "check_id": "description",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "og",
          "state": "applied",
          "reason": "3개 중 3개. 공유 메타의 내용 적합성과 이미지 로딩은 별도입니다.",
          "present": 3,
          "total": 3
        },
        {
          "check_id": "canonical",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "lang",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "viewport",
          "state": "applied",
          "reason": "viewport의 width=device-width 선언을 확인했습니다."
        },
        {
          "check_id": "h1",
          "state": "applied",
          "reason": "전체 1개 / 비어 있지 않은 태그 1개."
        },
        {
          "check_id": "h2",
          "state": "applied",
          "reason": "전체 15개 / 비어 있지 않은 태그 15개."
        },
        {
          "check_id": "h3",
          "state": "applied",
          "reason": "전체 10개 / 비어 있지 않은 태그 10개."
        },
        {
          "check_id": "main",
          "state": "applied",
          "reason": "main 요소 1개."
        },
        {
          "check_id": "article",
          "state": "applied",
          "reason": "article 요소 5개."
        },
        {
          "check_id": "toc",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "schema",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "jsonld",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "jsonld_parse",
          "state": "applied",
          "reason": "1개 중 1개. JSON 문법만 검사했습니다.",
          "present": 1,
          "total": 1
        },
        {
          "check_id": "author",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "published",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "modified",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "alt",
          "state": "applied",
          "reason": "4개 중 4개. 빈 alt 1개. 장식 이미지인지 여부는 판정하지 않았습니다. CSS 배경 이미지는 제외합니다.",
          "present": 4,
          "total": 4
        },
        {
          "check_id": "dimensions",
          "state": "partial",
          "reason": "4개 중 2개. HTML 크기 속성만 확인했습니다.",
          "present": 2,
          "total": 4
        },
        {
          "check_id": "srcset",
          "state": "applied",
          "reason": "img srcset 사용 여부. picture 대안·후보 URL 동작은 별도입니다."
        },
        {
          "check_id": "lazy",
          "state": "applied",
          "reason": "네이티브 lazy 선언 사용 여부. 화면 내 이미지 위치·JS 지연 로딩은 미판정입니다."
        },
        {
          "check_id": "scripts",
          "state": "partial",
          "reason": "50개 중 6개. JSON 데이터 스크립트·인라인 JS는 제외. 미실행 nomodule 여부는 현재 자료에 없어 별도로 분리하지 않았습니다.",
          "present": 6,
          "total": 50
        },
        {
          "check_id": "table",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "table_headers",
          "state": "na",
          "reason": "대상 요소가 없습니다.",
          "present": 0,
          "total": 0
        },
        {
          "check_id": "list",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "external",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "cwv",
          "state": "unknown",
          "reason": "이번 수집에서는 실제 사용자 성능 자료를 측정하지 않았습니다."
        },
        {
          "check_id": "image_bytes",
          "state": "unknown",
          "reason": "저장 DOM의 파일명·크기 속성만으로 압축 상태를 판단하지 않았습니다."
        },
        {
          "check_id": "bot_access",
          "state": "unknown",
          "reason": "이번 robots 판정은 수집기 VlyvlyResearch 기준입니다. Googlebot·AI 봇 접근이나 색인 상태로 확대하지 않습니다."
        }
      ]
    },
    {
      "page_id": "7e84e870066cf33b",
      "code": "P19",
      "url": "https://www.datanet.co.kr/news/articleView.html?idxno=213891",
      "title": "플러스제로, 완성형 GEO 솔루션 ‘보이스 인텔리전스 v2.0’ 출시 - 데이터넷",
      "domain": "datanet.co.kr",
      "captured_at": "2026-09-11T02:45:05.729Z",
      "type": "news",
      "relevance": "relevant",
      "related_party": false,
      "cohorts": [
        "naver"
      ],
      "headings": {
        "whole": {
          "h1": 0,
          "h2": 0,
          "h3": 0,
          "h4": 0,
          "h5": 0,
          "h6": 0
        },
        "nonempty": {
          "h1": 0,
          "h2": 0,
          "h3": 0,
          "h4": 0,
          "h5": 0,
          "h6": 0
        },
        "extracted": {
          "h1": 0,
          "h2": 0,
          "h3": 0,
          "h4": 0,
          "h5": 0,
          "h6": 0
        }
      },
      "landmarks": {
        "main": 0,
        "article": 7,
        "section": 11,
        "header": 10,
        "nav": 4,
        "aside": 1,
        "footer": 4
      },
      "checks": [
        {
          "check_id": "title",
          "state": "applied",
          "reason": "비어 있지 않은 HTML title 1개."
        },
        {
          "check_id": "title_head",
          "state": "applied",
          "reason": "1개 중 1개. head 밖 title도 별도 제목 보유 항목에서는 인정합니다.",
          "present": 1,
          "total": 1
        },
        {
          "check_id": "description",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "og",
          "state": "applied",
          "reason": "3개 중 3개. 공유 메타의 내용 적합성과 이미지 로딩은 별도입니다.",
          "present": 3,
          "total": 3
        },
        {
          "check_id": "canonical",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "lang",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "viewport",
          "state": "missing",
          "reason": "viewport의 width=device-width 선언을 확인했습니다."
        },
        {
          "check_id": "h1",
          "state": "missing",
          "reason": "전체 0개 / 비어 있지 않은 태그 0개."
        },
        {
          "check_id": "h2",
          "state": "missing",
          "reason": "전체 0개 / 비어 있지 않은 태그 0개."
        },
        {
          "check_id": "h3",
          "state": "missing",
          "reason": "전체 0개 / 비어 있지 않은 태그 0개."
        },
        {
          "check_id": "main",
          "state": "missing",
          "reason": "main 요소 0개."
        },
        {
          "check_id": "article",
          "state": "applied",
          "reason": "article 요소 7개."
        },
        {
          "check_id": "toc",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "schema",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "jsonld",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "jsonld_parse",
          "state": "na",
          "reason": "대상 요소가 없습니다. JSON 문법만 검사했습니다.",
          "present": 0,
          "total": 0
        },
        {
          "check_id": "author",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "published",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "modified",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "alt",
          "state": "partial",
          "reason": "21개 중 20개. 빈 alt 1개. 장식 이미지인지 여부는 판정하지 않았습니다. CSS 배경 이미지는 제외합니다.",
          "present": 20,
          "total": 21
        },
        {
          "check_id": "dimensions",
          "state": "partial",
          "reason": "21개 중 4개. HTML 크기 속성만 확인했습니다.",
          "present": 4,
          "total": 21
        },
        {
          "check_id": "srcset",
          "state": "missing",
          "reason": "img srcset 사용 여부. picture 대안·후보 URL 동작은 별도입니다."
        },
        {
          "check_id": "lazy",
          "state": "missing",
          "reason": "네이티브 lazy 선언 사용 여부. 화면 내 이미지 위치·JS 지연 로딩은 미판정입니다."
        },
        {
          "check_id": "scripts",
          "state": "partial",
          "reason": "53개 중 14개. JSON 데이터 스크립트·인라인 JS는 제외. 미실행 nomodule 여부는 현재 자료에 없어 별도로 분리하지 않았습니다.",
          "present": 14,
          "total": 53
        },
        {
          "check_id": "table",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "table_headers",
          "state": "na",
          "reason": "대상 요소가 없습니다.",
          "present": 0,
          "total": 0
        },
        {
          "check_id": "list",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "external",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "cwv",
          "state": "unknown",
          "reason": "이번 수집에서는 실제 사용자 성능 자료를 측정하지 않았습니다."
        },
        {
          "check_id": "image_bytes",
          "state": "unknown",
          "reason": "저장 DOM의 파일명·크기 속성만으로 압축 상태를 판단하지 않았습니다."
        },
        {
          "check_id": "bot_access",
          "state": "unknown",
          "reason": "이번 robots 판정은 수집기 VlyvlyResearch 기준입니다. Googlebot·AI 봇 접근이나 색인 상태로 확대하지 않습니다."
        }
      ]
    },
    {
      "page_id": "87bab246cb9dffec",
      "code": "P20",
      "url": "https://villion.io/blog/geo-tools-comparison",
      "title": "비교 분석: AI 검색 최적화 (GEO)을 측정하는 도구 선택 기준 | Villion",
      "domain": "villion.io",
      "captured_at": "2026-09-11T02:49:41.631Z",
      "type": "comparison",
      "relevance": "relevant",
      "related_party": false,
      "cohorts": [
        "cited"
      ],
      "headings": {
        "whole": {
          "h1": 1,
          "h2": 13,
          "h3": 29,
          "h4": 0,
          "h5": 0,
          "h6": 0
        },
        "nonempty": {
          "h1": 1,
          "h2": 13,
          "h3": 29,
          "h4": 0,
          "h5": 0,
          "h6": 0
        },
        "extracted": {
          "h1": 1,
          "h2": 12,
          "h3": 22,
          "h4": 0,
          "h5": 0,
          "h6": 0
        }
      },
      "landmarks": {
        "main": 1,
        "article": 1,
        "section": 2,
        "header": 2,
        "nav": 2,
        "aside": 3,
        "footer": 1
      },
      "checks": [
        {
          "check_id": "title",
          "state": "applied",
          "reason": "비어 있지 않은 HTML title 1개."
        },
        {
          "check_id": "title_head",
          "state": "applied",
          "reason": "1개 중 1개. head 밖 title도 별도 제목 보유 항목에서는 인정합니다.",
          "present": 1,
          "total": 1
        },
        {
          "check_id": "description",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "og",
          "state": "applied",
          "reason": "3개 중 3개. 공유 메타의 내용 적합성과 이미지 로딩은 별도입니다.",
          "present": 3,
          "total": 3
        },
        {
          "check_id": "canonical",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "lang",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "viewport",
          "state": "applied",
          "reason": "viewport의 width=device-width 선언을 확인했습니다."
        },
        {
          "check_id": "h1",
          "state": "applied",
          "reason": "전체 1개 / 비어 있지 않은 태그 1개."
        },
        {
          "check_id": "h2",
          "state": "applied",
          "reason": "전체 13개 / 비어 있지 않은 태그 13개."
        },
        {
          "check_id": "h3",
          "state": "applied",
          "reason": "전체 29개 / 비어 있지 않은 태그 29개."
        },
        {
          "check_id": "main",
          "state": "applied",
          "reason": "main 요소 1개."
        },
        {
          "check_id": "article",
          "state": "applied",
          "reason": "article 요소 1개."
        },
        {
          "check_id": "toc",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "schema",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "jsonld",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "jsonld_parse",
          "state": "applied",
          "reason": "6개 중 6개. JSON 문법만 검사했습니다.",
          "present": 6,
          "total": 6
        },
        {
          "check_id": "author",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "published",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "modified",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "alt",
          "state": "applied",
          "reason": "6개 중 6개. 빈 alt 2개. 장식 이미지인지 여부는 판정하지 않았습니다. CSS 배경 이미지는 제외합니다.",
          "present": 6,
          "total": 6
        },
        {
          "check_id": "dimensions",
          "state": "partial",
          "reason": "6개 중 5개. HTML 크기 속성만 확인했습니다.",
          "present": 5,
          "total": 6
        },
        {
          "check_id": "srcset",
          "state": "applied",
          "reason": "img srcset 사용 여부. picture 대안·후보 URL 동작은 별도입니다."
        },
        {
          "check_id": "lazy",
          "state": "applied",
          "reason": "네이티브 lazy 선언 사용 여부. 화면 내 이미지 위치·JS 지연 로딩은 미판정입니다."
        },
        {
          "check_id": "scripts",
          "state": "partial",
          "reason": "20개 중 19개. JSON 데이터 스크립트·인라인 JS는 제외. 미실행 nomodule 여부는 현재 자료에 없어 별도로 분리하지 않았습니다.",
          "present": 19,
          "total": 20
        },
        {
          "check_id": "table",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "table_headers",
          "state": "applied",
          "reason": "2개 중 2개.",
          "present": 2,
          "total": 2
        },
        {
          "check_id": "list",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "external",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "cwv",
          "state": "unknown",
          "reason": "이번 수집에서는 실제 사용자 성능 자료를 측정하지 않았습니다."
        },
        {
          "check_id": "image_bytes",
          "state": "unknown",
          "reason": "저장 DOM의 파일명·크기 속성만으로 압축 상태를 판단하지 않았습니다."
        },
        {
          "check_id": "bot_access",
          "state": "unknown",
          "reason": "이번 robots 판정은 수집기 VlyvlyResearch 기준입니다. Googlebot·AI 봇 접근이나 색인 상태로 확대하지 않습니다."
        }
      ]
    },
    {
      "page_id": "d34f1e18b7c509bf",
      "code": "P21",
      "url": "https://villion.io/blog/korea-geo-agency-solution-guide",
      "title": "국내 GEO 업체 및 솔루션 비교 (2026): GEO 마케팅은 어디에 맡겨야 할까? | Villion",
      "domain": "villion.io",
      "captured_at": "2026-09-11T02:49:43.997Z",
      "type": "comparison",
      "relevance": "relevant",
      "related_party": false,
      "cohorts": [
        "cited"
      ],
      "headings": {
        "whole": {
          "h1": 1,
          "h2": 15,
          "h3": 33,
          "h4": 0,
          "h5": 0,
          "h6": 0
        },
        "nonempty": {
          "h1": 1,
          "h2": 15,
          "h3": 33,
          "h4": 0,
          "h5": 0,
          "h6": 0
        },
        "extracted": {
          "h1": 1,
          "h2": 14,
          "h3": 26,
          "h4": 0,
          "h5": 0,
          "h6": 0
        }
      },
      "landmarks": {
        "main": 1,
        "article": 1,
        "section": 2,
        "header": 2,
        "nav": 2,
        "aside": 3,
        "footer": 1
      },
      "checks": [
        {
          "check_id": "title",
          "state": "applied",
          "reason": "비어 있지 않은 HTML title 1개."
        },
        {
          "check_id": "title_head",
          "state": "applied",
          "reason": "1개 중 1개. head 밖 title도 별도 제목 보유 항목에서는 인정합니다.",
          "present": 1,
          "total": 1
        },
        {
          "check_id": "description",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "og",
          "state": "applied",
          "reason": "3개 중 3개. 공유 메타의 내용 적합성과 이미지 로딩은 별도입니다.",
          "present": 3,
          "total": 3
        },
        {
          "check_id": "canonical",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "lang",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "viewport",
          "state": "applied",
          "reason": "viewport의 width=device-width 선언을 확인했습니다."
        },
        {
          "check_id": "h1",
          "state": "applied",
          "reason": "전체 1개 / 비어 있지 않은 태그 1개."
        },
        {
          "check_id": "h2",
          "state": "applied",
          "reason": "전체 15개 / 비어 있지 않은 태그 15개."
        },
        {
          "check_id": "h3",
          "state": "applied",
          "reason": "전체 33개 / 비어 있지 않은 태그 33개."
        },
        {
          "check_id": "main",
          "state": "applied",
          "reason": "main 요소 1개."
        },
        {
          "check_id": "article",
          "state": "applied",
          "reason": "article 요소 1개."
        },
        {
          "check_id": "toc",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "schema",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "jsonld",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "jsonld_parse",
          "state": "applied",
          "reason": "6개 중 6개. JSON 문법만 검사했습니다.",
          "present": 6,
          "total": 6
        },
        {
          "check_id": "author",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "published",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "modified",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "alt",
          "state": "applied",
          "reason": "6개 중 6개. 빈 alt 2개. 장식 이미지인지 여부는 판정하지 않았습니다. CSS 배경 이미지는 제외합니다.",
          "present": 6,
          "total": 6
        },
        {
          "check_id": "dimensions",
          "state": "partial",
          "reason": "6개 중 5개. HTML 크기 속성만 확인했습니다.",
          "present": 5,
          "total": 6
        },
        {
          "check_id": "srcset",
          "state": "applied",
          "reason": "img srcset 사용 여부. picture 대안·후보 URL 동작은 별도입니다."
        },
        {
          "check_id": "lazy",
          "state": "applied",
          "reason": "네이티브 lazy 선언 사용 여부. 화면 내 이미지 위치·JS 지연 로딩은 미판정입니다."
        },
        {
          "check_id": "scripts",
          "state": "partial",
          "reason": "10개 중 9개. JSON 데이터 스크립트·인라인 JS는 제외. 미실행 nomodule 여부는 현재 자료에 없어 별도로 분리하지 않았습니다.",
          "present": 9,
          "total": 10
        },
        {
          "check_id": "table",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "table_headers",
          "state": "applied",
          "reason": "1개 중 1개.",
          "present": 1,
          "total": 1
        },
        {
          "check_id": "list",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "external",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "cwv",
          "state": "unknown",
          "reason": "이번 수집에서는 실제 사용자 성능 자료를 측정하지 않았습니다."
        },
        {
          "check_id": "image_bytes",
          "state": "unknown",
          "reason": "저장 DOM의 파일명·크기 속성만으로 압축 상태를 판단하지 않았습니다."
        },
        {
          "check_id": "bot_access",
          "state": "unknown",
          "reason": "이번 robots 판정은 수집기 VlyvlyResearch 기준입니다. Googlebot·AI 봇 접근이나 색인 상태로 확대하지 않습니다."
        }
      ]
    },
    {
      "page_id": "0ad2ef0fc9558a0c",
      "code": "P22",
      "url": "https://ainnect.co.kr/blog/insights/choose-geo-agency/",
      "title": "GEO 대행사·솔루션은 어떤 기준으로 골라야 하나요? | Ainnect",
      "domain": "ainnect.co.kr",
      "captured_at": "2026-09-11T02:49:38.735Z",
      "type": "guide",
      "relevance": "relevant",
      "related_party": false,
      "cohorts": [
        "cited"
      ],
      "headings": {
        "whole": {
          "h1": 1,
          "h2": 6,
          "h3": 9,
          "h4": 0,
          "h5": 0,
          "h6": 0
        },
        "nonempty": {
          "h1": 1,
          "h2": 6,
          "h3": 9,
          "h4": 0,
          "h5": 0,
          "h6": 0
        },
        "extracted": {
          "h1": 1,
          "h2": 6,
          "h3": 9,
          "h4": 0,
          "h5": 0,
          "h6": 0
        }
      },
      "landmarks": {
        "main": 0,
        "article": 1,
        "section": 0,
        "header": 2,
        "nav": 2,
        "aside": 0,
        "footer": 1
      },
      "checks": [
        {
          "check_id": "title",
          "state": "applied",
          "reason": "비어 있지 않은 HTML title 1개."
        },
        {
          "check_id": "title_head",
          "state": "applied",
          "reason": "1개 중 1개. head 밖 title도 별도 제목 보유 항목에서는 인정합니다.",
          "present": 1,
          "total": 1
        },
        {
          "check_id": "description",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "og",
          "state": "applied",
          "reason": "3개 중 3개. 공유 메타의 내용 적합성과 이미지 로딩은 별도입니다.",
          "present": 3,
          "total": 3
        },
        {
          "check_id": "canonical",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "lang",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "viewport",
          "state": "applied",
          "reason": "viewport의 width=device-width 선언을 확인했습니다."
        },
        {
          "check_id": "h1",
          "state": "applied",
          "reason": "전체 1개 / 비어 있지 않은 태그 1개."
        },
        {
          "check_id": "h2",
          "state": "applied",
          "reason": "전체 6개 / 비어 있지 않은 태그 6개."
        },
        {
          "check_id": "h3",
          "state": "applied",
          "reason": "전체 9개 / 비어 있지 않은 태그 9개."
        },
        {
          "check_id": "main",
          "state": "missing",
          "reason": "main 요소 0개."
        },
        {
          "check_id": "article",
          "state": "applied",
          "reason": "article 요소 1개."
        },
        {
          "check_id": "toc",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "schema",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "jsonld",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "jsonld_parse",
          "state": "applied",
          "reason": "2개 중 2개. JSON 문법만 검사했습니다.",
          "present": 2,
          "total": 2
        },
        {
          "check_id": "author",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "published",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "modified",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "alt",
          "state": "applied",
          "reason": "3개 중 3개. 빈 alt 0개. 장식 이미지인지 여부는 판정하지 않았습니다. CSS 배경 이미지는 제외합니다.",
          "present": 3,
          "total": 3
        },
        {
          "check_id": "dimensions",
          "state": "partial",
          "reason": "3개 중 1개. HTML 크기 속성만 확인했습니다.",
          "present": 1,
          "total": 3
        },
        {
          "check_id": "srcset",
          "state": "missing",
          "reason": "img srcset 사용 여부. picture 대안·후보 URL 동작은 별도입니다."
        },
        {
          "check_id": "lazy",
          "state": "applied",
          "reason": "네이티브 lazy 선언 사용 여부. 화면 내 이미지 위치·JS 지연 로딩은 미판정입니다."
        },
        {
          "check_id": "scripts",
          "state": "applied",
          "reason": "1개 중 1개. JSON 데이터 스크립트·인라인 JS는 제외. 미실행 nomodule 여부는 현재 자료에 없어 별도로 분리하지 않았습니다.",
          "present": 1,
          "total": 1
        },
        {
          "check_id": "table",
          "state": "missing",
          "reason": "선언 없음."
        },
        {
          "check_id": "table_headers",
          "state": "na",
          "reason": "대상 요소가 없습니다.",
          "present": 0,
          "total": 0
        },
        {
          "check_id": "list",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "external",
          "state": "applied",
          "reason": "선언 있음."
        },
        {
          "check_id": "cwv",
          "state": "unknown",
          "reason": "이번 수집에서는 실제 사용자 성능 자료를 측정하지 않았습니다."
        },
        {
          "check_id": "image_bytes",
          "state": "unknown",
          "reason": "저장 DOM의 파일명·크기 속성만으로 압축 상태를 판단하지 않았습니다."
        },
        {
          "check_id": "bot_access",
          "state": "unknown",
          "reason": "이번 robots 판정은 수집기 VlyvlyResearch 기준입니다. Googlebot·AI 봇 접근이나 색인 상태로 확대하지 않습니다."
        }
      ]
    }
  ],
  "correction": {
    "recorded_at": "2026-09-11T05:45:35.258Z",
    "note": "집계 수정 · 2026.09.11: ChatGPT 도입 질문의 출처 버튼을 수집기가 놓쳐 인용 0개로 잘못 표기했습니다. 저장 원본에서 인용 페이지 9개, URL 등장 11회를 복원했습니다. 정의·비교 답변은 인용 0개였습니다. 기사의 기술 분석 대상 22개는 Google·네이버 검색 결과와 Perplexity 비교 답변의 인용 페이지입니다. 복원한 ChatGPT 출처 9개는 이 기술 분석에 포함하지 않았습니다.",
    "restored_sources": [
      {
        "url": "https://www.geogen.io/ko",
        "title": "GeoGen - 생성형 엔진 최적화"
      },
      {
        "url": "https://developers.google.com/search/updates",
        "title": "Latest Google Search Documentation Updates | Google Search Central  |  What's new  |  Google for Developers"
      },
      {
        "url": "https://georank.co.kr/report/geo-agency-selection-guide-why-choosing-the-right-one-matters",
        "title": "GEO 업체 선택 가이드: AI 검색 최적화 업체가 넘쳐나는 시대, 제대로 된 곳을 찾아야 하는 이유 | 리포트 | GeoRank 지오랭크"
      },
      {
        "url": "https://www.gpto.kr/guides/aeo-geo-pricing-guide",
        "title": "AEO·GEO 최적화 비용은 얼마인가요? 가격과 계약 구조 가이드 | GPTO"
      },
      {
        "url": "https://georank.co.kr/report/geo-faq-27-questions-ai-search-optimization",
        "title": "GEO 가장 많이 묻는 질문 28가지: AI 검색 최적화 GEO의 A to Z 완전 정복 | 리포트 | GeoRank 지오랭크"
      },
      {
        "url": "https://www.geogen.io/ko/yogeumje",
        "title": "GeoGen - 요금제"
      },
      {
        "url": "https://developers.google.com/search/docs/appearance/structured-data/recipe",
        "title": "Recipe Schema Markup | Google Search Central  |  Documentation  |  Google for Developers"
      },
      {
        "url": "https://wikiap.org/en/articles/korea-geo-agency-comparison-selection-guide",
        "title": "Korea GEO Agency Comparison & Selection Guide 2026: Type, Engine Coverage, and Checklist · WikiAP"
      },
      {
        "url": "https://searchpolaris.com/blog/how-to-choose-geo-agency/",
        "title": "GEO 에이전시 선택 기준 가이드: 계약 전 반드시 확인해야 할 7가지 | 서치폴라리스 인사이트"
      }
    ]
  }
}
