◇GeoAnalytics
제품개념인덱스가격블로그FAQ

클라이언트 측정 한계: JS 분석이 AI 봇을 놓치는 이유

GEO 인사이트발행됨2026. 10. 15.조회 16
클라이언트 측정 한계: JS 분석이 AI 봇을 놓치는 이유

자바스크립트 방문 분석은 브라우저가 측정 스크립트를 실행해야 기록됩니다. 반면 AI 봇 방문은 서버가 요청을 받는 시점에 일어납니다. 봇이 스크립트를 실행하지 않거나 AI 에이전트가 사용자 브라우저를 거치지 않으면 기록이 생기지 않습니다. 또한 Google Analytics는 알려진 봇 트래픽을 자동으로 제외합니다. 이런 클라이언트 측정 한계 때문에 AI 봇 방문은 서버 쪽 요청 기록으로 확인해야 합니다.

클라이언트 측정과 서버 측정은 각각 무엇인가요?

클라이언트 측정은 방문자의 브라우저에서 실행되는 코드가 수집 서버로 데이터를 보내는 방식입니다. 웹사이트 방문 분석에서 가장 흔한 형태는 페이지에 넣은 자바스크립트 태그입니다.

Google Analytics 도움말은 웹 데이터 스트림을 만든 뒤 Google 태그를 각 페이지의 head 바로 뒤에 붙여 넣도록 안내합니다. 이 태그는 script 요소로 이루어진 코드 묶음입니다. 같은 문서는 향상된 측정을 켜면 페이지 조회와 일부 이벤트를 자동으로 수집한다고 설명합니다.

서버 측정은 웹 서버가 요청을 받을 때 남기는 기록을 기준으로 합니다. 접속 로그(웹 서버가 요청마다 남기는 기록)에는 요청 시각, 페이지 주소, 응답 코드, 요청자 IP가 남습니다. 사용자 에이전트(요청자가 스스로 밝히는 프로그램 이름)도 함께 기록됩니다. 스크립트 실행 여부와 관계없이 요청이 도착하면 기록이 생깁니다.

구분클라이언트 측정(자바스크립트 태그)서버 측정(요청 기록)
기록이 생기는 시점브라우저가 스크립트를 실행하고 수집 서버로 전송할 때웹 서버나 CDN이 요청을 받고 응답할 때
측정 대상페이지를 화면에 띄운 방문자의 행동서버(또는 CDN)에 도착한 요청, 사람과 봇을 구분하지 않음
봇 처리Google Analytics는 알려진 봇 트래픽을 자동 제외사용자 에이전트와 IP로 직접 구분
주로 답하는 질문사람이 무엇을 보고 어디서 이탈했는가누가 어떤 페이지를 언제 가져갔는가

두 방식은 서로를 대체하지 않으며, 측정 대상 자체가 다릅니다. 사람의 행동은 클라이언트 측정이 더 잘 보여 주고, 봇의 수집은 서버 측정이 더 직접적으로 보여 줍니다.

자바스크립트 태그가 AI 봇 방문을 놓치는 구조적 이유는 무엇인가요?

이유는 세 가지입니다. 기록이 생기기 위한 조건, 수집 뒤의 자동 제외, AI 서비스가 페이지를 가져가는 방식입니다.

첫째, 기록은 요청이 아니라 스크립트 실행에서 시작됩니다

태그 방식에서 방문 한 건이 기록되려면 아래 단계가 모두 이어져야 합니다.

  1. 요청자가 서버에 페이지를 요청합니다.
  2. 서버가 HTML을 돌려줍니다.
  3. 요청자가 HTML 안의 태그 스크립트를 내려받습니다.
  4. 요청자가 스크립트를 실행합니다.
  5. 스크립트가 수집 서버로 데이터를 보냅니다.

봇이 HTML만 받아 본문을 읽고 끝내면 3단계부터는 일어나지 않습니다. 서버에는 요청이 남지만 분석 보고서에는 남지 않습니다.

