Citeon
기술 실무 한글 실증

사이트 구조와 AI 크롤러빌리티

박도현
박도현 · AEO 리서처
사이트 구조와 AI 크롤러빌리티

사이트 구조와 AI 크롤러빌리티의 핵심은 두 개의 문(門)을 모두 여는 것이다. 첫째 문은 "AI 봇이 내 페이지를 가져갈 수 있는가"(크롤 가능성), 둘째 문은 "가져간 내용을 RAG가 깔끔한 조각으로 잘라 검색·인용할 수 있는가"(검색 가능성)다. robots.txt로 첫 문을 닫으면 인용 후보에서 통째로 탈락하고, 첫 문을 열어도 구조가 엉망이면 둘째 문에서 걸러진다. 이 글은 그 두 문이 작동하는 메커니즘을 RAG(retrieval→reranking→generation) 관점에서 뜯어보고, 오늘 바로 고칠 수 있는 구조 체크리스트를 ❌약한 예 / ✅강한 예로 정리한다.

왜 "구조"가 인용을 좌우하는가 — RAG 메커니즘부터

AI 검색엔진이 당신의 글을 답변에 인용하기까지는 세 단계를 거친다. 이 파이프라인을 이해하면 "구조"가 왜 결과를 바꾸는지가 한 번에 보인다.

핵심은 이 세 단계가 모두 "페이지 전체"가 아니라 "조각(chunk)"을 다룬다는 점이다. 그래서 RAG의 1차 원전인 Lewis 등(2020, arXiv:2005.11401)이 말한 파라메트릭(모델이 외운 것)+비파라메트릭(외부에서 검색한 것) 메모리 결합에서, 당신이 통제할 수 있는 건 "비파라메트릭" 쪽 — 즉 검색되기 좋은 조각으로 잘리도록 글의 구조를 짜는 일이다.

비유하자면, RAG는 책 한 권을 통째로 읽지 않는다. 색인 카드(chunk) 더미에서 질문에 맞는 카드 몇 장만 뽑아 읽는 사서다. 당신의 페이지가 한 장에 열 가지 주제가 뒤엉킨 카드라면, 사서는 그 카드를 어떤 질문에도 자신 있게 뽑지 못한다.

첫째 문 — AI 크롤러가 들어올 수 있는가 (크롤러빌리티)

아무리 좋은 글도 봇이 가져가지 못하면 색인 대상이 아니다. AI 검색의 후보군에 들어가려면 robots.txt에서 해당 봇을 허용해야 한다. 2026년 현재 주요 AI 크롤러는 다음과 같다.

봇 이름주체용도
GPTBotOpenAI모델 학습용 수집
OAI-SearchBotOpenAIChatGPT 검색 인용 수집
PerplexityBotPerplexity실시간 인용 색인
ClaudeBot / anthropic-aiAnthropicClaude 수집
Google-ExtendedGoogleGemini/AI 학습 허용 토글

여기서 흔한 사고가 두 가지 있다. (1) 보안 플러그인이나 CDN의 기본 봇 차단이 이들을 막아버리는 경우, (2) "AI에 내 콘텐츠 학습시키기 싫다"며 GPTBot을 막았는데 검색 인용용 OAI-SearchBot까지 같이 막혀 ChatGPT 검색에서 통째로 사라지는 경우다. 학습 거부와 검색 노출은 별개의 봇이라는 점을 구분해야 한다.

❌약한 예 / ✅강한 예 — robots.txt

# 약한 예 — 모든 봇 차단(보안 템플릿 기본값을 방치)
User-agent: *
Disallow: /

# 강한 예 — AI 검색 인용 봇을 명시 허용, sitemap 노출
User-agent: OAI-SearchBot
Allow: /
User-agent: PerplexityBot
Allow: /
User-agent: ClaudeBot
Allow: /
User-agent: Google-Extended
Allow: /

User-agent: *
Allow: /
Sitemap: https://example.com/sitemap.xml

한 가지 더. JavaScript로만 본문을 그리는 사이트(CSR)는 봇이 빈 페이지를 가져갈 위험이 있다. 검색용 크롤러 상당수는 무거운 JS 렌더링을 끝까지 기다리지 않는다. 본문 텍스트가 초기 HTML에 들어 있도록 SSR(server-side rendering)이나 정적 생성(SSG)을 쓰는 것이 안전하다.

❌약한 예 / ✅강한 예 — 렌더링

둘째 문 — 가져간 내용이 "좋은 조각"으로 잘리는가 (청크 친화 구조)

봇이 본문을 확보했다면, 이제 그 텍스트는 색인 단계에서 조각으로 잘린다. 잘리는 경계는 대개 제목(h2/h3), 문단, 목록 같은 구조적 신호를 따른다. 그래서 구조가 곧 "조각의 품질"을 결정한다.

