같은 순위에 떠도 어떤 결과는 별점과 후기 수가 함께 보이고, 어떤 결과는 제목과 회색 URL 한 줄뿐입니다. 이 차이를 만드는 것이 구조화 데이터(Structured Data), 흔히 스키마 마크업이라 부르는 코드입니다. 홈페이지 디자인이나 카피만큼 눈에 띄지 않지만, 검색 결과 화면에서는 오히려 더 직접적인 차이를 만듭니다.
구조화 데이터란 무엇인가
구조화 데이터는 schema.org라는 공통 어휘 체계를 이용해, "이 페이지는 회사 소개다", "이 글은 2026년 9월에 발행된 블로그 글이다", "이 상품은 가격이 얼마다"처럼 페이지의 내용을 검색엔진이 이해할 수 있는 형태로 정리해서 알려주는 코드입니다. 사람은 페이지를 읽으면서 어디가 제목이고 어디가 가격인지 자연스럽게 구분하지만, 검색엔진 크롤러는 HTML 구조만으로는 이를 완벽히 구분하기 어렵습니다. 구조화 데이터는 이 해석의 모호함을 줄여주는 역할을 합니다.
구조화 데이터를 넣는 방식은 세 가지가 있지만, 구글이 공식적으로 권장하는 방식은 JSON-LD입니다. 본문 HTML 구조를 건드리지 않고 <script type="application/ld+json"> 태그 하나로 페이지 정보를 따로 정리해서 넣을 수 있어, 디자인이나 퍼블리싱에 영향을 주지 않으면서 적용하기가 가장 쉽습니다. 이 블로그의 모든 글에도 JSON-LD 형식으로 구조화 데이터를 넣고 있습니다.
왜 구조화 데이터가 필요한가
1. 리치 스니펫으로 검색 결과가 더 눈에 띈다
제품 리뷰의 별점, 레시피의 조리 시간, FAQ의 질문·답변 아코디언, 빵부스러기(breadcrumb) 경로처럼 검색 결과에서 제목과 URL 이상의 정보가 함께 표시되는 것을 리치 스니펫이라고 합니다. 같은 순위라도 리치 스니펫이 있는 결과가 더 많은 정보를 미리 보여주기 때문에 클릭률이 높아지는 경향이 있습니다.
2. 검색엔진이 콘텐츠를 더 정확히 이해한다
사업체의 업종, 위치, 영업시간을 구조화 데이터로 명확히 제공하면, 검색엔진이 "지역 검색"이나 "지도 검색" 맥락에서 해당 페이지를 더 정확한 결과로 매칭시킬 확률이 올라갑니다. 애매하게 텍스트로만 적혀 있는 정보보다 명시적으로 태깅된 정보가 신뢰도 높은 근거로 취급됩니다.
3. AI 검색·생성형 엔진 대응에도 유리하다
챗GPT, 퍼플렉시티 같은 생성형 검색 서비스는 페이지 전체를 처음부터 읽고 요약하기보다, 명확하게 구조화된 정보를 우선적으로 참조하는 경향이 있습니다. 구조화 데이터를 갖춘 페이지는 이런 GEO(생성형 엔진 최적화) 관점에서도 유리한 출발선에 서게 됩니다. GEO에 대한 더 자세한 내용은 아래 글에서 다뤘습니다.
홈페이지에서 자주 쓰는 스키마 타입
schema.org에는 수백 개의 타입이 있지만, 일반적인 홈페이지·블로그 운영에서는 아래 몇 가지만 정확히 알아도 충분합니다.
| 스키마 타입 | 적용 위치 | 주요 목적 |
|---|---|---|
| Organization | 홈페이지, 회사소개 페이지 | 회사명, 로고, 연락처, SNS 채널을 검색엔진에 공식 정보로 등록 |
| LocalBusiness | 매장·지점이 있는 업종 | 주소, 영업시간, 전화번호로 지역 검색·지도 노출에 활용 |
| BlogPosting / Article | 블로그 글, 칼럼 | 제목, 발행일, 작성자, 발행처를 명시해 뉴스·블로그 검색에 활용 |
| FAQPage | 자주 묻는 질문 섹션이 있는 페이지 | 질문·답변을 검색 결과 아코디언 형태로 노출 |
| Product / Offer | 쇼핑몰 상품 상세 페이지 | 가격, 재고 상태, 리뷰 평점을 검색 결과에 노출 |
| BreadcrumbList | 카테고리 구조가 있는 모든 페이지 | 검색 결과 URL 자리에 페이지 경로를 계층적으로 표시 |
| Review / AggregateRating | 후기가 쌓이는 업체·상품 페이지 | 별점과 리뷰 수를 검색 결과에 직접 노출 |
JSON-LD 실전 작성법
가장 기본이 되는 회사 정보(Organization) 스키마는 아래와 같은 형태로 작성합니다. </head> 태그 바로 앞에 넣는 것이 가장 일반적인 방식입니다.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "회사명",
"url": "https://example.com",
"logo": "https://example.com/logo.png",
"sameAs": [
"https://www.instagram.com/example",
"https://www.facebook.com/example"
]
}
</script>
블로그 글이라면 BlogPosting 타입을 사용하며, headline(제목), datePublished(발행일), dateModified(수정일), author(작성자), publisher(발행 주체)까지 채워주는 것이 원칙입니다.
페이지에 자주 묻는 질문(FAQ) 섹션이 있다면, BlogPosting과는 별개의 <script> 태그로 FAQPage 스키마를 추가로 넣어줍니다. 한 페이지에 여러 개의 application/ld+json 스크립트를 넣는 것은 전혀 문제가 되지 않습니다.
구조화 데이터 검증하는 법
- 구글 리치 결과 테스트 — URL이나 코드를 붙여넣으면 어떤 리치 스니펫이 인식되는지, 오류나 경고가 있는지 바로 확인할 수 있습니다.
- Schema Markup Validator — schema.org 문법 자체가 올바른지 좀 더 엄격하게 검사합니다.
- 구글 서치 콘솔 — 실제로 구글이 내 사이트의 구조화 데이터를 어떻게 인식하고 있는지, 시간이 지나면서 노출 리포트로 확인할 수 있습니다.
서치 콘솔과 애널리틱스를 아직 연동하지 않았다면 아래 글을 먼저 참고해보시길 권합니다.
자주 하는 실수
- 모든 페이지에 같은 스키마를 복붙한다 — 페이지마다 실제 내용에 맞는 타입을 써야 합니다. 블로그 글에 Product 스키마를 넣는 식의 불일치는 오히려 신뢰도를 떨어뜨립니다.
- 화면에 없는 정보를 스키마에만 넣는다 — 검증은 통과할 수 있어도 가이드라인 위반으로 페널티를 받을 수 있습니다.
- 날짜를 갱신하지 않는다 — 글을 수정했다면
dateModified도 함께 최신 날짜로 업데이트해야 합니다. - 사이트맵·canonical과 따로 논다 — 구조화 데이터의
url값은 반드시 canonical 태그와 사이트맵에 등록된 URL과 일치해야 합니다.
URL 구조와 canonical 설정 전반을 아직 점검해본 적이 없다면, 리뉴얼 시점에 함께 정리하는 것을 추천합니다.
정리하며
구조화 데이터는 화려한 결과를 즉시 만들어주는 장치는 아닙니다. 하지만 같은 콘텐츠, 같은 순위라도 검색 결과 화면에서 더 많은 정보를 보여주고, 검색엔진과 AI 검색 도구 모두에게 "이 페이지는 무엇에 대한 페이지인지" 더 명확하게 전달하는 기본기입니다. 홈페이지 SEO의 다른 요소들과 마찬가지로, 한 번 제대로 구조를 잡아두면 이후에는 페이지를 추가할 때마다 같은 틀을 반복해서 쓰기만 하면 됩니다.
SEO 기본기부터 다시 점검하고 싶다면 아래 글도 함께 참고해보세요.
자주 묻는 질문
구조화 데이터를 넣으면 검색 순위가 바로 올라가나요?
구조화 데이터 자체는 직접적인 순위 상승 요인은 아닙니다. 다만 검색 결과에 별점, FAQ, 빵부스러기 같은 리치 스니펫이 노출되면 클릭률이 올라가고, 검색엔진이 페이지 내용을 더 정확히 이해하게 되어 간접적으로 노출과 트래픽에 긍정적인 영향을 줍니다.
구조화 데이터는 어디에 넣어야 하나요?
JSON-LD 형식이라면 보통 head 태그 안, 혹은 body 어디에 넣어도 검색엔진이 인식합니다. 다만 관리 편의성과 관례상 head 태그를 닫기 직전에 script 태그로 삽입하는 방식을 가장 많이 씁니다.
모든 페이지에 구조화 데이터를 넣어야 하나요?
전체에 넣을 필요는 없습니다. 홈페이지에는 Organization이나 LocalBusiness, 블로그 글에는 BlogPosting이나 Article, 상품 페이지에는 Product, FAQ가 있는 페이지에는 FAQPage처럼 페이지의 실제 콘텐츠 유형에 맞는 스키마만 넣는 것이 원칙입니다.