자바스크립트를 실행하는 크롤러도 요청과 실행이 따로 움직입니다. Google 문서는 Googlebot이 자바스크립트 페이지를 크롤링, 렌더링, 색인의 세 단계로 처리한다고 설명합니다. 응답 코드 200인 페이지는 렌더링 대기열에 들어가며, 몇 초 만에 처리될 수도 있고 더 오래 걸릴 수도 있다고 밝힙니다.

같은 문서는 robots.txt가 막은 주소는 요청 자체를 하지 않고 건너뛴다고 설명합니다. robots 메타 태그나 헤더로 색인 금지(noindex)를 지정한 페이지는 렌더링 대기열에서 빠진다고 적고 있습니다. 즉 수집 요청과 스크립트 실행은 시점이 다르고, 실행이 아예 없는 경우도 있습니다. 태그가 볼 수 있는 것은 그중 실행 단계뿐입니다.

둘째, 실행되더라도 알려진 봇은 보고서에서 빠집니다

Google Analytics 도움말은 알려진 봇과 스파이더의 트래픽을 자동으로 제외한다고 설명합니다. 판단에는 Google 자체 조사와 IAB(인터랙티브 광고 협회)의 봇 목록을 함께 쓴다고 밝힙니다.

같은 문서에 따르면 이 제외 기능은 끌 수 없고, 제외된 봇 트래픽의 양도 볼 수 없습니다. 따라서 스크립트를 실행한 봇이 알려진 봇으로 분류되면 그 흔적은 분석 도구 안에서 되찾을 수 없습니다.

반대 방향의 한계도 있습니다. 실무에서는 목록에 없는 요청자가 스크립트를 실행하면 사람 방문과 섞여 집계될 수 있다고 보고, 태그 데이터만으로 봇을 구분하지 않는 것을 권합니다. 이 제외 기능은 사람 방문 통계를 깨끗하게 유지하려는 설계이므로, 봇 측정 도구로 쓰는 것 자체가 목적에 맞지 않습니다.

셋째, AI 답변은 사용자의 브라우저를 거치지 않습니다

사용자가 AI 서비스에 질문하면, 질문에 따라 서비스 쪽 에이전트가 페이지를 직접 가져와 답변에 쓰는 경우가 있습니다. OpenAI 문서는 ChatGPT-User를 ChatGPT 안에서 사용자가 요청한 작업에 쓰는 에이전트로 설명합니다. 질문에 답하려고 페이지를 방문하는 경우가 그 예입니다.

이때 페이지를 여는 주체는 서비스의 에이전트이고, 사용자는 AI 서비스 화면에서 답변만 읽습니다. 사용자가 출처 링크를 눌러 사이트로 들어와야만 사이트의 태그가 실행됩니다.

AI 봇에는 어떤 종류가 있나요?

AI 서비스의 요청자는 목적에 따라 학습 데이터 수집, 검색 색인, 사용자 요청 처리로 나뉩니다. 각 회사 공식 문서에 적힌 이름과 용도는 다음과 같습니다.

회사이름공식 문서의 용도 설명robots.txt 관련 설명
OpenAIGPTBot생성형 AI 기반 모델 학습에 쓰일 수 있는 콘텐츠 수집차단하면 학습에 쓰지 말라는 신호로 봄
OpenAIOAI-SearchBotChatGPT 검색 기능에 사이트 노출GPTBot과 별도로 설정
OpenAIChatGPT-User사용자 요청에 따른 페이지 방문, 자동 크롤링에는 쓰지 않음사용자 요청이라 규칙이 적용되지 않을 수 있음
AnthropicClaudeBot모델 개발을 위한 공개 웹 콘텐츠 수집차단하면 이후 자료를 학습에서 빼라는 신호로 봄
AnthropicClaude-SearchBot검색 결과 품질 향상을 위한 콘텐츠 분석차단하면 검색 결과 노출이 줄 수 있음
AnthropicClaude-User사용자 질문에 필요할 때 웹사이트 접근차단하면 사용자 주도 검색 노출이 줄 수 있음
PerplexityPerplexityBot검색 결과에 사이트 노출·링크, 기반 모델 학습에는 쓰지 않음검색 노출을 원하면 허용 권고
PerplexityPerplexity-User사용자 요청 시 페이지 방문사용자 요청이라 대체로 규칙을 따르지 않음

