구조화 데이터
참고
이 페이지는 영어 원문의 번역입니다. 내용이 다르면 영어 문서가 우선합니다.
_config.yml에 url:이 있으면 모든 페이지에 schema.org @graph를 담은 <script type="application/ld+json"> 블록이 하나 들어갑니다. 검색 엔진과 AI 도구는 이것으로 페이지가 무엇인지 파악합니다. schema.org URL은 절대 주소여야 하므로 url:이 없으면 아무것도 출력하지 않습니다.
그래프 구성
| 노드 | @id |
내용 |
|---|---|---|
WebSite |
<url>/#website |
사이트 이름, URL, 언어, 발행자. schema.search_url이 있으면 SearchAction |
Organization 또는 Person |
<url>/#publisher |
schema.publisher(이름, URL, 로고, same_as) |
페이지 유형(WebPage와 하위 유형) |
<page>#webpage |
이름, URL, 설명, inLanguage, 이미지, 이동 경로 |
| 주 엔터티 | <page>#main |
페이지가 다루는 글, 채용 공고, 행사 등 |
BreadcrumbList |
<page>#breadcrumb |
화면의 이동 경로와 같은 내용 |
날짜는 사이트 시간대를 붙인 ISO 8601이고, 텍스트는 이스케이프되어 엄격한 CSP에서도 안전합니다.
레이아웃별 유형
| 레이아웃 | 유형 |
|---|---|
post |
BlogPosting(layout: news-article이나 kind: news이면 NewsArticle) |
doc |
TechArticle |
archive, blog, news |
CollectionPage |
author, profile, resume |
ProfilePage |
contact |
ContactPage |
search |
SearchResultsPage |
faq |
FAQPage |
| 그 밖 | WebPage |
저자는 front matter의 author/authors를 _data/authors.yml에서 찾아 넣습니다.
설정
modootoday:
schema:
publisher:
type: Organization # 또는 Person
name: Example Inc.
url: https://example.com/
logo: /assets/logo.png
same_as: [https://github.com/example]
search_url: /search/?q={search_term_string} # 선택: SearchAction
layouts:
landing: SoftwareApplication # 레이아웃의 유형 바꾸기
modootoday.schema: false(또는 schema: {enabled: false})로 끄고, 한 페이지만 끄려면 front matter에 schema: false를 씁니다. seo: false도 함께 끕니다.
seo: false와 jekyll-seo-tag를 함께 쓰면 플러그인이 <!-- Begin Jekyll SEO tag와 <!-- End Jekyll SEO tag --> 주석 사이에 자체 JSON-LD를 씁니다. modootoday-check는 이 블록이 올바른 JSON인지만 검사하고 오류 대신 경고를 냅니다. 킷이 쓰는 마크업이 아니고, 이 블록의 WebPage에는 headline만 있고 name이 없기 때문입니다. schema.org는 어떤 속성도 필수로 정하지 않고, Google도 WebPage의 필수 속성을 두지 않습니다. 필수 속성 목록은 킷이 쓰는 마크업에 적용하는 킷 자체 규칙입니다. 페이지 전체를 검사하게 하려면 킷의 태그로 옮깁니다(이전과 업그레이드).
페이지별 엔터티
front matter에 schema.type과 schema.org 속성을 적습니다. type: 키는 @type이 됩니다. name, description, url, image는 페이지에서 채웁니다.
schema:
type: JobPosting
datePosted: 2026-10-01
hiringOrganization: {type: Organization, name: Example Inc.}
jobLocation: {type: Place, address: {type: PostalAddress, addressCountry: KR}}
SoftwareApplication(offers: {type: Offer, price: 0, priceCurrency: USD}), Event, Course, PodcastEpisode, DefinedTermSet, ItemList, FAQPage(mainEntity:에 Question 목록)도 쓸 수 있습니다. 최상위의 /로 시작하는 URL은 절대 주소로 바뀌지만, 중첩된 값 안의 URL은 처음부터 절대 주소로 적어야 합니다.
검사
modootoday-check는 빌드된 사이트의 모든 블록을 오프라인으로 검사합니다. 페이지당 블록 하나, 올바른 JSON, schema.org에 있는 유형과 속성, 필수 속성(Google 기준), 겹치지 않는 @id, 절대 URL, ISO 8601 날짜, og:url·og:title·og:image·<html lang>과의 일치를 봅니다. 권장 속성 누락까지 보려면 --schema-recommended를 붙입니다.