1) 한 섹션 = 하나의 질문에 답하기

RAG는 질문 벡터와 조각 벡터의 거리를 잰다. 한 섹션이 한 가지 의도에 집중돼 있으면, 그 섹션의 벡터는 특정 질문에 또렷하게 가까워진다. 반대로 한 h2 아래 가격·기능·후기·배송이 뒤섞이면 벡터가 흐려져 어떤 질문에도 어중간하게 멀어진다.

2) 직답을 앞에 — "Lost in the Middle" 회피

Liu 등(2023, arXiv:2307.03172)은 LLM이 긴 맥락에서 중간에 묻힌 정보를 잘 못 쓴다는 U자형 현상("Lost in the Middle")을 보였다. 성능은 정보가 맥락의 앞이나 끝에 있을 때 가장 높다. 이는 생성 단계뿐 아니라 한 조각 안에서도 적용된다 — 핵심 답을 문단 첫 문장에 두면 인용될 확률이 오른다.

3) 조각이 홀로 읽혀도 말이 되게 — 맥락 자급(自給)

이 지점에서 Anthropic의 Contextual Retrieval 연구(2024)가 결정적이다. 각 조각 앞에 그 조각이 어떤 문서·어떤 맥락의 일부인지 짧게 덧붙였더니 검색 실패율이 35% 줄었다(5.7%→3.7%). 여기에 BM25 하이브리드를 더하면 49%, 재정렬까지 더하면 67% 감소했다. 권장 검색 폭은 top-20이었다.

비유: "그는 그것을 다음 분기까지 미뤘다"라고만 적힌 색인 카드는 누가·무엇인지 알 수 없어 어떤 질문에도 못 뽑힌다. "(2026 예산안 관련) 김 대표는 신규 채용을 다음 분기까지 미뤘다"처럼 카드 자체에 맥락이 박혀 있어야 사서가 자신 있게 뽑는다.

실무로 옮기면: 대명사("이것", "위에서 말한")로 앞 문단에 의존하지 말고, 각 섹션이 자체로 주어·대상을 다시 명시하라. 조각은 페이지에서 떨어져 나가 단독으로 LLM에 제시된다는 사실을 늘 염두에 둬야 한다.

4) 표·목록으로 사실을 구조화하기

GEO를 정량 분석한 Aggarwal 등(2023, arXiv:2311.09735, KDD 2024)은 통계·출처 인용·직접 인용문을 더하면 특정 조건에서 생성엔진 가시성이 최대 약 40%까지 오른다고 보고했다. 표와 목록은 사실을 압축해 한 조각에 담고, 숫자·정의를 또렷하게 만들어 인용 친화적이다.

사이트 전역 구조 — 사서가 길을 잃지 않게

개별 페이지를 넘어, 사이트 전체 구조도 크롤 효율과 권위 전달에 직결된다.

요소약한 예강한 예
URL/p?id=8842&ref=x/guide/ai-crawlability (의미가 담긴 경로)
제목 위계h1 여러 개, h3h2 없이 등장h1 하나 → h2h3 논리적 중첩
내부 링크고립된 페이지(어디서도 링크 안 됨)관련 글끼리 주제 클러스터로 연결
사이트맵없음 / 갱신 안 됨sitemap.xml 최신 유지 + robots.txt에 명시
중복같은 글이 여러 URL로 존재canonical 태그로 정본 지정

내부 링크는 사서에게 "이 카드들은 같은 주제 서랍에 있다"고 알려주는 신호다. 주제 클러스터(허브 글 ↔ 세부 글 상호 링크)는 크롤러가 관련 페이지를 빠짐없이 발견하게 하고, 주제 권위를 한곳으로 모은다.

네이버라는 예외 — 닫힌 정원의 구조 전략

한국 시장에선 변수가 하나 더 있다. 네이버는 외부 크롤러를 차단하기 때문에, 글로벌 AI(ChatGPT·Claude 등)는 네이버 블로그 본문을 직접 수집하지 못하고 나무위키·위키백과·티스토리 같은 열린 출처로 우회한다. 즉 "네이버 안에서의 노출"과 "글로벌 AI에서의 인용"은 서로 다른 게임이다.

네이버 내부에선 자체 알고리즘이 작동한다. C-Rank(출처의 신뢰·전문성)와 D.I.A.+(문서의 의도 부합)가 핵심이며, 콘텐츠 5원칙(직접 경험·일관된 주제·진정성·읽기 쉬운 구조·최신성)을 따른다. 네이버 AI 브리핑(요약)은 이미 통합검색 쿼리의 20% 이상에 적용되고 있고, 한 표본 분석(272건)에서는 인용 출처의 약 58%가 블로그였으며 약 49%가 검색 Top10 밖에서 인용됐다. 구조 측면 시사점은 분명하다 — 순위가 전부가 아니라, AI가 뽑아 쓰기 좋은 "읽기 쉬운 구조"가 별도의 인용 경로를 연다. 참고로 큐:(Cue:)와 클로바X는 2026-04-09 종료되고, AI탭이 2026-06-25~26 정식 출시됐다.

