TL;DR: 스키마 마크업 오류, 어떻게 잡을까?
- 68%의 웹사이트가 JSON-LD 검증 오류로 리치 결과를 놓치고 있음
- 구문 오류(쉼표, 괄호)가 가장 흔하고 치명적
- 필수 속성 누락은 스키마 유형별로 다르므로 각각 확인 필요
- Google Search Console의 오류와 경고를 구분하여 우선순위 대응
구조화 데이터(Schema Markup)는 검색엔진과 AI가 콘텐츠를 이해하는 핵심 수단입니다. 그러나 작은 오류 하나가 리치 결과 노출을 완전히 막을 수 있습니다.
출처: Zeo JSON-LD Issues ↗
JSON-LD를 사용하는 웹사이트의 68%가 검증 오류를 가지고 있어 리치 결과를 획득하지 못함
이 글에서는 Google Search Console과 스키마 검증 도구에서 자주 발견되는 구조화 데이터 오류 10가지와 각각의 해결 방법을 살펴봅니다.
오류 vs 경고: 우선순위 이해하기
Google Search Console에서 구조화 데이터 문제는 두 가지로 구분됩니다.
출처: Google Search Console Help ↗
오류(빨간 원)는 리치 결과가 표시되지 않는 문제, 경고(노란 삼각형)는 권장 속성 누락
| 구분 | 표시 | 영향 | 우선순위 |
|---|---|---|---|
| 오류 | 빨간 원 | 리치 결과 미표시 | 즉시 수정 |
| 경고 | 노란 삼각형 | 리치 결과 품질 저하 | 권장 수정 |
오류 1: JSON-LD 구문 오류
문제: 쉼표, 괄호, 따옴표 오류
출처: SEOClarity Structured Data Guide ↗
쉼표, 중괄호, 대괄호가 누락되거나 잘못 배치되면 전체 스키마 블록이 무효화됨
가장 흔하고 치명적인 오류입니다. 작은 구문 실수 하나가 전체 마크업을 무효화합니다.
오류 예시:
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "구조화 데이터 가이드" // ← 쉼표 누락
"author": {
"@type": "Person",
"name": "SEOX"
}
}
수정:
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "구조화 데이터 가이드",
"author": {
"@type": "Person",
"name": "SEOX"
}
}
해결 방법
- JSON-LD Validator로 구문 검사
- 모든 속성 뒤에 쉼표 확인(마지막 속성 제외)
- 중괄호와 대괄호 짝 맞춤 확인
오류 2: 필수 속성 누락
문제: 스키마 유형별 필수 속성 미포함
출처: Google Search Central - Structured Data ↗
Google 리치 결과를 위해 각 스키마 유형에는 필수 속성이 있음. Article은 headline, image, datePublished, author, publisher가 필요
스키마 유형별 필수 속성:
| 스키마 유형 | 필수 속성 |
|---|---|
| Article | headline, image, datePublished, author, publisher |
| Product | name, image, offers(price, priceCurrency, availability) |
| FAQPage | mainEntity(Question, acceptedAnswer) |
| LocalBusiness | name, address, telephone |
| Recipe | name, image, recipeIngredient, recipeInstructions |
오류 예시:
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "SEO 가이드"
// author, datePublished, image 누락
}
해결 방법
- Google Rich Results Test에서 필수 속성 확인
- 스키마 유형에 맞는 모든 필수 속성 추가
- 각 속성의 올바른 형식 준수
오류 3: 잘못된 데이터 타입
문제: 속성값의 형식 불일치
출처: SALT.agency GSC Guide ↗
속성에 예상되는 값 타입과 실제 값이 일치하지 않으면 오류 발생
오류 예시:
{
"@type": "Product",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.5점", // ← 숫자여야 함
"reviewCount": "백 개" // ← 숫자여야 함
}
}
수정:
{
"@type": "Product",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": 4.5,
"reviewCount": 100
}
}
해결 방법
- 숫자 속성: 따옴표 없이 숫자만 사용
- 날짜 속성: ISO 8601 형식(YYYY-MM-DD)
- URL 속성: 완전한 URL(https://로 시작)
오류 4: 콘텐츠 불일치
문제: 페이지 내용과 스키마 데이터 불일치
출처: The Wick Firm Schema Guide ↗
페이지에 보이는 콘텐츠와 구조화 데이터가 일치하지 않으면 검색엔진이 신뢰하지 않음
Google은 스키마 데이터와 실제 페이지 콘텐츠의 일관성을 요구합니다. 불일치가 발견되면 리치 결과가 제거될 수 있습니다.
문제 예시:
| 실제 페이지 | 스키마 데이터 | 문제 |
|---|---|---|
| 가격: 50,000원 | "price": "10000" | 가격 불일치 |
| 리뷰 없음 | "reviewCount": 100 | 허위 리뷰 수 |
| 재고 없음 | "availability": "InStock" | 재고 상태 불일치 |
해결 방법
- 스키마 데이터와 페이지 콘텐츠 동기화
- 가격, 재고, 리뷰 정보 실시간 반영
- 자동화 도구로 불일치 모니터링
오류 5: 잘못된 스키마 유형 사용
문제: 콘텐츠에 맞지 않는 스키마 선택
출처: Koanthic E-commerce Schema Guide ↗
제품 설명에 Article 스키마를 사용하거나, 일반 이벤트에 MusicEvent를 사용하는 실수가 흔함
흔한 실수:
| 콘텐츠 유형 | 잘못된 스키마 | 올바른 스키마 |
|---|---|---|
| 상품 페이지 | Article | Product |
| 블로그 글 | WebPage | Article, BlogPosting |
| 음악 공연 | Event | MusicEvent |
| 레시피 | Article | Recipe |
| FAQ 섹션 | WebPage | FAQPage |
해결 방법
- 콘텐츠 목적에 맞는 스키마 유형 선택
- Schema.org에서 유형 확인
- 세부 유형이 있으면 일반 유형보다 우선 사용
오류 6: 중복 스키마 선언
문제: 동일 페이지에 같은 스키마 중복
한 페이지에 같은 유형의 스키마가 여러 개 있으면 검색엔진이 혼란스러워합니다.
오류 상황:
<!-- 헤더에 Organization 스키마 -->
<script type="application/ld+json">
{"@type": "Organization", "name": "회사A"}
</script>
<!-- 푸터에 또 Organization 스키마 -->
<script type="application/ld+json">
{"@type": "Organization", "name": "회사A"}
</script>
해결 방법
- 페이지당 각 스키마 유형은 한 번만 선언
- CMS 플러그인과 테마 충돌 확인
- 중복 스크립트 제거
오류 7: Unparsable Structured Data
문제: 파싱 불가능한 구조화 데이터
출처: Google Unparsable Data Report ↗
Google Search Console의 "Unparsable structured data" 보고서에서 파싱 실패 원인 확인 가능
JSON-LD 형식이 완전히 깨져서 파싱조차 되지 않는 경우입니다.
일반적인 원인:
| 원인 | 예시 | 해결 |
|---|---|---|
| 이스케이프 문자 오류 | 따옴표 안에 따옴표 | 백슬래시로 이스케이프 |
| 인코딩 문제 | 특수 문자 깨짐 | UTF-8 인코딩 확인 |
| HTML 혼합 | JSON 안에 HTML 태그 | 텍스트만 사용 |
오류 예시:
{
"description": "이것은 "중요한" 내용입니다" // ← 따옴표 이스케이프 필요
}
수정:
{
"description": "이것은 \"중요한\" 내용입니다"
}
오류 8: 사용 중단된 속성 사용
문제: Deprecated 속성 사용
출처: Skittle Digital Schema Mistakes ↗
Schema.org는 정기적으로 속성을 업데이트하고 폐기함. 오래된 속성을 사용하면 무시될 수 있음
사용 중단된 속성 예시:
| 이전 속성 | 대체 속성 | 스키마 유형 |
|---|---|---|
| logo(문자열) | logo(ImageObject) | Organization |
| price(범위) | offers | Product |
| author(문자열) | author(Person) | Article |
해결 방법
- Schema.org Release History 확인
- 연간 1회 이상 스키마 업데이트 검토
- Google Rich Results Test에서 경고 확인
오류 9: 이미지 URL 문제
문제: 잘못된 이미지 URL 또는 형식
일반적인 이미지 오류:
| 오류 유형 | 예시 | 해결 |
|---|---|---|
| 상대 URL | "/images/photo.jpg" | 절대 URL로 변경 |
| 깨진 링크 | 404 이미지 | 유효한 URL 확인 |
| 잘못된 형식 | .webp(일부 미지원) | jpg, png, gif 권장 |
| 비권장 크기 | 50x50px | 최소 1200x630px |
올바른 이미지 스키마:
{
"@type": "Article",
"image": {
"@type": "ImageObject",
"url": "https://example.com/images/article-image.jpg",
"width": 1200,
"height": 630
}
}
오류 10: 스팸 지표 트리거
문제: 과도한 최적화로 스팸 판정
출처: ClickRank Schema Guide 2026 ↗
공격적인 스키마 최적화는 스팸 페널티와 리치 결과 제거를 유발할 수 있음
스팸으로 판정되는 패턴:
| 행위 | 예시 | 위험도 |
|---|---|---|
| 키워드 스터핑 | 이름에 키워드 과다 삽입 | 높음 |
| 허위 정보 | 가짜 리뷰, 허위 가격 | 매우 높음 |
| 리뷰 조작 | 실제보다 높은 별점 | 매우 높음 |
| 숨김 콘텐츠 | 사용자에게 안 보이는 스키마 | 높음 |
해결 방법
- 스키마 데이터는 실제 콘텐츠만 반영
- 리뷰와 평점은 실제 데이터 사용
- Google의 구조화 데이터 가이드라인 준수
스키마 오류 점검 도구
| 도구 | 용도 | 비용 |
|---|---|---|
| Google Rich Results Test | 리치 결과 적격성 검사 | 무료 |
| Schema.org Validator | 스키마 문법 검증 | 무료 |
| JSON-LD Playground | JSON-LD 구조 분석 | 무료 |
| 줍줍분석기 | 구조화 데이터 종합 진단 | 무료 |
자주 묻는 질문
Q1: 오류와 경고 중 무엇을 먼저 수정해야 하나요?
오류를 먼저 수정하세요. 오류는 리치 결과 표시를 완전히 차단하지만, 경고는 품질 저하만 일으킵니다. 오류 해결 후 경고를 순차적으로 수정하세요.
Q2: 스키마 수정 후 반영까지 얼마나 걸리나요?
Google Search Console에서 "수정 확인 요청" 후 2주 이상 걸릴 수 있습니다. 크롤링 빈도에 따라 달라지며, 인기 페이지는 더 빠르게 반영됩니다.
Q3: 여러 스키마를 한 페이지에 사용해도 되나요?
가능합니다. Article, Organization, BreadcrumbList 등 서로 다른 유형의 스키마는 함께 사용할 수 있습니다. 단, 같은 유형을 중복 선언하면 안 됩니다.
Q4: CMS 플러그인의 스키마가 잘못되면 어떻게 하나요?
플러그인 설정에서 수정하거나, 플러그인의 스키마를 비활성화하고 직접 JSON-LD를 추가하세요. 테마와 플러그인 간 충돌도 확인하세요.
Q5: 스키마 오류가 SEO 순위에 영향을 주나요?
스키마 오류 자체는 순위에 직접 영향을 주지 않지만, 리치 결과 미표시로 인해 CTR이 낮아질 수 있습니다. 또한 스팸 판정을 받으면 순위 하락이 발생합니다.
마무리
구조화 데이터 오류는 크게 세 가지 범주로 나눌 수 있습니다:
- 구문 오류: JSON-LD 문법 실수 → 검증 도구로 사전 점검
- 속성 오류: 필수 속성 누락, 잘못된 타입 → 스키마 유형별 요구사항 확인
- 정책 위반: 콘텐츠 불일치, 스팸 → Google 가이드라인 준수
리치 결과는 CTR을 25-82% 향상시킬 수 있는 강력한 도구입니다. 구조화 데이터 오류를 수정하여 이 기회를 놓치지 마세요.
더 자세한 상담이 필요하시면 XEO 무료 진단을 신청하세요. 사이트의 구조화 데이터를 점검하고 리치 결과 획득 전략을 제안해드립니다.
Sources
- Zeo JSON-LD Issues ↗
- Google Search Console Help ↗
- SEOClarity Structured Data Guide ↗
- Google Search Central - Structured Data ↗
- SALT.agency GSC Guide ↗
- The Wick Firm Schema Guide ↗
- Koanthic E-commerce Schema Guide ↗
- Google Unparsable Data Report ↗
- Skittle Digital Schema Mistakes ↗
- ClickRank Schema Guide 2026 ↗