Citeon
업종 심화

구독 서비스의 AI 검색 리텐션 전략

김태오
김태오 · 그로스·퍼포먼스 리드

구독 서비스의 AI 검색 리텐션 전략은 두 가지 구분되는 쿼리 클래스를 동시에 다룬다. 첫째는 이탈 의도 쿼리("[서비스명] 해지 방법", "[서비스명] 환불 정책"), 둘째는 가치 재확인 쿼리("[서비스명] vs [경쟁사]", "[서비스명] 팀 플랜 기능"). ChatGPT Search, Perplexity, Google AI Overviews는 이 두 클래스에서 서로 다른 인용 후보 선정 기준을 적용한다. 이탈 의도 쿼리에서는 공식 헬프센터·FAQ 페이지를 우선 인용하고, 비교 쿼리에서는 정량 데이터가 포함된 구조화 페이지를 선호한다. 자사 페이지가 인용 후보에서 누락되면 AI 엔진은 제3자 리뷰 사이트나 경쟁사 블로그를 대신 인용한다. 이것이 리텐션 손실로 이어지는 메커니즘이다.

AI 엔진의 구독 쿼리 처리 메커니즘

AI 검색 엔진은 구독 관련 쿼리를 의도에 따라 세 클래스로 분류한 뒤 클래스별로 다른 소스 가중치를 적용한다.

Product + Offer JSON-LD 구현: 구독 스키마 실전

구독 서비스 페이지에는 Product 타입에 월정액 Offer를 중첩하고, 취소·플랜 차이 FAQ를 별도 FAQPage 블록으로 추가한다. eligibleDuration.unitCodeMON을 명시하지 않으면 Google Rich Results가 해당 가격을 일회성으로 오파싱할 수 있다.

/* 구독 플랜 상세 페이지 <head> 또는 <body> 최하단 삽입
   type="application/ld+json" 스크립트 블록 두 개 병렬 사용 */

// 블록 1 — Product + Offer (월정액 구독)
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "마케팅 자동화 플랫폼 — 팀 플랜",
  "description": "최대 10인 팀을 위한 구독. 월 50,000 API 호출, 무제한 캠페인, 전담 CS 포함.",
  "brand": { "@type": "Brand", "name": "Acme" },
  "offers": {
    "@type": "Offer",
    "price": "89000",
    "priceCurrency": "KRW",
    "priceValidUntil": "2026-12-31",
    "availability": "https://schema.org/InStock",
    "eligibleDuration": {
      "@type": "QuantitativeValue",
      "value": 1,
      "unitCode": "MON"
    },
    "url": "https://example.com/pricing"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.6",
    "reviewCount": "312"
  }
}

// 블록 2 — FAQPage (취소·플랜 차이 쿼리 인용용)
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "구독을 언제든지 취소할 수 있나요?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "네. 계정 설정 > 구독 관리 > 구독 취소에서 즉시 취소 가능합니다. 취소 후에도 현재 결제 기간 종료일까지 서비스를 이용할 수 있습니다."
      }
    },
    {
      "@type": "Question",
      "name": "팀 플랜과 비즈니스 플랜의 차이는 무엇인가요?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "팀 플랜은 최대 10인, API 50,000회/월입니다. 비즈니스 플랜은 인원 무제한, API 500,000회/월, SSO 및 감사 로그를 추가 제공합니다."
      }
    }
  ]
}

이탈 방어 콘텐츠 아키텍처

AI 엔진 인용 관점에서 구독 서비스의 콘텐츠는 세 레이어로 구분해 설계한다.

  1. 헬프센터 / FAQ 레이어: 취소·환불·플랜 변경 절차를 FAQPage JSON-LD로 마크업. 이탈 의도 쿼리에서 공식 헬프센터가 제3자 리뷰 사이트 대비 인용 우선순위를 가지기 때문이다. URL 경로를 의도와 정렬(/help/cancel-subscription)하고, 답변 텍스트 첫 문장에 질문 자체를 반복해 AI 파싱 정확도를 높인다.
  2. 비교 페이지 레이어: /compare/[서비스명]-vs-[경쟁사] 형태의 전용 URL에 HTML <table>으로 기능 매트릭스를 구조화. Article JSON-LD의 dateModified를 분기 1회 이상 갱신해 "최신 정보" 신호를 유지해야 한다.
  3. 기능 상세 레이어: 기능 페이지에 수치 기반 스펙(월 API 호출 수, 저장 용량, 최대 좌석 수)을 텍스트로 명시. UI 스크린샷만으로 설명하면 AI 크롤러가 정보를 파싱하지 못한다. 이미지 아래에 반드시 텍스트 설명 단락을 병행 배치한다.

llms.txt를 통한 AI 크롤러 접근 제어

llms.txt는 루트 도메인에 두는 텍스트 파일로, OpenAI GPTBot, Anthropic ClaudeBot 등 AI 크롤러에게 인용 허용·제외 경로를 명시한다. 구독 서비스에서 핵심은 비즈니스 목적과 무관한 경로(대시보드, 결제 처리, 내부 API)를 명시적으로 제외하는 것이다.

# example.com — 마케팅 자동화 플랫폼 llms.txt
> AI 어시스턴트용 안내: 플랜 비교·기능·취소 절차 페이지 인용 허용.
> 사용자 대시보드·내부 API 문서·결제 경로 인용 금지.

