본문으로 건너뛰기
유환호 연락하기

홈 / 기록

페이지당 캐러셀 목록은 왜 하나만 남겨야 했나

한눈에 답변

같은 타일 세트를 마이크로데이터와 JSON-LD 두 문법으로 동시에 선언해, 홈은 목록 선언이 2개, 지역 상세 페이지는 3개가 나가고 있었다. 두 선언이 서로 다른 파일에 있어 한쪽만 보면 중복이 드러나지 않았다. 캐러셀이 실제로 붙는 페이지의 목록 선언 개수를 기준 삼아 중복된 쪽을 지우고, 페이지당 상한을 강제하는 검사를 새로 만들었다.

무엇이 발견됐나

캐러셀이 실제로 붙는 페이지들을 확인해 보니 목록 구조화 데이터 선언이 정확히 1개였다. 그런데 캐러셀이 안 붙는 홈은 2개, 지역 상세 페이지 17장은 3개였다. 검색엔진 가이드는 한 페이지에 이 선언을 하나만 두라고 권장하는데, 정면으로 어긋나 있었다.

왜 중복이 눈에 안 띄었나

같은 타일 세트를 마이크로데이터 방식과 JSON-LD 방식 두 가지로 동시에 선언하고 있었다. 두 선언은 서로 다른 파일에 있어서, 한쪽 파일만 열어 보면 문제가 없어 보인다. 전체 렌더 결과물을 합쳐서 세어야만 중복이 드러났다.

어떻게 고쳤나

캐러셀이 정상 작동하는 페이지의 구조(마이크로데이터 한 벌만)를 기준으로 삼아, 다른 페이지의 중복 JSON-LD 선언을 지웠다. 다만 컴포넌트가 경로를 보고 판정해 특정 페이지 그룹에서만 숨은 선언을 끄도록 만들었다 — 화면에 보이는 타일과 내부 링크는 그대로 두고, 중복되는 스키마 선언만 정리하는 방식이다.

전부 똑같이 맞췄나

아니다. 이미 다른 이유로 목록 선언이 2개인 페이지 8곳은 대조군으로 그대로 남겨 뒀다. 모든 페이지를 하나의 규칙으로 강제로 맞추는 것보다, 실제로 캐러셀이 붙는지 붙지 않는지를 비교할 수 있는 표본을 남겨 두는 것이 더 유용하다고 판단했다.

재발을 어떻게 막았나

빌드 결과물에서 마이크로데이터와 JSON-LD 두 문법을 합쳐서 세고, 페이지당 상한을 넘으면 실패시키는 검사를 새로 만들어 상시 실행에 넣었다. 컴포넌트에 값을 넘기는 것을 깜빡한 페이지가 조용히 중복 선언을 내보내는 것을, 사람이 매번 눈으로 확인하지 않아도 되게 했다.