HyperGEOSEO & GEO

Technical Guide

크롤러 로그로 AI 검색 성과 측정하기: 인용 봇과 학습 봇을 나눠 세는 법

서버 접근 로그에서 AI 크롤러를 인용·학습·검색·도구로 분류해 집계하는 방법과, 방문 수 합계가 만드는 착시를 자사 실측 사례로 정리합니다.

HyperGEO·발행 2026-08-28·최종 수정 2026-08-28

Direct Answer

AI 크롤러의 방문 횟수는 GEO 성과 지표가 아닙니다. AI 회사들은 크롤러를 모델 학습용과 답변 인용용으로 나눠 운영하는데, 실제 답변 인용과 관계되는 것은 인용용뿐입니다. 서버 접근 로그를 이 기준으로 분류해 세면, 합계로는 보이지 않던 신호가 드러납니다. 방문이 가장 많은 크롤러가 본문을 한 번도 읽지 않는 경우가 있고, 반대로 가장 많이 수집해 가는 크롤러가 집계 목록에 없어 계속 0으로 보이는 경우도 있습니다.

개념과 정의

서버 접근 로그에는 어떤 크롤러가 언제 어떤 페이지를 가져갔는지가 요청 단위로 남습니다. AI 답변에 인용되는 과정 대부분은 외부에서 관측할 수 없지만, 크롤러가 우리 사이트를 읽어 가는 단계만은 직접 확인할 수 있습니다. 크롤러 로그 분석은 이 기록을 목적별로 분류해, 어떤 AI 엔진이 우리 콘텐츠를 실제로 수집하고 있는지 확인하는 작업입니다.

왜 필요한가

크롤러 방문 수를 그대로 세면 방향을 놓칩니다. 방문이 많다고 콘텐츠를 읽은 것이 아니고, 읽었다고 답변에 인용되는 것도 아닙니다. 집계 목록에 없는 크롤러는 아무리 많이 와도 0으로 보이기 때문에, 목록을 정해 두고 그것만 세는 방식에는 구조적인 사각이 생깁니다. 방문 수 총합은 대부분 기업이 통제할 수 없는 요인으로 오르내리므로, 목표 지표로 쓰기에도 적합하지 않습니다.

작동 방식

  1. 01인용용 — 사용자가 질문한 시점에 실시간으로 페이지를 읽어 답변에 반영합니다(OAI-SearchBot, ChatGPT-User, PerplexityBot, Claude-SearchBot, xAI-SearchBot). 이 줄만 성과로 봅니다.
  2. 02학습용 — 모델 훈련 자료를 수집합니다(GPTBot, ClaudeBot, GoogleOther, meta-externalagent, CCBot). 갱신 주기에 맞춰 도는 것이라 즉각적인 인용과 무관합니다.
  3. 03검색용 — 기존 검색엔진의 색인 수집입니다(Googlebot, bingbot, Yeti). 기존 SEO 지표로 따로 봅니다.
  4. 04분석 도구 — SEO 분석과 백링크 수집기입니다(AhrefsBot, MJ12bot). AI 지표와 무관하므로 섞이면 수치가 부풀려집니다.
  5. 05미분류 — 목록에 없는 크롤러를 따로 세고 실제 User-Agent 를 함께 출력합니다. 새 AI 크롤러는 계속 생기므로, 이 칸이 없으면 신규 크롤러는 표에서 존재하지 않는 것으로 보입니다.

분석 사례

자사 사이트(hypergeo.pro) 크롤러 로그 8일 분석

