캐러셀 구조화 데이터는 여러 콘텐츠를 카드형 검색결과로 표시할 수 있도록 각 항목의 정보를 설명하는 데이터입니다. ItemList는 목록 전체를, ListItem은 목록 안의 각 항목을 나타냅니다. 같은 타입을 쓰더라도 Google과 네이버가 요구하는 속성과 지원 콘텐츠는 다릅니다.
ItemList와 ListItem의 관계
다음 코드는 각 항목의 상세 페이지로 연결하는 목록의 예입니다. itemListElement에 ListItem을 넣고, position으로 순서를, url로 상세 주소를 표시합니다.
{
"@context": "https://schema.org",
"@type": "ItemList",
"itemListElement": [
{"@type": "ListItem", "position": 1, "url": "https://example.com/item-a"},
{"@type": "ListItem", "position": 2, "url": "https://example.com/item-b"}
]
}
위 코드는 Google의 목록 페이지에 쓰는 구조만 보여 줍니다. 지원 콘텐츠 유형에 맞는 상세 페이지의 구조화 데이터도 필요합니다.
Google 캐러셀의 지원 유형과 페이지 구성
Google의 기본 캐러셀 가이드는 같은 사이트의 콘텐츠를 모바일에서 넘겨 보는 호스트 캐러셀을 다룹니다. 같은 유형의 항목이 최소 2개 있어야 하며, 지원 유형은 강좌 목록(Course list), 영화(Movie), 레시피(Recipe), 음식점(Restaurant)입니다. 일반 블로그 글 목록에 ItemList만 추가한다고 이 기능의 대상이 되지는 않습니다.
Google은 페이지 구성에 따라 작성 방법을 나눕니다.
- 목록과 상세 페이지가 따로 있는 경우: 목록의
ListItem에는@type,position,url을 적습니다. 각 상세 페이지에는 Recipe나 Movie 등 해당 유형의 구조화 데이터가 있어야 합니다. - 한 페이지에 모든 항목의 내용을 담는 경우: 각 항목의
item안에 이름과 URL, 해당 콘텐츠 유형의 속성을 작성합니다. URL은 현재 페이지 안의 해당 항목으로 이동하는 앵커를 포함해야 합니다.
네이버 캐러셀과 차이
네이버 가이드에서는 항목을 나타내는 image가 필수입니다. name, url, position은 선택 속성입니다. item을 작성할 경우에도 그 안에 이미지가 필요하며, Thing의 하위 유형을 사용할 수 있습니다.
이미지는 썸네일 대신 원본을 쓰고, 해당 항목을 잘 나타내야 합니다. 로고나 기본 이미지, 깨진 이미지는 피하며 항목과 이미지의 중복도 없애야 합니다. 네이버는 한 페이지에 하나의 목록을 작성하도록 권장합니다. 이런 요건을 맞춰도 실제 검색결과의 카드 노출을 보장하지는 않습니다.
작성 후 검증할 항목
먼저 화면에 보이는 목록과 구조화 데이터의 항목, 순서, URL과 이미지가 맞는지 대조합니다. Schema.org Validator에서는 타입과 속성의 문법을 검사할 수 있지만, 이것만으로 검색엔진별 노출 요건까지 충족했다고 판단할 수는 없습니다.
Google용 마크업은 리치 결과 테스트로 지원 유형과 필수 속성을 검사합니다. 목록과 상세 페이지를 나눠 작성했다면 양쪽을 모두 검사해야 합니다. 네이버용 마크업은 이미지 누락과 중복, 절대 URL 사용 여부를 공식 가이드와 대조합니다.
자주 묻는 질문
브레드크럼도 ListItem을 쓰는데 같은 기능인가요?
둘 다 ListItem을 쓰지만 표현하는 목록이 다릅니다. BreadcrumbList는 현재 페이지까지의 탐색 경로를, 캐러셀용 ItemList는 검색결과에 표시할 콘텐츠 목록을 표현합니다.
상품 목록도 Google 호스트 캐러셀 대상인가요?
Google의 기본 캐러셀 문서가 나열한 네 유형에는 상품이 없습니다. 별도의 캐러셀 베타 기능은 Product를 지원하지만 지역과 검색 유형 등의 요건이 다릅니다. 상품 목록에 ItemList를 쓸 수 있다는 사실만으로 기본 캐러셀 대상이라고 판단해서는 안 됩니다.
함께 알아두면 좋은 용어
- 브레드크럼: 페이지 이동 경로 목록
- 레시피 구조화 데이터: Google 호스트 캐러셀 지원 유형
- 영화 구조화 데이터: ItemList와 결합하는 영화 항목