"우리 사이트에 ChatGPT가 다녀갔다", "구글봇 방문이 늘었다" 같은 로그를 보고 기뻐하기 전에 한 가지를 확인해야 합니다. 그 방문이 진짜인지입니다. SEO 전문가 두에인 포레스터(Duane Forrester)가 자신의 새 사이트 로그를 검증해 보니, AI 어시스턴트라고 주장한 방문의 81.8%가 가짜였고, 구글봇이라 주장한 방문은 약 87%가 가짜였습니다.

결론부터 말하면, 봇이 스스로 밝히는 이름은 신뢰할 수 없습니다. 누구나 "나는 구글봇이다"라고 적어 보낼 수 있기 때문입니다. 그리고 이 가짜들은 단순히 통계를 어지럽히는 데 그치지 않고, 신뢰받는 이름 뒤에 숨어 사이트의 민감한 정보를 노립니다. 무엇을 봐야 하는지, 어떻게 가려내는지 Search Engine Journal 보도를 바탕으로 풀어봤습니다.

봇이 자기 이름을 속인다는 게 무슨 말인가

봇이 자기 이름을 속인다는 게 무슨 말인가

먼저 용어를 쉽게 짚겠습니다. 웹사이트에 접속하는 프로그램(봇)은 자신이 누구인지 알리는 '사용자 에이전트(User-Agent)'라는 이름표를 붙입니다. 구글의 검색 로봇은 "Googlebot", ChatGPT의 수집기는 "GPTBot" 같은 식입니다. 문제는 이 이름표를 누구나 마음대로 적을 수 있다는 데 있습니다. 악성 프로그램이 "나는 구글봇입니다"라고 적어 보내면, 로그에는 구글봇 방문으로 찍힙니다.

이렇게 남의 이름을 빌려 쓰는 것을 '스푸핑(spoofing)'이라고 합니다. 왜 굳이 유명한 봇 이름을 빌릴까요. 사이트들이 구글봇이나 유명 AI 봇은 차단하지 않고 통과시키기 때문입니다. 신뢰받는 이름표를 달면 방화벽을 쉽게 지나갈 수 있습니다.

비유하자면 택배 기사 유니폼을 입고 건물에 들어오는 것과 같습니다. 경비원은 익숙한 유니폼을 보고 의심 없이 문을 열어줍니다. 하지만 그 유니폼만으로 진짜 택배 기사인지 확인할 수는 없습니다. 사원증이나 차량 번호처럼 위조하기 어려운 증거를 봐야 진짜가 가려집니다. 봇도 마찬가지여서, 스스로 적은 이름이 아니라 다른 증거로 신원을 확인해야 합니다.

81.8%, 그리고 87%라는 숫자

81.8%, 그리고 87%라는 숫자

포레스터는 자신의 사이트 로그를 직접 검증했습니다. AI 어시스턴트라고 주장하며 사용자 세션 중에 실시간으로 접속한 요청 33건 가운데, 진짜로 확인된 것은 6건뿐이었습니다. 나머지 27건, 즉 81.8%가 가짜였습니다.

더 심각한 것은 가짜들이 무엇을 했는지입니다. AI 어시스턴트 이름을 단 채로, 이들은 .env.production이나 secrets.yaml, config.json 같은 파일을 뒤지고 다녔습니다. 이 파일들은 보통 비밀번호나 API 키 같은 민감한 정보가 담기는 곳입니다. 다시 말해, 신뢰받는 AI 봇의 이름을 빌린 자격증명 탈취 시도였던 셈입니다. 좋은 일을 하러 온 손님인 척 들어와 금고 위치를 묻고 다닌 것과 같습니다.

여기서 '자격증명 탈취'가 무엇인지 쉽게 짚겠습니다. 웹사이트를 운영하면 데이터베이스 비밀번호, 외부 서비스 연결 키 같은 민감한 정보를 어딘가에 저장해야 합니다. 개발 과정에서 이런 정보를 .envconfig 파일에 담아두는 일이 흔합니다. 공격자는 이 파일들이 실수로 공개돼 있기를 기대하며 사이트 구석구석을 뒤집니다. 만약 하나라도 노출돼 있으면, 그 키로 데이터베이스에 접속하거나 유료 서비스를 마음대로 쓸 수 있게 됩니다. 가짜 AI 봇들이 바로 이 일을 하고 있었던 것입니다.

구글봇은 더 심했습니다. 로그에 구글봇 이름을 달고 들어온 요청 799건 중 진짜로 확인된 것은 107건뿐이었습니다. 약 87%가 가짜였습니다. 포레스터는 이것이 새삼스러운 일은 아니라고 말합니다. 구글봇은 지난 20년 가까이 웹에서 가장 많이 사칭당해 온 이름이기 때문입니다. 오래된 사칭이지만, AI 봇이라는 새 이름표가 추가되면서 사칭의 종류만 늘어난 셈입니다.

그럼 진짜 봇은 어떻게 가려내나

그럼 진짜 봇은 어떻게 가려내나

핵심은 이름표가 아니라 'IP 주소'를 확인하는 것입니다. IP 주소는 인터넷에서 컴퓨터의 실제 위치를 나타내는 번호로, 이름표와 달리 함부로 위조하기 어렵습니다.

검증 방법은 세 가지 결과로 나뉩니다. 첫째, 접속한 IP가 그 회사가 공식 발표한 주소 범위 안에 있으면 '진짜(Verified)'입니다. 둘째, 공식 범위 밖이면 '가짜(Spoofed)'입니다. 셋째, 확인할 수 없으면 '판단 불가(Unverifiable)'로 둡니다.

