JSON-LD는 연결된 데이터의 의미와 관계를 JSON 문법으로 표현하는 형식입니다. 웹페이지에서는 보통 <script type="application/ld+json"> 안에 Schema.org 유형과 속성을 적습니다. 일반 JSON 파일이나 API 응답이 모두 JSON-LD인 것은 아닙니다.
이 글은 W3C, Google 검색 센터와 네이버 서치어드바이저의 공식 문서를 기준으로 작성했습니다.
JSON과 JSON-LD의 차이
JSON은 이름과 값을 묶어 데이터를 적는 문법입니다. JSON-LD는 여기에 @context, @type, @id 같은 키워드를 더해 데이터가 무엇을 뜻하고 다른 대상과 어떻게 연결되는지 표현합니다.
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "AVCD",
"url": "https://avcd.kr"
}
이 예시는 대상을 Organization으로 지정하고 이름과 URL을 연결합니다. @context가 없고 임의의 키만 담긴 설정 파일은 JSON일 수는 있어도 같은 의미의 JSON-LD 구조화 데이터는 아닙니다.
Microdata보다 관리하기 쉬운 이유
Microdata는 화면에 보이는 HTML 요소마다 itemprop 같은 속성을 붙입니다. JSON-LD는 표시용 HTML과 떨어진 스크립트 한곳에 모을 수 있어 템플릿을 관리하기 쉽습니다. Google은 JSON-LD, Microdata, RDFa를 모두 지원하지만 구현과 유지가 쉽다는 이유로 JSON-LD를 권장합니다. 네이버도 세 형식을 소개하며 JSON-LD 또는 Microdata를 권장합니다.
별도 코드라고 화면 내용과 달라도 되는 것은 아닙니다. 가격, 평점, 작성자처럼 마크업한 핵심 정보는 사용자가 페이지에서 확인할 수 있어야 합니다.
작성하고 확인하는 순서
- 페이지가 설명하는 대상을 하나 정합니다
- Schema.org에서 가장 구체적인 유형과 속성을 고릅니다
- JSON-LD를 페이지의
<head>나<body>에 넣습니다 - Schema Markup Validator에서 문법과 관계를 확인합니다
- Google 지원 기능이라면 리치 결과 테스트도 실행합니다
- 배포 뒤 Search Console URL 검사에서 렌더링된 코드가 감지되는지 봅니다
쉼표 하나가 빠지거나 따옴표가 잘못 닫히면 전체 블록이 파싱되지 않을 수 있습니다. CMS에서 자동 생성한다면 화면 데이터와 같은 원본을 쓰는 편이 안전합니다.
자주 묻는 질문
JSON-LD를 넣으면 검색 순위가 오르나요?
형식을 사용했다는 사실만으로 순위 상승을 보장할 수 없습니다. 검색엔진이 내용을 구분하고 지원 기능의 후보인지 판단하도록 돕습니다.
화면에 보이지 않는 정보도 넣어도 되나요?
사이트 주소나 내부 식별자처럼 사용자가 직접 볼 필요가 없는 기술값도 있습니다. 그러나 검색 기능에 영향을 주는 가격, 리뷰, 행사 일정 같은 핵심 정보는 화면 내용과 일치해야 합니다.
함께 알아두면 좋은 용어
- Schema.org: JSON-LD 안에서 주로 쓰는 공용 어휘
- 마이크로데이터: HTML 요소에 속성을 붙이는 방식
- 스키마 마크업 검사기: 일반 Schema.org 구문 검사 도구