Google은 방식이 다릅니다. Google 문서는 Google-Extended를 robots.txt 제어용 토큰으로 설명합니다. 이 토큰은 Gemini 모델 학습과 그라운딩(답변을 근거 자료에 연결하는 과정)에 사이트 콘텐츠를 쓸지 정합니다. 별도의 사용자 에이전트 문자열이 없고, 크롤링은 기존 Google 사용자 에이전트로 이뤄진다고 밝힙니다. Google 검색 포함 여부에는 영향을 주지 않는다고도 적고 있습니다.

표의 사용자 요청형 에이전트는 사람이 질문한 순간에 움직입니다. 사람의 관심이 페이지 요청으로 이어졌는데도 분석 보고서에는 방문이 잡히지 않는 구간이 바로 여기입니다.

흔히 하는 오해는 무엇인가요?

오해사실
분석 도구에 AI 서비스 유입이 보이므로 AI 봇 방문도 측정된다그 유입은 사람이 답변 속 링크를 눌러 브라우저로 들어온 방문입니다. 봇의 요청과는 다른 사건입니다.
봇 필터 설정을 끄면 제외된 봇이 보인다Google Analytics 도움말은 알려진 봇 제외를 끌 수 없고 제외량도 볼 수 없다고 설명합니다.
서버 로그에서 Google-Extended를 찾으면 Gemini 수집량을 알 수 있다Google-Extended는 별도 사용자 에이전트가 없는 제어 토큰입니다. 로그에는 기존 Google 크롤러 이름으로 남습니다.
사용자 에이전트에 봇 이름이 있으면 그 회사의 봇이다Google 문서는 사용자 에이전트 문자열이 위조될 수 있다고 경고합니다. IP 목록이나 DNS로 확인해야 합니다.
robots.txt로 막으면 모든 AI 요청이 멈춘다OpenAI와 Perplexity 문서는 사용자 요청형 에이전트에 robots.txt 규칙이 적용되지 않을 수 있다고 설명합니다.

이 가운데 첫 번째 오해가 가장 흔합니다. AI 서비스 유입 수치는 답변에 노출된 뒤 사람이 행동한 결과입니다. 봇 방문은 그보다 앞선 수집 단계의 신호입니다. 두 숫자를 섞어 보면 수집은 활발하지만 클릭이 적은 페이지를 발견하기 어렵습니다.

서버 쪽에서 AI 봇 방문은 어떻게 확인하나요?

확인 순서는 다음과 같습니다.

  1. 웹 서버의 접속 로그 보관 여부와 기간을 확인합니다. 실무에서는 CDN(콘텐츠 전송 네트워크)을 쓰면 캐시 응답이 원본 서버에 남지 않을 수 있으므로 원본 서버 로그와 CDN 로그를 함께 확인할 것을 권합니다.
  2. 사용자 에이전트에 위 표의 봇 이름이 들어간 요청을 추출합니다.
  3. OpenAI와 Perplexity 봇은 각 회사가 봇별로 공개한 IP 목록 파일과 요청 IP를 비교합니다.
  4. Google 크롤러는 Google 문서의 방법대로 IP에 역방향 DNS 조회를 합니다. 결과가 Google 소유 도메인으로 끝나는지 보고, 정방향 조회 결과가 원래 IP와 같은지 대조합니다.
  5. Anthropic 봇은 인용한 도움말에 IP 검증 방법이 없으므로 사용자 에이전트 기준으로만 분류하고 별도로 표시합니다.
  6. 검증 결과별로 나눠 페이지 주소별·응답 코드별로 집계합니다.

