Toolypet
블로그로 돌아가기
SEO

구조화 데이터 완벽 가이드 2026 - JSON-LD로 리치 결과 획득하기

Schema.org와 JSON-LD로 구글 리치 스니펫을 획득하는 방법. FAQ, How-to, Product 스키마 구현 가이드와 실전 예제.

Toolypet Team

Toolypet Team

Development Team

7 분 읽기

구조화 데이터 완벽 가이드 2026

검색 결과에서 별점, FAQ, 레시피 카드를 본 적 있나요? 그게 바로 **리치 결과(Rich Results)**입니다.

2026년 기준, 리치 결과가 있는 페이지는 CTR이 평균 58% 더 높습니다. 구조화 데이터로 여러분의 콘텐츠도 눈에 띄게 만들어보세요.


구조화 데이터란?

구조화 데이터는 검색엔진이 페이지 콘텐츠를 이해하도록 돕는 표준화된 형식입니다.

핵심 개념

용어설명
Schema.orgGoogle, Microsoft, Yahoo가 공동 개발한 어휘
JSON-LDJavaScript 기반 데이터 포맷 (Google 권장)
Rich Results구조화 데이터 기반 향상된 검색 결과
Rich Snippet리치 결과의 구버전 명칭

왜 JSON-LD인가?

포맷장점단점
JSON-LDHTML과 분리, 유지보수 쉬움JavaScript 의존
MicrodataHTML에 직접 삽입코드 복잡
RDFa유연함학습 곡선

Google 공식 권장: JSON-LD


리치 결과 유형

Google이 지원하는 주요 유형

유형표시 형태사용 사례
Article뉴스 카드블로그, 뉴스
FAQ질문/답변 펼침FAQ 페이지
How-to단계별 가이드튜토리얼
Product가격, 재고, 별점상품 페이지
Review별점 표시리뷰 콘텐츠
Recipe조리시간, 칼로리레시피
Event날짜, 장소이벤트
LocalBusiness영업시간, 위치로컬 비즈니스
BreadcrumbList경로 표시모든 페이지

JSON-LD 기본 구조

템플릿

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "스키마타입",
  "속성1": "값1",
  "속성2": "값2"
}
</script>

필수 요소

요소설명
@context항상 "https://schema.org"
@type스키마 유형 (Article, FAQ 등)
필수 속성유형별로 다름

실전 구현 예제

1. Article (블로그/뉴스)

{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "구조화 데이터 완벽 가이드 2026",
  "description": "JSON-LD로 리치 결과를 획득하는 방법",
  "image": "https://example.com/article-image.jpg",
  "author": {
    "@type": "Person",
    "name": "Sam Rank",
    "url": "https://example.com/author/sam-rank"
  },
  "publisher": {
    "@type": "Organization",
    "name": "Toolypet",
    "logo": {
      "@type": "ImageObject",
      "url": "https://toolypet.com/logo.png"
    }
  },
  "datePublished": "2026-02-22",
  "dateModified": "2026-02-22"
}

2. FAQ (자주 묻는 질문)

{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "구조화 데이터란 무엇인가요?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "구조화 데이터는 검색엔진이 페이지 콘텐츠를 이해하도록 돕는 표준화된 형식입니다."
      }
    },
    {
      "@type": "Question",
      "name": "JSON-LD를 어디에 넣어야 하나요?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "HTML의 <head> 또는 <body> 내 어디든 가능하지만, <head>에 넣는 것이 권장됩니다."
      }
    }
  ]
}

3. How-to (단계별 가이드)

