최근 AI 챗봇들이 웹 페이지에 접근하는 방식이 주목받고 있다. 특히, 특정 웹사이트에 대한 질문을 받았을 때, 챗봇이 실제로 페이지를 가져오는지 아니면 이전에 구축한 인덱스를 기반으로 답변하는지에 대한 궁금증이 커지고 있다. 이를 명확히 파악하기 위해, 필자는 nginx 프로브를 설정하고 주요 챗봇들에게 실시간으로 페이지를 가져오도록 유도하는 쿼리를 입력했다. 이 글에서는 서버가 기록한 내용을 바탕으로 AI 트래픽의 차이를 분석한다.

AI 트래픽의 두 가지 유형

AI 트래픽은 일반적으로 두 가지 유형으로 나뉜다. 첫 번째는 모델이 웹 페이지를 읽기 위해 직접 접근하는 경우이며, 두 번째는 사용자가 챗봇의 안내를 받아 페이지를 읽는 경우이다. 이러한 두 가지 유형을 하나의 AI 트래픽 수치로 통합하는 것은 데이터의 유용한 구분을 숨기게 된다. 각 챗봇은 고유한 쿼리 문자열을 사용하여 요청을 보내므로, 로그에서 이를 쉽게 구별할 수 있다. 필자는 여러 세션에서 쿼리를 반복하여 일시적인 캐시 히트가 검색 경로를 숨기지 않도록 했다.

주요 챗봇의 접근 방식

다섯 개의 챗봇은 사용자 에이전트에서 검색 전용 신호를 보냈다. 다음은 각 챗봇의 접근 방식에 대한 세부 사항이다.

- **ChatGPT-User**는 여러 IP 주소에서 동시에 요청을 보내며, 여러 후보 페이지를 동시에 가져오는 경향이 있다. 최근 24시간 동안의 로그에서는 다섯 개의 Azure IP 범위에서 요청이 발생했다. 이는 OpenAI의 공식 문서와 일치한다.

- **Claude-User**는 페이지를 가져오기 전에 항상 /robots.txt를 요청하며, Anthropic 소속 IP 범위에서 작동한다. 이는 Anthropic의 크롤러 문서와 일치하며, Claude를 차단하려면 User-agent: Claude-User를 disallow로 설정해야 한다.

- **Perplexity-User**는 페이지를 직접 가져오며, Accept 헤더나 referrer 없이 요청을 보낸다. Perplexity는 자체 인덱스에서 답변할 수 있지만, 실시간으로 가져올 수도 있다.

- **Gemini**는 사용자 클릭 후 일반 브라우저에서 요청을 보냈지만, 제공자 측에서의 요청은 없었다. 이는 AI 트래픽을 측정할 때 중요한 고려 사항이다.

- **Microsoft Copilot**는 일반 Chrome 사용자 에이전트로 페이지를 가져오며, Bingbot 활동은 관찰되지 않았다. Copilot의 요청을 로그에서 긍정적으로 식별할 수 없다.

- **Grok**은 일반 Mac Safari 및 Chrome 사용자 에이전트로 페이지를 가져오며, 요청에서 xAI를 식별할 수 있는 신호가 없다.

이러한 분석을 통해, Gemini, Copilot, Grok의 경우 제공자 측에서의 요청이 보이지 않거나 일반 사용자 방문자와 구별되지 않음을 알 수 있다. AI 트래픽을 로그에서 측정하려는 경우, 이 세 가지를 놓칠 가능성이 크다.

메타의 접근 방식

Meta는 Google과 유사한 방식으로 자체 인덱스를 유지하는 것으로 보인다. Meta AI는 라이브 페이지에 존재하지 않는 정보를 반환하며, 이는 인덱스 기반의 검색 경로와 일치한다. Meta가 라이브로 페이지를 가져올 때는 meta-webindexer/1.1로 요청을 보낸다. Meta의 웹 크롤러 문서에 따르면, Meta-ExternalFetcher는 Facebook, Messenger, Instagram, WhatsApp AI 기능을 위한 사용자 요청 검색 봇이다.

결론

이 연구는 AI 챗봇의 웹 페이지 접근 방식을 명확히 구분하고, 이를 통해 웹사이트 운영자들이 AI 트래픽을 효과적으로 측정할 수 있는 방법을 제시한다. 각 챗봇의 사용자 에이전트를 이해하는 것은 웹사이트의 트래픽 분석에 중요한 요소가 된다.