자사 로그를 분류해 집계한 결과, 방문 1위였던 학습용 크롤러는 총 159건 중 157건이 sitemap.xml 과 robots.txt 요청이었고 본문 페이지는 일주일 동안 한 번만 읽었습니다. 같은 크롤러는 이후 우리 쪽 변경 없이 하루 24건에서 나흘에 한 번 5~7건으로 급감했습니다. 집계 목록을 지우고 로그에 찍힌 이름을 전부 세어 보니, 목록에 없던 크롤러 15종 202건이 그동안 표에서 통째로 빠져 있었고 그중 둘은 방문량 상위였습니다. 인용용 크롤러는 평소 하루 3~4건이었는데, 콘텐츠를 발행한 날 12건으로 늘었다가 다음 날 4건으로 돌아왔습니다. 그날 학습용과 검색용은 평소와 같거나 오히려 낮았습니다. 이틀 뒤에는 아무것도 발행하지 않았는데도 네 분류가 모두 동시에 급증한 날이 있었습니다. 앞은 한 분류만, 뒤는 전부 움직였습니다. 증가의 폭이 아니라 형태를 봐야 원인을 구분할 수 있습니다.

자사 사이트에 직접 적용한 사례이며, 수치는 서버 접근 로그의 User-Agent 필드 기준입니다.

실무 적용 절차

  • 1단계: 봇 이름을 User-Agent 필드 안에서만 찾도록 집계 규칙을 정합니다. 로그 줄 전체를 검색하면 URL이나 Referer 에 봇 이름을 넣은 위장 요청까지 세게 됩니다.
  • 2단계: 한 요청이 한 봇으로만 계상되게 합니다. 봇 User-Agent 는 대개 자기 이름을 두 번 담고 있어, 중복 계상되면 수치가 두 배로 부풀려집니다.
  • 3단계: 인용·학습·검색·도구로 분류하고 분류별 소계를 먼저 보여줍니다. 합계는 방향을 가립니다.
  • 4단계: 목록에 없는 크롤러를 「기타」로 세고 실제 User-Agent 를 함께 출력해, 새 크롤러가 0으로 숨지 않게 합니다.
  • 5단계: 로그의 시간대를 확인하고 현지 시각 기준으로 하루를 묶습니다. 서버 로그가 UTC 로 기록되면 「하루」의 경계가 실제 업무일과 어긋납니다.

주의사항

  • User-Agent 는 누구나 위조할 수 있습니다. 필드를 정확히 봐도 "그 봇이라고 주장하는 요청"일 뿐이며, 정확히 가리려면 접속 IP 의 역방향 조회가 필요합니다. 수치를 외부에 공개할 때는 이 단서를 함께 밝혀야 합니다.
  • 분류가 애매한 크롤러는 인용 항목에 넣지 않습니다. 인용 줄을 성과 지표로 쓰는 이상, 애매한 것을 넣으면 스스로를 속이게 됩니다.
  • 정적 파일 요청은 제외합니다. 검색 크롤러는 페이지를 렌더링하려고 스크립트와 스타일 파일을 대량으로 받아가므로, 포함하면 수집량이 몇 배로 부풀려집니다.
  • 증가의 폭보다 형태를 봅니다. 한 분류만 오르면 자사 활동의 결과일 수 있지만, 네 분류가 같은 날 함께 오르면 사이트 외부의 요인으로 봅니다. 후자를 성과로 잡으면 아무것도 하지 않은 날의 수치를 자기 실적으로 착각하게 됩니다.
  • 관측 횟수를 밝힙니다. 한 번 나타난 패턴은 우연과 구분되지 않습니다. 같은 조건에서 반복 관측되기 전까지는 「이렇게 관측됐다」로 적고 「이렇게 된다」로 적지 않습니다.
  • 방문 수보다 인용용 크롤러의 종류 수를 봅니다. 횟수는 상대 사정으로 오르내리지만, 어떤 엔진이 우리를 후보로 보고 있는지는 훨씬 천천히 변합니다.

References

  • [1] OpenAI: Bots and Crawlers (GPTBot, OAI-SearchBot, ChatGPT-User)
  • [2] Anthropic Support: Does Anthropic crawl data from the web?
  • [3] Google: Google Crawler (User Agent) Overview
  • [4] Perplexity: Perplexity Crawlers