측정은 한 번으로 끝나지 않는다 — 비결정성 주의

구조를 고친 뒤 "인용됐나?"를 확인할 때 흔히 빠지는 함정이 있다. LLM 출력은 temperature=0에서도 흔들린다(GPU 연산·배치 차이). 한 분석에서는 대형 모델이 같은 입력 1,000회에 80가지 출력을 냈다. AI 가시성의 불확실성을 정량화한 연구(arXiv:2603.08924)는 인용이 멱법칙으로 출렁이므로 다중 실행 + 부트스트랩 신뢰구간을 권장한다. 단일 측정은 노이즈다. 구조 개선의 효과를 보려면 여러 번 측정해 추세로 읽어야 한다.

실전 체크리스트

Citeon은 이 원리를 제품에 담았다

위의 두 문(門) — 크롤 가능성과 청크 친화 구조 — 은 눈으로 일일이 점검하기 어렵다. Citeon의 사이트 진단엔진은 URL 하나를 넣으면 SEO·AEO·GEO 관점에서 구조를 점수화하고, robots.txt의 AI 봇 허용 여부, 제목 위계, 직답 구조, 맥락 자급 같은 항목을 한국어 처방으로 돌려준다. 그리고 ChatGPT·Gemini·Perplexity·Claude 4개 엔진의 실제 인용을 측정(SOV)해, 구조를 고친 뒤 인용이 실제로 늘었는지 주간 모니터 추이로 확인한다 — 앞서 말한 "단일 측정은 노이즈" 문제를 추세 관찰로 보완하는 셈이다. 경쟁사가 어떤 구조로 인용을 가져가는지 역추적하는 기능도 있다.

지금 내 사이트가 AI 크롤러에게 열려 있는지, 조각으로 잘 잘리는 구조인지 궁금하다면 무료 진단(₩0)부터 받아보길 권한다. → citeon.cloud에서 무료 진단 받기

자주 묻는 질문(FAQ)

GPTBot을 막으면 ChatGPT 검색에서도 사라지나요?

꼭 그렇진 않습니다. GPTBot은 주로 모델 학습용 수집 봇이고, ChatGPT 검색의 인용 후보 수집은 OAI-SearchBot이 담당합니다. 학습은 거부하되 검색 노출은 유지하려면 GPTBot은 막더라도 OAI-SearchBot은 허용해야 합니다. 둘을 한 번에 막으면 검색 인용에서도 빠질 수 있습니다.

JavaScript로 만든 SPA는 AI 검색에 불리한가요?

본문을 클라이언트 JS로만 그리면 불리할 수 있습니다. 검색용 크롤러 상당수가 무거운 렌더링을 끝까지 기다리지 않아, 본문 텍스트가 비어 보일 위험이 있기 때문입니다. SSR(server-side rendering)이나 정적 생성(SSG)으로 핵심 본문을 초기 HTML에 포함시키면 안전합니다.

네이버 블로그에 잘 써두면 ChatGPT도 인용하나요?

직접 인용은 어렵습니다. 네이버는 외부 크롤러를 차단하기 때문에 글로벌 AI는 네이버 본문을 직접 수집하지 못하고, 위키백과·나무위키·티스토리 같은 열린 출처로 우회합니다. 네이버 내부 노출(C-Rank·D.I.A.+·AI 브리핑)과 글로벌 AI 인용은 별개 전략으로 접근해야 합니다.

구조를 고쳤는데 왜 인용 결과가 매번 다른가요?

LLM 출력은 temperature=0에서도 GPU 연산·배치 차이로 흔들리기 때문입니다. 한 분석에선 대형 모델이 동일 입력 1,000회에 80가지 출력을 냈습니다. 단일 측정은 노이즈이므로, 같은 질문을 여러 번 돌려 추세(신뢰구간)로 효과를 판단해야 합니다.

가장 먼저 고쳐야 할 한 가지는 무엇인가요?

robots.txt에서 AI 검색 봇이 허용돼 있는지 확인하는 것입니다. 이 문이 닫혀 있으면 본문 품질·구조와 무관하게 후보군에서 통째로 제외되기 때문입니다. 그다음이 "직답을 앞에, 한 섹션에 한 의도" 같은 청크 친화 구조입니다.

참고자료

박도현
박도현 · AEO 리서처

생성형 검색·LLM 인용에 관한 논문과 데이터를 읽고 실무 언어로 옮깁니다. 근거 없는 '카더라'를 싫어합니다.

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

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

무료 진단 시작
← 인사이트 목록으로