본문 바로가기
SEO·GEO 용어사전

판매 조건 구조화 데이터 (Offer, 오퍼 스키마)

마지막 업데이트

판매 조건 구조화 데이터는 상품의 현재 가격과 통화, 재고, 구매 URL 같은 조건을 Offer 유형으로 표현한 데이터입니다. 상품 자체를 뜻하는 Product와 다르며, 여러 판매처나 가격 범위를 합치면 AggregateOffer를 씁니다.

이 글은 Google 검색 센터와 Schema.org의 공식 문서를 기준으로 작성했습니다.

Product 안에 판매 조건을 넣습니다

{
  "@type": "Offer",
  "url": "https://example.com/product",
  "price": "29000",
  "priceCurrency": "KRW",
  "availability": "https://schema.org/InStock"
}

Google 판매자 등록정보에서는 현재 가격이나 priceSpecification.price와 통화가 필수입니다. Product snippet에서는 Product에 리뷰, 집계 평점 또는 Offer 가운데 하나가 있으면 후보가 될 수 있지만, 가격을 쓴다면 통화와 실제 표시값을 맞추세요.

상품과 정책을 섞지 마세요

Product는 무엇을 파는지, Offer는 얼마에 어떤 조건으로 파는지를 말합니다. 사업자 전체의 표준 배송과 반품 정책은 Organization 아래에 두고, 특정 상품만 다른 예외가 있을 때 Offer에 중첩합니다.

정가와 판매가, 회원가를 아무 속성에나 함께 적으면 검색엔진과 고객이 현재 결제 금액을 알기 어렵습니다. Google의 priceSpecification 지침에 맞춰 가격 종류와 유효 기간을 구분해야 합니다.

네이버에는 Offer 전용 검색 기능 명세가 없습니다. 네이버가 Schema.org 데이터를 읽을 수 있다는 사실을 상품 노출 보장으로 확대하지 마세요.

확인하는 방법

가격, 통화, 재고와 URL을 페이지의 구매 영역과 한 줄씩 비교합니다. 할인 종료와 품절 뒤에도 JSON-LD가 갱신되는지 테스트하세요. Validator로 Product와 Offer 중첩을 보고 Google 리치 결과 테스트에서 목표 상품 기능을 확인합니다.

자주 묻는 질문

무료 상품은 price를 0으로 넣어도 되나요?

Schema.org 표현 가능 범위와 Google 기능 요건은 다릅니다. Google의 Merchant listing 현재 가격은 0보다 커야 하므로 무료 제공 페이지를 같은 기능 대상으로 설명하면 안 됩니다.

여러 판매자의 가격은 어떻게 쓰나요?

최저가와 최고가, 판매 제안 수를 나타내는 AggregateOffer를 검토합니다. 자사 한 판매 조건을 가격 범위로 뭉치지 마세요.

함께 알아두면 좋은 용어

참고 문서