{
  "@context": "https://schema.org",
  "@type": "HowTo",
  "name": "JSON-LD 구조화 데이터 추가하기",
  "description": "웹페이지에 JSON-LD를 추가하는 방법",
  "totalTime": "PT10M",
  "step": [
    {
      "@type": "HowToStep",
      "name": "스키마 유형 선택",
      "text": "페이지 콘텐츠에 맞는 Schema.org 유형을 선택합니다."
    },
    {
      "@type": "HowToStep",
      "name": "JSON-LD 코드 작성",
      "text": "선택한 스키마에 맞게 JSON-LD 코드를 작성합니다."
    },
    {
      "@type": "HowToStep",
      "name": "HTML에 삽입",
      "text": "<script type='application/ld+json'> 태그로 코드를 감싸 HTML에 삽입합니다."
    },
    {
      "@type": "HowToStep",
      "name": "테스트",
      "text": "Google Rich Results Test로 유효성을 검사합니다."
    }
  ]
}

4. Product (상품)

{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "SEO 가이드북 2026",
  "description": "최신 SEO 전략을 담은 실전 가이드",
  "image": "https://example.com/product.jpg",
  "brand": {
    "@type": "Brand",
    "name": "Toolypet"
  },
  "offers": {
    "@type": "Offer",
    "price": "29900",
    "priceCurrency": "KRW",
    "availability": "https://schema.org/InStock",
    "url": "https://example.com/product"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.8",
    "reviewCount": "124"
  }
}

5. BreadcrumbList (빵부스러기)

{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "name": "홈",
      "item": "https://example.com"
    },
    {
      "@type": "ListItem",
      "position": 2,
      "name": "SEO",
      "item": "https://example.com/seo"
    },
    {
      "@type": "ListItem",
      "position": 3,
      "name": "구조화 데이터 가이드",
      "item": "https://example.com/seo/structured-data"
    }
  ]
}

6. LocalBusiness (로컬 비즈니스)

{
  "@context": "https://schema.org",
  "@type": "LocalBusiness",
  "name": "카페 모닝글로리",
  "image": "https://example.com/cafe.jpg",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "강남대로 123",
    "addressLocality": "서울",
    "addressRegion": "강남구",
    "postalCode": "06000",
    "addressCountry": "KR"
  },
  "telephone": "+82-2-1234-5678",
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
      "opens": "09:00",
      "closes": "22:00"
    }
  ],
  "priceRange": "$$"
}

프레임워크별 구현

Next.js

// app/layout.tsx 또는 pages/_document.tsx
import Script from 'next/script';

export default function Layout({ children }) {
  const jsonLd = {
    "@context": "https://schema.org",
    "@type": "WebSite",
    "name": "Toolypet",
    "url": "https://toolypet.com"
  };

  return (
    <html>
      <head>
        <Script
          id="json-ld"
          type="application/ld+json"
          dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLd) }}
        />
      </head>
      <body>{children}</body>
    </html>
  );
}

React (Helmet)

import { Helmet } from 'react-helmet';

function ArticlePage({ article }) {
  const jsonLd = {
    "@context": "https://schema.org",
    "@type": "Article",
    "headline": article.title,
    "author": { "@type": "Person", "name": article.author }
  };

  return (
    <>
      <Helmet>
        <script type="application/ld+json">
          {JSON.stringify(jsonLd)}
        </script>
      </Helmet>
      <article>{/* 콘텐츠 */}</article>
    </>
  );
}

WordPress

// functions.php
function add_json_ld_schema() {
  if (is_single()) {
    $schema = array(
      "@context" => "https://schema.org",
      "@type" => "Article",
      "headline" => get_the_title(),
      "datePublished" => get_the_date('c')
    );
    echo '<script type="application/ld+json">' . json_encode($schema) . '</script>';
  }
}
add_action('wp_head', 'add_json_ld_schema');

검증 및 테스트

Google 공식 도구

도구URL용도
Rich Results Testsearch.google.com/test/rich-results리치 결과 적격성 테스트
Schema Markup Validatorvalidator.schema.org스키마 문법 검증
Search Consolesearch.google.com/search-console실제 색인 상태 확인

테스트 체크리스트

  • JSON 문법 오류 없음
  • 필수 속성 모두 포함
  • 실제 페이지 콘텐츠와 일치
  • 이미지 URL 유효
  • Rich Results Test 통과

흔한 실수와 해결

1. JSON 문법 오류