## Allowed
- /pricing             (구독 플랜 및 월정액 가격)
- /features            (기능 목록 및 스펙)
- /compare             (경쟁사 기능 비교 매트릭스)
- /help/cancel-subscription  (취소 절차)
- /help/refund-policy  (환불 정책)
- /changelog           (릴리스 노트 — 기능 업데이트 인용용)

## Disallowed
- /admin
- /api
- /user/
- /checkout
- /internal

llms.txt는 현재 초안 사양으로 표준이 확정되지 않았다. GPTBot·ClaudeBot은 robots.txt의 Disallow를 우선 준수하므로 llms.txt만 설정하고 robots.txt를 방치하면 효과가 없다. 두 파일을 병행 운영해야 한다.

AI 리퍼러 귀속 측정

AI 검색 리퍼러는 document.referrerchat.openai.com, perplexity.ai, www.bing.com/chat 등으로 나타난다. GA4의 기본 채널 그룹핑은 이 도메인을 "Direct" 또는 "Referral"로 흡수한다. 관리자 → 채널 그룹 → 사용자 정의 채널 "AI Search"를 추가하고, 소스 정규식 (perplexity\.ai|chat\.openai\.com|bing\.com/chat|claude\.ai)로 필터링해야 AI 인용 전환율을 별도로 측정할 수 있다.

구분 SEO AEO GEO (생성형)
주요 신호 백링크·PageRank·CTR FAQPage·HowTo JSON-LD 인용 빈도·문장 밀도·출처 권위
이탈 쿼리 커버리지 낮음 (랭킹 경쟁 의존) 높음 (FAQPage 직접 파싱) 높음 (헬프센터 전체 컨텍스트 인용)
측정 지표 클릭 수·순위 변화 Featured Snippet 등장 수 AI 리퍼러 세션·구독 전환율
업데이트 반영 속도 주~월 단위 (재크롤링) 크롤러 재방문 시 LLM 학습 주기 (비정기·수개월)
구독 서비스 핵심 적용점 비교 페이지 랭킹 취소·환불 FAQPage llms.txt + 기능 문서 구조화

흔한 오해: "취소 안내 페이지를 AI 인용에서 숨겨야 리텐션에 유리하다"

취소 페이지를 robots.txt로 차단하거나 llms.txt 허용 목록에서 제외하면, AI 엔진은 제3자 소비자 커뮤니티나 리뷰 사이트의 해지 방법 포스팅을 대신 인용한다. 제3자 콘텐츠에는 절차 오류·과장된 불만이 포함될 가능성이 높다. 올바른 처리법은 취소 페이지를 AI 인용 허용 목록에 포함하되, 페이지 본문에 취소 절차와 함께 플랜 다운그레이드 옵션, 일시 정지 기능, 전담 CS 연결 방법을 구조화된 텍스트로 나란히 배치하는 것이다. AI 엔진은 맥락이 충분한 공식 페이지를 인용할 때 단순 취소 절차 외에 대안 옵션도 함께 노출하는 경향이 있다.

구독 서비스 FAQ 페이지에서 여러 플랜 정보를 한 URL에 합치는 것이 AEO에 유리한가요, 분리하는 것이 유리한가요?

AI 엔진의 인용 단위는 단일 URL이다. 플랜별 FAQ가 한 페이지에 섞이면 특정 플랜 쿼리에 대해 AI가 관련 없는 다른 플랜 답변을 함께 인용하는 오파싱이 발생한다. 플랜별 FAQ를 /help/team-plan-faq, /help/business-plan-faq처럼 별도 URL로 분리하고 각 페이지에 독립적인 FAQPage JSON-LD를 삽입하는 방식이 인용 정확도를 높인다. 단, 내부 링크로 플랜 간 상호 연결을 유지해 크롤러가 플랜 체계를 파악할 수 있게 해야 한다.

경쟁사 비교 페이지에서 경쟁사 브랜드명을 직접 명시해도 AI 엔진 인용 측면에서 문제가 없나요?

AI 엔진 인용 측면에서는 문제가 없다. Perplexity·ChatGPT Search는 "[A] vs [B]" 쿼리를 처리할 때 두 브랜드를 모두 포함하는 페이지를 우선 탐색하므로, 경쟁사명을 회피하면 오히려 인용 후보에서 탈락한다. 법적 리스크는 비교 데이터의 사실 정확성과 업데이트 주기에 달려 있다. 데이터 출처(공식 가격 페이지, 공개 문서 URL)를 텍스트로 명시하고 Article JSON-LD의 dateModified를 최신으로 유지하는 것이 현실적인 관리 방법이다.

참고 자료

이 글의 권고는 아래 공식 문서·연구를 근거로 합니다.

김태오
김태오 · 그로스·퍼포먼스 리드

AI 검색 유입을 전환·매출로 잇는 광고·어트리뷰션을 다룹니다. 숫자로 말하는 걸 좋아합니다.

내 사이트의 AI 검색 점수가 궁금하다면

30초 무료 진단으로 SEO·AEO·GEO 점수와 처방을 받아보세요.

무료 진단 시작
← 블로그 목록으로