다행히 주요 업체들은 자기 봇의 IP 범위를 공개합니다. OpenAI, Anthropic, Perplexity, 구글이 모두 공식 IP 목록을 제공합니다. 여기에 역방향 DNS 조회(IP가 정말 그 회사 도메인에 연결되는지 확인하는 절차)와 공개 크롤링 데이터(Common Crawl) 대조까지 더하면 신뢰도가 올라갑니다. 이름표가 아니라 출신지를 확인하는 방식입니다.

조금 더 풀어 설명하면 이렇습니다. 구글봇이라고 적힌 방문이 들어오면, 그 방문의 IP 주소가 구글이 공식으로 발표한 주소 목록 안에 있는지 대조합니다. 목록 안에 있으면 진짜로 인정하고, 목록 밖이면 가짜로 분류합니다. 역방향 DNS 조회는 한 단계 더 확인하는 절차인데, 그 IP를 거꾸로 따라가 정말 구글 소유의 도메인으로 연결되는지 보는 것입니다. 진짜 구글봇이라면 구글 도메인으로 깔끔하게 연결되고, 사칭이라면 엉뚱한 곳으로 이어지거나 연결이 끊깁니다. 이 두 가지만 맞춰봐도 대부분의 사칭은 걸러집니다.

확인이 안 되는 '판단 불가'도 일부 남습니다. 이때는 무조건 진짜로 치지 말고, 그대로 '판단 불가'로 기록해 두는 편이 안전합니다. 애매한 방문을 진짜로 넣어버리면 통계가 다시 부풀려지기 때문입니다.

진짜로 확인된 봇들이 남긴 기록

포레스터가 아직 아무에게도 알리지 않은 새 사이트에서 14일간 진짜로 확인된 방문은 다음과 같았습니다. ClaudeBot이 166회로 가장 많았고, 구글봇 107회, GPTBot 46회, 구글 검색 크롤러 40회 순이었습니다. 홍보를 전혀 하지 않은 사이트인데도 AI 수집기들이 부지런히 다녀갔다는 뜻입니다. 그만큼 AI들이 새 콘텐츠를 빠르게 찾아 학습 재료로 모으고 있다는 신호이기도 합니다.

다만 여기에는 함정이 하나 있습니다. 봇이 내 글을 '가져간 것(fetched)'과, 그 글이 실제 AI 답변에 '쓰인 것(used·cited)'은 전혀 다른 문제라는 점입니다. 검증으로 알 수 있는 것은 어떤 봇이 다녀갔는지까지입니다. 내 콘텐츠가 ChatGPT 답변에 인용됐는지는 또 다른 측정이 필요합니다.

규모가 작은 사이트도 신경 써야 하나

"우리는 트래픽도 적은데 이런 게 무슨 상관일까" 싶을 수 있습니다. 그러나 포레스터가 검증한 사이트도 아직 아무에게도 알리지 않은 새 사이트였습니다. 그런데도 14일 만에 진짜 AI 수집기들이 수백 번 다녀갔고, 동시에 사칭과 자격증명 탐색 시도도 함께 들어왔습니다. 규모가 작다고 사칭 트래픽이 비켜가지는 않는다는 뜻입니다.

오히려 작은 사이트일수록 보안 인력이 부족해, 자격증명 파일이 노출되면 피해가 큽니다. 앞서 본 가짜 봇들이 노린 .env 같은 파일에 데이터베이스 비밀번호나 결제 API 키가 들어 있다면, 한 번의 유출로 서비스 전체가 위험해집니다. 그래서 트래픽 분석은 마케팅만의 일이 아니라 기본적인 보안 점검이기도 합니다.

또 하나, AI 시대의 성과를 측정하려는 곳이라면 더 중요합니다. "AI 봇 방문이 늘었다"를 성과로 보고하기 시작하는 순간, 그 숫자의 80%가 가짜라면 보고서 전체가 허구가 됩니다. 작은 팀일수록 잘못된 숫자 하나가 의사결정을 통째로 비틀 수 있습니다.

그래서 이번 주에 할 일

거창한 도구가 필요한 일은 아닙니다. 자기 서버 로그를 열어, 구글봇이나 AI 봇이라고 적힌 방문들의 IP를 각 업체가 공개한 IP 범위와 대조해 보는 것부터 시작하면 됩니다. 이렇게 하면 우리 사이트의 실제 사칭 비율이 얼마인지, 진짜 수집 활동은 어느 정도인지 숫자로 잡힙니다.

이 작업이 중요한 이유는 두 가지입니다. 하나는 보안입니다. 신뢰받는 이름으로 위장한 자격증명 탈취 시도를 걸러낼 수 있습니다. 다른 하나는 측정의 정확성입니다. 가짜 트래픽을 진짜로 착각하면, AI 시대의 성과 지표가 통째로 부풀려집니다.

직접 IP를 일일이 대조하기 어렵다면, 서버 앞단의 보안 서비스(예: 클라우드플레어 같은 곳)가 제공하는 '검증된 봇' 표시 기능을 활용하는 방법도 있습니다. 이런 서비스는 알려진 봇의 IP를 대신 확인해 진짜·가짜를 표시해 줍니다. 다만 어떤 방식을 쓰든 핵심 원칙은 같습니다. 봇이 스스로 밝힌 이름을 그대로 믿지 말고, 위조하기 어려운 증거로 한 번 더 확인하라는 것입니다.

AI 답변에 인용되는 일을 목표로 삼는다면, 그 출발점은 내 로그의 숫자가 진짜인지부터 확인하는 것입니다. 측정의 진짜·가짜를 가리는 문제는 데스크톱과 모바일 클릭률 데이터를 읽을 때도 똑같이 중요합니다.