// ❌ 잘못됨: 마지막 쉼표
{
  "name": "테스트",
  "url": "https://example.com",  // 여기!
}

// ✅ 올바름
{
  "name": "테스트",
  "url": "https://example.com"
}

2. 필수 속성 누락

// ❌ Article에서 author 누락
{
  "@type": "Article",
  "headline": "제목만 있음"
}

// ✅ 필수 속성 포함
{
  "@type": "Article",
  "headline": "완전한 기사",
  "author": { "@type": "Person", "name": "저자" },
  "datePublished": "2026-02-22"
}

3. 콘텐츠 불일치

// ❌ 페이지와 다른 내용
{
  "@type": "Product",
  "price": "10000"  // 실제 페이지에는 15000원
}

// Google 가이드라인 위반 = 수동 조치 위험

4. 과도한 마크업

❌ 모든 텍스트를 구조화 데이터로 마크업
❌ 숨겨진 콘텐츠에 스키마 적용
❌ 사용자에게 보이지 않는 정보 포함

✅ 실제 보이는 콘텐츠만 마크업
✅ 핵심 정보만 구조화

SEO 효과

기대 효과

지표개선
CTR (클릭률)+20-58%
노출리치 결과 자격
신뢰도별점, 리뷰 표시
음성 검색답변 후보

주의사항

  • 구조화 데이터 ≠ 순위 상승 보장
  • 리치 결과 표시는 Google 재량
  • 가이드라인 위반 시 수동 조치

모범 사례 체크리스트

구현

  • 페이지 유형에 맞는 스키마 선택
  • 모든 필수 속성 포함
  • JSON-LD 형식 사용
  • <head> 내 배치

콘텐츠

  • 실제 페이지 콘텐츠와 일치
  • 사용자에게 보이는 정보만 포함
  • 최신 정보로 유지

테스트

  • Rich Results Test 통과
  • Schema Markup Validator 통과
  • Search Console에서 오류 없음

FAQ

Q1: 구조화 데이터가 순위에 직접 영향을 주나요?

A: 직접적인 순위 요소는 아닙니다. 하지만 CTR 증가, 음성 검색 답변 등 간접 효과가 있습니다.

Q2: 여러 스키마를 한 페이지에 넣어도 되나요?

A: 네! Article + FAQ + BreadcrumbList를 함께 사용하는 것이 일반적입니다. 각각 별도의 <script> 태그로 추가하세요.

Q3: 리치 결과가 안 나타나는 이유는?

A: 가능한 원인:

  • 필수 속성 누락
  • 페이지 색인 안 됨
  • Google의 재량 (보장 아님)
  • 경쟁 페이지가 더 적합

Q4: Microdata vs JSON-LD 무엇을 선택?

A: JSON-LD를 권장합니다. Google 공식 권장이며, HTML과 분리되어 유지보수가 쉽습니다.

Q5: 동적 콘텐츠도 구조화 데이터를 적용할 수 있나요?

A: 네! JavaScript로 생성되는 JSON-LD도 Google이 읽을 수 있습니다. 단, 서버 사이드 렌더링이 더 안정적입니다.


마무리

구조화 데이터 핵심:

  1. JSON-LD 사용: Google 권장 형식
  2. 적합한 스키마 선택: 콘텐츠 유형에 맞게
  3. 필수 속성 포함: 유형별 필수 요소 확인
  4. 콘텐츠 일치: 실제 보이는 내용만
  5. 테스트 필수: Rich Results Test 통과

관련 도구

도구용도
구조화 데이터 생성기JSON-LD 자동 생성
메타 태그 생성기메타 태그 생성
SERP 프리뷰검색 결과 미리보기
구조화데이터JSON-LDSchema.org리치스니펫SEO검색최적화

저자 소개

Toolypet Team

Toolypet Team

Development Team

The Toolypet Team creates free, privacy-focused web tools for developers and designers. All tools run entirely in your browser with no data sent to servers.

Web DevelopmentCSS ToolsDeveloper ToolsSEOSecurity