ChatGPT Search·Perplexity·Google AI Overviews가 실질적 유입 경로로 편입된 이후, "AI 검색 가시성"은 전통 유기적 순위 점수와 독립된 별도 지표로 관리해야 하는 영역이 됐다. AI 가시성 8점(100점 만점 기준, 도구마다 산정 방식 상이)이라는 수치는 단순히 점수가 낮다는 신호가 아니라, 크롤러 접근 차단·구조화 데이터 부재·LLM 인용 적합 콘텐츠 부족이라는 세 기술 레이어가 동시에 실패하고 있음을 뜻한다. 이 글은 그 진단에서 출발해 Phase별로 측정 가능한 개선 체계를 구축하는 방법을 정리한다.
진단: 8점을 구성하는 신호 분류
AI 가시성 점수는 도구마다 가중치가 다르지만 공통적으로 세 축으로 분해된다.
- 크롤러 접근성 — GPTBot·ClaudeBot·PerplexityBot·OAI-SearchBot이 robots.txt 또는 HTTP 응답에서 차단되면 콘텐츠 자체가 AI 인덱싱 풀에 진입하지 못한다. 왜: 인용은 인덱싱된 문서에서만 발생한다. 어떻게:
curl -A "GPTBot" https://example.com/robots.txt로 실제 User-Agent별 응답을 확인한다. - 구조화 신호 — FAQPage·QAPage·Article JSON-LD가 없으면 LLM이 질의-응답 쌍을 추출하는 파싱 비용이 높아진다. 왜: 구조화 마크업이 있는 페이지가 AI Overviews 인용 후보에 더 자주 등장하는 것이 반복 관측된다(정량 수치는 도구별 상이). 어떻게: Google Rich Results Test로 파싱 성공 여부를 먼저 검증한다.
- 콘텐츠 밀도 — 질의에 대한 직접 응답이 페이지 최상단 300단어 내에 없으면 인용 확률이 낮아진다. 왜: LLM은 컨텍스트 창 상단에 위치한 고밀도 클레임을 우선 인용하는 경향이 있다. 어떻게: BeautifulSoup로 "첫 직접 응답 문장까지 누적 단어 수"를 페이지별 측정해 300단어 초과 페이지를 목록화한다.
| 신호 유형 | 전통 SEO | AEO | GEO |
|---|---|---|---|
| 크롤러 대상 | Googlebot | GPTBot·ClaudeBot·PerplexityBot | 동일 + OAI-SearchBot |
| 구조화 데이터 | Schema.org 전반 | FAQPage·QAPage·HowTo | FAQ + llms.txt 맥락 주석 |
| 최적화 단위 | 페이지 키워드 밀도 | 질의-응답 쌍 | 인용 가능 클레임 |
| 측정 지표 | 순위·CTR·색인 수 | AI 답변 내 인용 빈도 | LLM 응답 내 브랜드 등장률 |
| 주요 랭킹 신호 | PageRank·E-E-A-T | 답변 적합도·구조화 신뢰도 | 학습 데이터 존재·최신성 |
Phase 1 (0~30일): 크롤러 접근성 복구
8점 브랜드의 가장 흔한 원인은 기존 SEO 보안 정책이 알 수 없는 모든 봇에 Disallow: /를 적용한 결과로 AI 크롤러 전체가 차단된 상태다.
- robots.txt 재구성 — GPTBot·ClaudeBot·PerplexityBot·OAI-SearchBot을 명시적으로 허용한다. 왜: 차단 상태에서는 콘텐츠 품질과 무관하게 AI 인덱스 진입이 불가하다. 어떻게: 각 User-agent 블록을 분리 선언하고
Disallow:값을 공백으로 두어 전체 허용한다. - sitemap.xml
lastmod자동 갱신 — 실제 콘텐츠 수정 타임스탬프를 반영하지 않으면 크롤 재방문 주기가 늘어난다. 왜: AI 크롤러도 sitemap 날짜 신호를 참고해 방문 빈도를 조절한다. 어떻게: CMS 저장 훅에서 lastmod를 DB 수정 타임스탬프와 동기화한다. - TTFB 3초 이하 유지 — 응답 지연이 크롤 예산을 소모해 실질 인덱싱 페이지 수를 줄인다. 왜: 크롤러는 응답 지연 도메인에 대해 크롤 속도 제한을 자동으로 높인다. 어떻게:
curl -w "%{time_starttransfer}" -o /dev/null -s URL로 주기적 측정한다.
# robots.txt — AI 크롤러 명시적 허용 + 관리 경로 차단 예시
User-agent: Googlebot
Disallow:
User-agent: GPTBot
Disallow:
User-agent: ClaudeBot
Disallow:
User-agent: PerplexityBot
Disallow:
User-agent: OAI-SearchBot
Disallow:
# 비공개 경로만 전체 차단
User-agent: *
Disallow: /admin/
Disallow: /private/
Disallow: /api/internal/
Sitemap: https://example.com/sitemap.xml
Phase 2 (30~90일): JSON-LD 구조화 데이터 구현
크롤러 접근이 확보되면 다음 병목은 파싱 가능성이다. FAQPage와 Organization 스키마를 이중으로 선언하면 LLM이 질의-응답 쌍과 도메인 전문성을 동시에 추출할 수 있다.
- FAQPage + Organization 이중 스키마 — 브랜드 전문 영역을
knowsAbout로 선언하고, 핵심 질의를 FAQPage로 구조화한다. 왜:knowsAbout필드는 LLM이 도메인 권위를 추론하는 보조 신호로 작용한다. 어떻게: 아래 JSON-LD를<head>내 삽입 후 Google Rich Results Test로 파싱 오류 제로를 확인한다. dateModified정확성 유지 — publishDate와 modifiedDate를 동일 값으로 고정하면 E-E-A-T 신뢰도에 부정적으로 작용한다. 왜: 구글은 날짜 조작 패턴을 스팸 신호로 분류한다. 어떻게: CMS 저장 훅에서 Article 스키마의 dateModified를 DB 수정 타임스탬프와 자동 동기화한다.
<script type="application/ld+json">
[
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Example Brand",
"url": "https://example.com",
"knowsAbout": [
"전기차 충전 인프라",
"스마트 에너지 관리 시스템"
],
"sameAs": [
"https://www.linkedin.com/company/example-brand",
"https://ko.wikipedia.org/wiki/Example_Brand"
]
},
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "가정용 전기차 충전기 설치 비용은 얼마인가요?",
"acceptedAnswer": {
"@type": "Answer",
"text": "가정용 완속 충전기(7kW AC) 기준 재료비 포함 설치비는 80~150만 원 범위이며, 아파트 공용 공간 설치 시 관리소 협의가 별도로 필요합니다."
}
},
{
"@type": "Question",
"name": "급속 충전과 완속 충전의 배터리 수명 영향 차이는 무엇인가요?",
"acceptedAnswer": {
"@type": "Answer",
"text": "급속 충전(50kW 이상 DC)은 80% 도달에 20~40분이 소요되며, 고전류로 인해 반복 사용 시 배터리 열화가 완속 대비 빠르다는 연구 결과가 있습니다. 완속(AC 7kW)은 6~10시간이 걸리지만 배터리 수명 보존에 유리합니다."
}
}
]
}
]
</script>
Phase 3 (90~180일): llms.txt 도입과 인용 밀도 강화
llms.txt는 robots.txt와 유사한 위치(/llms.txt)에 배치해 LLM에게 사이트의 전문 영역·인용 선호 표현·신뢰할 수 있는 리소스 URL을 안내하는 텍스트 파일이다. 2026년 6월 기준 공식 표준으로 채택된 AI 검색 엔진은 확인되지 않았으므로, 운영 효과는 "LLM이 llms.txt를 참조하는 경우"라는 전제가 붙는다. 그러나 표준이 확정되는 시점에 즉시 배포할 수 있도록 초안을 준비해 두는 것이 현실적이다.
- llms.txt 핵심 필드 — 브랜드명·전문 영역·인용 시 사용을 선호하는 표현·공식 리소스 URL을 기재한다. 왜: 도메인 전문성과 신뢰 출처를 명시적으로 선언해 LLM의 추론 비용을 낮춘다. 어떻게: UTF-8 인코딩 Markdown 형식,
Content-Type: text/plain으로 루트에 서빙한다. - 인용 가능 클레임 밀도 측정 — 페이지당 독립적으로 인용 가능한 사실 진술 수를 측정한다. 왜: LLM은 단문·능동태·수치 포함 진술을 우선 인용하는 경향이 있다. 어떻게: 정규표현식으로 80자 이하·숫자 포함·주어-서술어 완전 구조 문장을 추출해 페이지별 카운트를 기준치(페이지당 5개 이상)와 비교한다.
흔한 오해: 유기적 검색 1위가 AI 인용을 보장한다
가장 자주 목격하는 오해는 "Google 유기적 검색 1위 페이지는 AI Overviews에도 자동으로 인용된다"는 가정이다. 이는 사실이 아니다. Google AI Overviews는 유기적 랭킹 인덱스와 별도의 인용 후보 풀을 운영하며, 답변 생성 시 FAQPage·HowTo 등 구조화 데이터가 있는 페이지, 직접 응답 밀도가 높은 콘텐츠, 그리고 특정 주제에서 권위 있는 출처를 독립적으로 평가한다. 1위 랭킹 페이지가 AI Overviews 인용에서 제외되고 3~5위 페이지가 인용되는 사례는 반복 관측된다. 올바른 처리법: SEO 점수(순위·CTR)와 AI 가시성 점수(인용 빈도·LLM 등장률)를 별도 대시보드에서 독립적으로 추적하고, 두 지표가 개선 방향이 다를 때 각 레이어를 별도 태스크로 분리 처리한다.
Q. robots.txt에서 AI 크롤러를 허용하면 스크래핑 위험이 늘어나지 않나요?
GPTBot·ClaudeBot·PerplexityBot은 각 회사가 공개한 특정 IP 대역을 사용하며, 일반 스크래핑 봇과 대역이 다르다. robots.txt 허용이 스크래핑 위험을 직접 높이지는 않는다. 단, 고가·독점 데이터를 보호해야 하는 경우에는 robots.txt 설정과 무관하게 콘텐츠 공개 여부 자체를 인증 레이어로 제어해야 한다. 공개 마케팅·기술 콘텐츠는 AI 크롤러를 허용하는 것이 비용-편익 관점에서 합리적이며, 차단 시 인덱싱 자체가 불가능해진다.
Q. Phase 1~3 작업 후 AI 가시성 점수 반영까지 얼마나 걸리나요?
robots.txt 수정 후 GPTBot 등 주요 AI 크롤러가 재방문하는 데 통상 2~6주가 걸린다(Perplexity는 상대적으로 빠름). JSON-LD 구조화 데이터는 Google Search Console의 Rich Results 반영이 수일~2주 수준이나, AI Overviews 인용 빈도 변화는 콘텐츠 인덱스 재처리 주기에 따라 4~8주를 잡는 것이 현실적이다. 측정은 쿼리 샘플링(동일 질의 세트를 ChatGPT Search·Perplexity·AI Overviews에 주기적으로 입력)과 서드파티 도구(BrightEdge Generative Parser, Semrush AI Toolkit 등)를 병행해 최소 8주 데이터를 확보한 뒤 통계적 유의미성을 판단한다.
참고 자료
이 글의 권고는 아래 공식 문서·연구를 근거로 합니다.