Google 크롤러는 Search Console의 크롤링 통계 보고서로도 확인할 수 있습니다. 도움말은 이 보고서가 크롤링 요청 수, 응답 코드, 파일 유형, Googlebot 유형을 보여 준다고 설명합니다. 이 보고서는 루트 수준 속성에서만 제공됩니다.

서버를 거치는 측정 구성도 출발점을 확인해야 합니다. 예를 들어 브라우저 태그가 보낸 데이터를 자사 서버를 거쳐 분석 도구로 전달하는 구성은, 이름에 서버가 들어가도 출발점이 브라우저입니다. 이 경우 앞에서 설명한 한계가 그대로 남습니다.

개발·호스팅 담당자에게 보낼 요청 문안

아래 문안을 그대로 옮겨 써도 됩니다.

「최근 30일 접속 로그에서 아래 봇의 요청을 추출해 주십시오. CDN을 쓰는 경우 CDN 로그도 포함해 주십시오.

대상 봇: GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot, Claude-SearchBot, Claude-User, PerplexityBot, Perplexity-User, Googlebot

항목은 요청 일시, 페이지 주소, 응답 코드, 요청 IP, 사용자 에이전트 원문입니다. OpenAI·Perplexity 봇은 공개 IP 목록, Googlebot은 역방향·정방향 DNS로 검증해 주십시오. Anthropic 봇은 사용자 에이전트 기준으로만 분류해 별도 열로 표시해 주십시오.」

기록 양식 예시

항목기록 방법예시(가상)
조회 기간시작일과 종료일을 함께 적습니다9월 1일~9월 30일
봇 이름사용자 에이전트에서 확인한 이름OAI-SearchBot
검증 방법공개 IP 목록, DNS 대조, 사용자 에이전트만 중 하나공개 IP 목록
검증 결과일치, 불일치, 검증 불가(사용자 에이전트만) 중 하나일치
페이지 주소요청된 경로제품 소개 페이지
응답 코드서버가 돌려준 상태404
판단 메모이상 여부와 담당자 조치주소 변경 후 리다이렉트 누락

예를 들어 가상의 ○○ 기업이라면 이 양식에서 이상 징후를 찾을 수 있습니다. 제품 소개 페이지에 검색 색인용 봇 요청이 꾸준히 들어오는데 응답 코드가 404로 남는 경우입니다. 분석 보고서만으로는 드러나지 않는 수집 장애입니다.

봇 요청이 있다고 해서 AI 답변 인용이 보장되지는 않습니다. 수집이 일어났다는 선행 신호로 해석하고, 실제 답변 노출은 따로 확인합니다.

정리

자바스크립트 방문 분석은 사람의 브라우저 행동을 재는 도구이고, AI 봇의 수집은 서버가 요청을 받는 단계에서 일어납니다. 여기에 스크립트 실행 조건, 알려진 봇 자동 제외, 사용자 요청형 에이전트의 동작이 겹쳐 봇 방문은 분석 보고서에 잡히기 어렵습니다. 바로 실행할 순서는 다음과 같습니다.

  1. AI 서비스 유입 수치와 봇 방문을 서로 다른 지표로 내부 문서에 정의합니다.
  2. 웹 서버·CDN 접속 로그의 보관 여부와 기간을 개발·호스팅 담당자에게 확인합니다.
  3. 위 요청 문안으로 최근 30일 AI 봇 요청을 추출하고, 회사별 방법으로 검증합니다.
  4. 검증 결과를 기록 양식에 옮기고, 페이지별 요청 수와 응답 코드 이상 여부를 매월 비교합니다.

참고 자료

추천 콘텐츠

📊

GeoAnalytics 시작하기

AI·검색엔진이 내 사이트를 수집·참조하는 신호를 측정해 보세요. Free 플랜 무료.

무료로 시작하기