12CODE

MKT FAQ

MKT FAQ 자사몰·랜딩·SEO/GEO/AEO

웹사이트 구조화 데이터 진단 도구에서 'JSON-LD 규격 오류' 및 '필수 필드(Price, Review 누락)' 경고가 발생할 때 커머스 플랫폼별 동적 변수 치환식 코딩은?

이런 질문도 같은 답입니다: JSON-LD Price 누락 오류 · 구조화데이터 필수필드 경고 · 커머스 플랫폼 JSON-LD 동적변수

답변

먼저 구글이 요구하는 필수 속성부터 정확히 확인해야 합니다. 구글이 가격·평점·재고를 리치 스니펫으로 노출하려면 JSON-LD에 name·image가 있어야 하고, offers(가격) 또는 aggregateRating·review(평점·리뷰) 중 최소 하나는 반드시 있어야 하며, offers를 쓴다면 그 안의 price·priceCurrency·availability는 빠지면 안 되는 필수 속성입니다. 이 중 하나라도 비거나 타입이 틀리면 구글은 해당 마크업 전체를 그냥 무시해버려서 리치 스니펫이 아예 노출되지 않습니다. 오류가 대량 발생하는 실제 원인은 대부분 정적 값을 하드코딩해뒀다가 실제 데이터와 어긋나는 경우입니다. 카페24·아임웹·고도몰 등 플랫폼마다 상품 데이터가 저장되는 필드명이 다르므로, JSON-LD 템플릿에는 값을 직접 박아넣지 말고 플랫폼의 치환변수를 그대로 매핑해야 합니다. 예를 들어 카페24 스마트디자인 템플릿이라면 `{$product_price}`, `{$product_no}` 같은 플랫폼 전용 치환변수를 쓰고, 자체 구축 프레임워크라면 서버사이드 렌더링 시점에 상품 객체의 price·stock·rating 값을 문자열로 직렬화해 `<script type="application/ld+json">` 블록에 주입하는 방식으로 짜야 재고·가격이 바뀔 때마다 마크업도 자동으로 최신 값을 반영합니다. 수정한 뒤에는 반드시 구글의 '리치 결과 테스트' 도구에 실제 상품 상세 URL을 넣어 검증하세요. 이 도구는 필수 속성 누락을 '오류'로, 권장하지만 필수는 아닌 속성 누락을 '경고'로 구분해 보여줍니다. 대량의 상품 페이지에 한 번에 배포하기 전에, 최소한 '오류' 항목이 0건인 것부터 확인하고 배포하는 순서를 지키는 게 안전합니다.

← FAQ 목록으로