사람은 웹페이지를 보고 "이건 가격이고, 저건 평점이구나"를 자연스럽게 안다. 기계는 그렇지 않다. "₩29,000"이 가격인지 재고 수량인지, 화면만 봐서는 확신할 수 없다. Schema.org 마크업은 이 모호함을 없앤다. 가격·재고·평점·영업시간·FAQ 같은 사실에 "이건 가격이다"라는 꼬리표를 코드(JSON-LD)로 붙여, AI가 오해 없이 기계적으로 읽게 만드는 표준이다. 사람 눈에 보이는 본문과는 별개로 깔리는, 사실의 기계 판독 레이어다.
왜 '없으면 인용이 안 되는' 기본기인가
AI가 답변에 사실을 인용하려면, 그 사실을 정확히 추출할 수 있어야 한다. 마크업이 없으면 AI는 본문에서 가격·평점을 추측해야 하고, 추측에는 오류 위험이 따른다. 위험한 정보는 인용에서 빠진다. 반대로 마크업이 있으면 그 값은 구조화된 사실로 안전하게 집힌다. 마크업은 인용 확률을 높이는 가산점이 아니라, 인용 후보에 드는 입장권에 가깝다. 그래서 "있으면 좋은 것"이 아니라 "없으면 출발선에 못 서는 것"이다.
무엇을 어떤 타입으로
페이지 성격에 맞는 타입을 고른다.
- Product — 가격, 재고, 평점, 리뷰 수.
- FAQPage — 질문·답 쌍. AI가 통째로 인용하기 가장 좋은 형식.
- HowTo — 단계별 절차.
- Article — 저자, 발행일, 발행처. 신뢰 신호.
- LocalBusiness — 상호, 주소, 영업시간, 연락처.
어떻게 일괄로 까는가 — Claude Code 프롬프트 예시
페이지가 수십~수백 개면 손으로는 못 한다. 사이트맵을 던져 자동화한다.
당신은 AEO 전문가다. 아래 사이트맵의 페이지들을 순서대로 처리하라. 각 페이지에 대해:
1) HTML을 가져와 핵심 콘텐츠 타입 식별 (Product, Article, FAQPage, HowTo, LocalBusiness 중)
2) 해당 타입에 맞는 Schema.org JSON-LD 마크업 생성 (필수+권장 필드 모두)
3) head 닫히기 직전에 삽입하는 PR 작성
4) validator.schema.org API로 검증
5) 결과를 schema_audit.csv 로 저장 (URL, 타입, 추가 필드, 검증 결과)
사이트맵: https://www.example.com/sitemap.xml
한계
- 마크업과 본문이 다르면 역효과다. 화면엔 29,000원인데 마크업엔 19,000원이면, 스팸으로 간주돼 신뢰를 잃는다. 마크업은 항상 보이는 값과 일치해야 한다.
- 마크업이 인용을 보장하진 않는다. 입장권일 뿐, 콘텐츠 자체가 약하면 인용되지 않는다.
- 표준은 진화한다. 필드와 권장 사항이 바뀌므로, 검증(validator)을 배포 파이프라인에 넣어 둔다.
Schema는 화려한 작업이 아니다. 그러나 이 기본기가 빠지면, 잘 쓴 콘텐츠도 AI에게는 '읽다 만 페이지'가 된다.
— 임보람
