용어집
SEO

JSON-LD

JSON-LD는 링크드 데이터(Linked Data)를 JSON으로 표현하는 W3C 표준 형식으로, '구조화 데이터'를 웹 페이지에 삽입하는 구현 방식 중 하나입니다. 구글은 구조화 데이터를 마크업하는 세 가지 방식(JSON-LD, Microdata, RDFa) 가운데 JSON-LD를 권장합니다.

  • JSON-LD는 'JSON for Linked Data'의 약자로, 링크드 데이터를 JSON 형식으로 직렬화하는 W3C 표준입니다.
  • JSON-LD는 그 자체가 어휘(vocabulary)가 아니라, 구조화 데이터를 페이지에 넣는 세 가지 구현 형식(JSON-LD·Microdata·RDFa) 중 하나입니다.
  • 구글은 구현·유지보수가 가장 쉽다는 이유로 세 형식 중 JSON-LD를 공식 권장합니다.
  • JSON-LD는 <script type="application/ld+json"> 태그로 삽입되며, 화면에 보이는 본문과 분리되어 동작합니다.
  • schema.org 어휘와 결합해 사용하면 리치 결과(rich result) 같은 검색 노출 기능의 자격 요건을 충족할 수 있습니다.

JSON-LD란 무엇인가

JSON-LD는 링크드 데이터(Linked Data)를 JSON으로 표현하기 위해 W3C가 표준화한 데이터 형식이며, 동시에 구글이 권장하는 구조화 데이터 마크업 방식입니다. 'JSON-LD'는 'JSON for Linked Data'의 약자로, json-ld.org는 이를 "사람이 읽고 쓰기 쉬운 경량 링크드 데이터 형식이며, 이미 널리 쓰이는 JSON 형식을 기반으로 데이터가 웹 규모로 상호운용되도록 돕는다"라고 정의합니다.

여기서 핵심은 JSON-LD가 의미를 정의하는 '어휘'가 아니라 의미를 담아내는 '형식'이라는 점입니다. 즉 구조화 데이터(structured data)라는 큰 개념 아래에서, 어떤 데이터를 표현할지는 보통 schema.org 어휘가 정의하고, 그 데이터를 페이지에 어떤 문법으로 적어 넣을지를 JSON-LD가 담당합니다. 구글 검색이 인식하는 구조화 데이터 형식은 JSON-LD, Microdata, RDFa 세 가지이며, JSON-LD는 그중 구현에 초점을 둔 방식입니다.

JSON-LD vs Microdata vs RDFa

세 형식 모두 schema.org 어휘를 표현할 수 있고, 마크업이 유효하기만 하면 구글에서 동등하게 처리됩니다. 차이는 '어디에·어떻게' 데이터를 적느냐에 있습니다.

구분JSON-LDMicrodataRDFa
작성 위치별도 스크립트 블록 (본문과 분리)HTML 태그 속성에 인라인 삽입HTML 태그 속성에 인라인 삽입
마크업 방식script 태그 안에 JSON 객체로 기술itemscope·itemprop 등 속성typeof·property 등 속성
본문 HTML과의 결합분리 (본문 구조 영향 없음)강하게 결합 (본문에 종속)강하게 결합 (본문에 종속)
여러 어휘 혼합·관계 역전쉬움상대적으로 어려움가능
JS·CMS로 동적 삽입용이 (구글이 인식)까다로움까다로움
구글 권장 여부권장지원지원

schema.org FAQ는 Microdata에 대해 "여러 어휘를 섞거나 속성 관계의 방향을 뒤집는 일처럼 더 어려운 부분이 있다"라고 설명하며, 이 때문에 RDFa와 JSON-LD를 함께 지원하게 되었다고 밝히고 있습니다.

예시 코드

아래는 한 조직(Organization)을 표현한 JSON-LD 예시입니다. <script type="application/ld+json"> 블록 안에 schema.org 어휘를 참조하는 JSON 객체를 넣으며, 일반적으로 페이지의 <head> 또는 <body> 안에 배치합니다.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "SearchOS",
  "url": "https://searchos.io",
  "logo": "https://searchos.io/logo.png",
  "sameAs": [
    "https://twitter.com/searchos",
    "https://www.linkedin.com/company/searchos"
  ]
}
</script>

여기서 @context는 사용할 어휘(schema.org)를 지정하고, @type은 데이터의 유형을, 나머지 키는 해당 유형의 속성을 나타냅니다. @context·@type 같은 키워드가 바로 JSON을 '링크드 데이터'로 만들어 주는 JSON-LD 고유의 문법입니다.

근거와 출처

JSON-LD 1.1은 2020년 7월 16일 W3C 권고안(Recommendation)으로 발표되었으며, 이때 함께 권고안이 된 명세는 Syntax, Processing Algorithms and API, Framing 세 가지입니다(W3C 공지). json-ld.org 역시 이 세 명세를 W3C Recommendation으로 명시하고 있습니다.

구글 검색 센트럴 문서는 JSON-LD를 "권장(Recommended)"으로 표기하며, "사이트 환경이 허용한다면 JSON-LD 사용을 권장하는데, 대규모로 구현·유지보수하기 가장 쉬운 방식이기 때문"이라고 설명합니다. 또한 "세 형식(JSON-LD·Microdata·RDFa)은 마크업이 유효하고 기능 문서에 맞게 구현되기만 하면 구글에 동등하게 적합하다"라고 안내합니다. JSON-LD 마크업이 본문 텍스트와 분리되어 동적 삽입에도 인식된다는 점도 권장의 근거로 제시됩니다.

참고·출처