구조·마크업 · 공식 문서
JSON-LD Product 스키마, 가격·재고·별점 넣는 법
바로 살 수 있는 상품 페이지는 판매자 등록정보 기준으로 name·image·offers 를 넣고, offers 안에 price·priceCurrency·availability 를 적습니다. 별점은 aggregateRating 으로 넣되, 페이지에 실제로 보이는 자사 리뷰의 평균만 씁니다.
상품 페이지에 Product 스키마를 넣으면 검색 결과에 가격, 재고, 별점이 붙을 수 있습니다. 그런데 구글 문서를 열면 Product 문서가 두 갈래로 나뉘어 있어 어느 쪽을 따라야 할지부터 막힙니다.
두 갈래의 차이, 속성마다 필수와 권장, JSON-LD 로 적는 모양을 구글 공식 문서로 정리했습니다.
발견 01
바로 살 수 있는 상품 페이지는 판매자 등록정보를, 리뷰·비교 페이지는 제품 스니펫을 따릅니다
| 구분 | 판매자 등록정보 | 제품 스니펫 | 공식 문서 원문 |
|---|---|---|---|
| 대상 페이지 | 그 페이지에서 바로 살 수 있는 상품 | 바로 살 수 없는 상품 페이지(리뷰·비교 페이지 등) | For pages where customers can purchase products from you. This markup has more options for specifying detailed product information, like apparel sizing, shipping details, and return policy information. For product pages where people can't directly purchase the product. This markup has more options for specifying review information, like pros and cons on an editorial product review page.판매자 등록정보는 고객이 그 사이트에서 제품을 살 수 있는 페이지용이며 의류 사이즈, 배송, 반품 정책 같은 자세한 정보를 적을 수 있다. 제품 스니펫은 바로 살 수 없는 제품 페이지용이며 편집 리뷰 페이지의 장단점 같은 리뷰 정보를 더 적을 수 있다. |
| offers | Offer 필수 | review·aggregateRating·offers 중 하나 필수, AggregateOffer 가능 | Product snippets accept an Offer or AggregateOffer but merchant listings require an Offer as the merchant has to be the seller of the product in order to be eligible for merchant listing experiences.제품 스니펫은 Offer 나 AggregateOffer 를 받지만, 판매자 등록정보는 판매자가 그 제품의 판매자여야 하므로 Offer 를 요구한다. |
| 가격 | 0 보다 큰 가격 필수 | offers 를 넣으면 필수(0 가능) | Unlike product snippets, merchant listing experiences require a price greater than zero.제품 스니펫과 달리 판매자 등록정보는 0보다 큰 가격을 요구한다. |
| priceCurrency | 필수 | 권장 | This property is currently recommended for product snippets to help Google determine the currency more accurately, but required for merchant listing experiences. It is therefore best to always provide this property.이 속성은 지금 제품 스니펫에서는 통화를 더 정확히 판단하도록 권장이지만, 판매자 등록정보에서는 필수다. 그러니 언제나 넣는 것이 좋다. |
| 겹치는 부분 | 필수 속성을 채우면 제품 스니펫 대상도 됨 | 없음 | In general, adding the required product information properties for merchant listings means that your product pages can also be eligible for product snippets.대개 판매자 등록정보의 필수 제품 정보 속성을 넣으면, 그 제품 페이지는 제품 스니펫 대상도 될 수 있다. |
자사 쇼핑몰의 상품 상세 페이지라면 판매자 등록정보 문서를 따릅니다. 그 필수 속성을 채우면 제품 스니펫 대상도 되기 때문입니다.
다른 쇼핑몰로 링크만 거는 리뷰·비교 페이지는 판매자 등록정보 대상이 아닙니다. 이 경우 제품 스니펫 문서를 따릅니다.
Only pages where a shopper can purchase a product are eligible for merchant listing experiences, not pages with links to other sites that sell the product.
쇼핑하는 사람이 그 페이지에서 제품을 살 수 있어야 판매자 등록정보 대상이다. 제품을 파는 다른 사이트로 링크만 거는 페이지는 대상이 아니다.
발견 02
판매자 등록정보의 필수 속성은 5개이고, 재고와 별점은 권장입니다
| 속성 | 뜻 | 판매자 등록정보 | 제품 스니펫 |
|---|---|---|---|
| name | 상품명 | 필수 | 필수 |
| image | 상품 사진 URL | 필수 | 문서에 없음 |
| offers | 판매 정보(Offer) | 필수 | 하나 필수 |
| offers.price | 현재 판매가 | 필수 | 필수 |
| offers.priceCurrency | 통화(KRW) | 필수 | 권장 |
| offers.availability | 재고 상태(InStock 등) | 권장 | 권장 |
| offers.priceValidUntil | 가격이 끝나는 날 | 권장 | 권장 |
| aggregateRating | 평균 별점과 개수 | 권장 | 하나 필수 |
| review | 개별 리뷰 | 권장 | 하나 필수 |
| brand.name | 브랜드 | 권장 | 문서에 없음 |
| gtin·mpn | 국제 상품 코드·제조사 부품 번호 | 권장 | 문서에 없음 |
| sku | 쇼핑몰 자체 상품 코드 | 권장 | 문서에 없음 |
| offers.shippingDetails | 배송비·배송 기간 | 권장 | 문서에 없음 |
| offers.hasMerchantReturnPolicy | 반품 정책 | 권장 | 문서에 없음 |
| JSON-LD 예시 (Product) | 값 |
|---|---|
| 넣는 태그 | <script type="application/ld+json"> |
| @context · @type | https://schema.org · Product |
| name | 린넨 반팔 셔츠 화이트 |
| image | https://example.com/photos/1x1/shirt.jpg 외 4x3·16x9 두 장 |
| sku · brand.name | LS-2401-WH · Brand 「예시 브랜드」 |
| offers.@type · url | Offer · https://example.com/products/ls-2401-wh |
| offers.price · priceCurrency | 39000 · KRW |
| offers.availability | https://schema.org/InStock |
| offers.itemCondition | https://schema.org/NewCondition |
| aggregateRating | AggregateRating · ratingValue 4.6 · reviewCount 38 |
| 항목 | 공식 문서 원문 |
|---|---|
| 제품 스니펫의 경고 | You only need to provide one of review, aggregateRating, and offers, but the product snippets section of the Rich Results Test may report a warning if you provide offers without review or aggregateRating properties.review, aggregateRating, offers 중 하나만 있으면 되지만, review 나 aggregateRating 없이 offers 만 넣으면 리치 결과 테스트의 제품 스니펫 칸에 경고가 뜰 수 있다. |
| 구글의 데이터 확인 | Google may attempt to verify merchant listing product data before showing the information in search results.구글은 판매자 등록정보의 제품 데이터를 검색 결과에 보여 주기 전에 확인하려 할 수 있다. |
| 판매자 센터 피드와 함께 | Providing both structured data on web pages and a Merchant Center feed maximizes your eligibility to experiences and helps Google correctly understand and verify your data.웹페이지 구조화 데이터와 판매자 센터 피드를 함께 제공하면 쇼핑 결과에 나올 자격이 가장 넓어지고, 구글이 데이터를 정확히 이해하고 확인하는 데 도움이 된다. |
발견 03
별점과 가격을 넣을 때 구글 문서가 적은 규칙은 7가지이고, 핵심은 화면과 같은 값입니다
| 규칙 | 공식 문서 원문 |
|---|---|
| 별점은 페이지에 보이게 | Make sure the review content you mark up are readily available to users from the marked-up page.마크업한 후기 내용은 마크업한 그 페이지에서 사용자가 바로 볼 수 있어야 한다. |
| 다른 사이트 별점 금지 | Don't aggregate reviews or ratings from other websites.다른 웹사이트의 후기나 평점을 모아 오지 않는다. |
| 가짜·대가성 리뷰 금지 | Don't include fake or undisclosed incentivized reviews on your page or in your structured data markup.가짜 후기나 대가를 밝히지 않은 후기를 페이지나 구조화 데이터에 넣지 않는다. |
| 상품 하나의 페이지 | Currently, product rich results only support pages that focus on a single product (or multiple variants of the same product).지금 제품 리치 결과는 제품 하나(또는 같은 제품의 여러 옵션)에 집중한 페이지만 지원한다. |
| 지난 가격 기한 | Your product snippet may not display if the priceValidUntil property indicates a past date.priceValidUntil 이 지난 날짜를 가리키면 제품 스니펫이 표시되지 않을 수 있다. |
| 통화마다 URL | When offering products for sale in multiple currencies, have a distinct URL per currency.여러 통화로 팔면 통화마다 URL을 따로 둔다. |
| 처음 HTML 에 넣기 | If you're a merchant optimizing for all types of shopping results, we recommend putting Product structured data in the initial HTML for best results. For JavaScript-generated Product markup: Be aware that dynamically-generated markup can make Shopping crawls less frequent and less reliable, which can be an issue for fast-changing content like product availability and price.모든 쇼핑 결과를 겨냥한다면 Product 구조화 데이터를 처음 받는 HTML 에 넣기를 권한다. 자바스크립트로 만든 마크업은 쇼핑 크롤링을 덜 자주, 덜 안정적으로 만들 수 있어 재고·가격처럼 자주 바뀌는 값에 문제가 될 수 있다. |
가격과 재고는 자주 바뀝니다. 화면의 가격을 만드는 상품 데이터에서 JSON-LD 도 함께 만들어야 둘이 늘 같은 값을 가리킵니다.
배송비와 반품 정책은 상품마다 넣기보다 Organization 마크업 아래에 사이트 전체 정책으로 한 번 정의하라고 구글이 권합니다.
발견 04
B2B·B2C·B2G 상품 페이지마다 따를 문서가 다릅니다
예시 ① 장바구니 없이 견적만 받는 산업용 부품 사이트(B2B)
그 페이지에서 살 수 없고 가격도 공개하지 않으면 판매자 등록정보 대상이 아닙니다. 제품 스니펫도 리뷰·별점·판매 정보 중 하나가 있어야 합니다.
셋 다 없다면 Product 리치 결과보다 품번과 사양을 본문 텍스트로 정확히 적는 일이 먼저입니다.
예시 ② 옵션별 URL이 있는 의류 쇼핑몰(B2C)
색상·사이즈마다 URL이 따로 있다면 같은 제품의 옵션으로 묶어 마크업할 수 있습니다. 구글은 이를 위한 제품 옵션 문서를 따로 두었습니다.
카테고리 목록 페이지에는 Product 를 넣지 않습니다. 제품 리치 결과는 상품 하나에 집중한 페이지만 지원합니다.
예시 ③ 지역 특산품을 직접 파는 공공 판매 누리집(B2G)
누리집 안에서 결제까지 된다면 판매자 등록정보 대상입니다. 입점 쇼핑몰로 링크만 건다면 제품 스니펫 문서를 따릅니다.
상품 후기를 외부 쇼핑몰에서 모아 별점으로 넣으면 리뷰 스니펫 가이드라인 위반입니다. 누리집에 직접 달린 후기만 씁니다.
그럼 우리 쇼핑몰 상품 페이지에는 어떤 순서로 넣나요?
- 상품 상세 페이지에서 바로 결제할 수 있는지 확인해 판매자 등록정보와 제품 스니펫 중 따를 문서를 고릅니다.
- 필수 속성 5개(name·image·offers·offers.price·offers.priceCurrency)를 상품 데이터에서 자동으로 채우는 JSON-LD 템플릿을 만듭니다.
- availability·aggregateRating 처럼 권장 속성은 화면에 실제로 보이는 값만 더합니다.
- 처음 받는 HTML 에 마크업이 들어가는지 페이지 소스 보기로 확인합니다.
- 상품 몇 개를 리치 결과 테스트로 검사해 오류를 고칩니다. 오류와 경고를 읽는 법은 「리치 결과 테스트」 편에 자세히 적었습니다.
- 배포 뒤 서치 콘솔 「쇼핑」 메뉴의 제품 스니펫·판매자 등록정보 보고서를 봅니다.
조사 방법
- Google Search Central 「Introduction to Product structured data」 (문서 수정일 2025-12-10) · 최종 확인일 2026-10-25 · https://developers.google.com/search/docs/appearance/structured-data/product
- Google Search Central 「Merchant listing (Product, Offer) structured data」 (문서 수정일 2026-09-08) · 최종 확인일 2026-10-25 · https://developers.google.com/search/docs/appearance/structured-data/merchant-listing
- Google Search Central 「Product snippet (Product, Review, Offer) structured data」 (문서 수정일 2026-09-08) · 최종 확인일 2026-10-25 · https://developers.google.com/search/docs/appearance/structured-data/product-snippet
- Google Search Central 「Review snippet (Review, AggregateRating) structured data」 (문서 수정일 2026-09-08) · 최종 확인일 2026-10-25 · https://developers.google.com/search/docs/appearance/structured-data/review-snippet
- Search Console Help 「Rich result report overview」 · 최종 확인일 2026-10-25 · https://support.google.com/webmasters/answer/7552505
- 속성 14개는 두 기능 문서의 Product·Offer 속성 가운데 쇼핑몰 상품 페이지에서 자주 쓰는 것을 고른 것입니다. 고른 범위는 편집 판단입니다.
- JSON-LD 예시와 예시 ①②③은 이해를 돕기 위해 만든 가상 상황이며, 실제 기업·기관의 사례가 아닙니다.
- 원문은 영어판(hl=en)이고, 기능·보고서 이름은 같은 문서 한국어판(hl=ko) 표기를 따랐습니다.