페이월 콘텐츠 구조화 데이터는 구독이나 회원 등록이 필요한 구간을 Google에 알리는 마크업입니다. 제한된 본문도 검색엔진이 수집하고 색인하도록 운영할 때 추가합니다. Google이 정상적인 접근 제한을 클로킹과 구별하도록 돕습니다.
마크업과 실제 제한 구간 연결하기
{
"@context": "https://schema.org",
"@type": "NewsArticle",
"isAccessibleForFree": false,
"hasPart": {
"@type": "WebPageElement",
"isAccessibleForFree": false,
"cssSelector": ".paywall"
}
}
이 코드는 NewsArticle에서 페이월을 표시하는 속성만 뽑은 예시입니다. 페이지 전체 또는 일부가 구독이나 등록 뒤에 열리면 isAccessibleForFree를 false로 설정합니다. 이 값은 Google의 필수 속성입니다.
제한 구간을 구체적으로 지정하는 hasPart는 권장 속성입니다. 예시의 .paywall은 HTML에서 class="paywall"이 붙은 요소를 가리킵니다. Google은 cssSelector에 클래스 선택자만 허용하고, 제한 구간끼리 중첩하지 않도록 안내합니다.
마크업과 접근 권한은 별도로 설정
마크업은 유료 구간을 설명할 뿐, 결제나 로그인 기능을 만들지는 않습니다. 비구독자의 브라우저에 본문을 전달하지 않으려면 서버가 접근 권한을 확인하도록 구현해야 합니다. 화면에서 CSS로 가리는 것만으로는 전달된 본문을 보호할 수 없습니다.
유료 본문까지 Google 검색에 색인하려면 Googlebot이 그 내용을 읽을 수 있어야 합니다. 검색결과에서 일부 내용을 미리 보여 주지 않으려면 해당 구간에 data-nosnippet을 쓰거나 max-snippet으로 설명문 길이를 제한합니다. 페이월 마크업 자체가 특별한 배지를 표시하거나 순위 상승을 보장하지는 않습니다.
마크업과 본문 확인하기
- HTML에서 제한 구간의 클래스 이름을 확인하고
cssSelector와 대조합니다. - Schema Markup Validator에서 데이터 형식을 검사하고, Google 리치 결과 테스트에서 오류를 확인합니다.
- Search Console URL 검사에서 Google이 렌더링한 본문에 색인하려는 내용이 있는지 봅니다.
- 로그인 전후의 화면을 비교해 실제 접근 제한이 의도대로 작동하는지 확인합니다.
자주 묻는 질문
회원가입만 하면 무료인 글도 대상인가요?
네. Google의 안내는 유료 구독뿐 아니라 회원 등록 뒤에만 읽을 수 있는 콘텐츠도 포함합니다. 회원가입이 무료여도 누구나 바로 읽을 수 없는 구간은 마크업에 표시합니다.
유료 구간을 숨기면 클로킹이 아닌가요?
Google은 구독자와 같은 본문을 Googlebot에 제공하고 구독 콘텐츠 지침을 따르는 페이월을 클로킹으로 보지 않습니다. 제한 구간은 마크업에 정확히 표시해야 합니다. 검색로봇에게만 본문과 무관한 키워드나 다른 내용을 보여 주는 행위가 이 마크업으로 허용되는 것은 아닙니다.
함께 알아두면 좋은 용어
- 구조화 데이터: 콘텐츠의 의미와 속성을 정해진 형식으로 표현한 데이터
- Schema.org: CreativeWork와 WebPageElement 등 구조화 데이터의 유형과 속성을 정의하는 어휘 체계
- 구글 색인: Google이 수집한 콘텐츠를 분석해 검색용 데이터베이스에 저장하는 과정