AI 크롤러
AI 크롤러는 검색 결과 페이지가 아니라 AI 시스템을 대신해 사이트의 페이지를 가져가는 자동화된 클라이언트다. 이 이름은 최소한 세 가지 다른 일을 한꺼번에 가리킨다. 앞으로 나올 모델의 학습에 쓰일 수도 있는 텍스트를 모으는 일, 답변 엔진이 참조하는 색인을 만드는 일, 그리고 누군가 방금 물어봤기 때문에 페이지 한 장을 실시간으로 가져가는 일이다. 각각은 대개 이름이 다른 별개의 봇이므로 "AI 크롤러를 차단한다"는 것은 하나의 결정이 아니다. 셋이며, 어시스턴트가 당신을 인용할 수 있는지를 결정하는 것은 그중 하나뿐이다.
세 가지 일, 세 종류의 봇
AI 봇에 관한 조언이 서로 어긋나는 이유는 사람마다 다른 일을 이야기하면서 같은 단어를 쓰기 때문이다. 쓸모 있는 정리 기준은 그 요청이 *무엇을 위한 것인가*이다. 거절했을 때 치를 대가를 정하는 것이 바로 그 지점이기 때문이다.
- 학습용 크롤러는 아직 존재하지 않는 모델의 학습 데이터에 들어갈 수도 있는 텍스트를 모은다. 가장 자주 언급되는 것은 OpenAI의 GPTBot, Anthropic의 ClaudeBot, Common Crawl 프로젝트의 CCBot이다. 이들을 돌려보내도 오늘 인용되는지 여부는 전혀 달라지지 않는다.
- 색인용 크롤러는 답변 엔진이 답하는 그 순간에 검색하는 색인을 만든다. OpenAI의 OAI-SearchBot과 PerplexityBot이 가장 분명한 예다. 이 무리가 빠지면 AI 인용을 잃게 되고, 사람들이 실수로 차단하는 것도 바로 이 무리다.
- 사용자가 촉발한 요청은 누군가 링크를 붙여넣었거나 그에 관해 물었기 때문에 페이지 한 장만 가져간다. OpenAI가 자사의 것을 ChatGPT-User라고 부르는 이유다. 기능상으로는 크롤링보다 사람이 링크를 누른 것에 가깝고, 한 장씩 찾아온다.
- 끝내 이름을 밝히지 않는 것들. 자동화된 트래픽의 상당 부분이 평범한 브라우저인 척하거나 아무 식별 정보도 보내지 않는다. robots 규칙은 이들에게 닿지 않는다. robots 규칙이란 이름을 향한 부탁이기 때문이다.
robots.txt가 실제로 정하는 것과 정하지 못하는 것
robots.txt는 사용자 에이전트별 요청의 묶음이고, 읽기로 선택한 쪽이 자발적으로 따르는 것이다. 통제할 수 있는 것은 가져가는 행위뿐이다. 이미 수집된 텍스트를 되돌릴 수 없고, 무시하는 클라이언트를 구속하지도 못한다. 그리고 긴 파일을 쓰기 전에 기억할 점 하나. 이것은 공개 파일이라, 아무도 안 읽었으면 하는 경로들의 목록 자체를 누구나 읽을 수 있다.
가장 많이 오해받는 제어는 Google-Extended다. 애초에 크롤러가 아니기 때문이다. 구글은 이를 Googlebot이 이미 가져간 콘텐츠가 자사 생성형 제품 개선에 쓰여도 되는지를 관장하는 토큰으로 문서화하고 있으며, 검색 노출에는 영향을 주지 않는다고 명시한다. 따라서 AI 개요의 스위치도 아니다. AI 개요는 일반 검색 색인에서 생성되고 일반 스니펫 제어를 따른다. Google-Extended를 추가하는 것은 대부분이 생각하는 것보다 적은 일을 하며, 원하던 효과를 위해 Googlebot에 손을 대면 검색에서 통째로 사라진다.
같은 비대칭이 파일 전체를 관통한다. 당신이 쓰는 모든 규칙은 정직하게 이름을 밝히고 따르기로 선택한 봇을 향한다. 다시 말해 트래픽의 얌전한 쪽이지, 애초에 당신이 이 주제를 찾아보게 만든 그 쪽이 아니다.
그래서 차단해야 하나
이 결정이 껄끄러운 이유는 시간축에서 비대칭이기 때문이다. 크롤러를 허용하는 대가는 눈에 보이고 즉시 온다. 오늘 오후 서버에 꽂히는 요청이다. 차단하는 대가는 보이지 않고 몇 달 뒤에, 남을 인용하는 답변의 형태로 온다. 세 경우가 깔끔하게 갈린다.
- 어시스턴트에게 질문하는 사람들에게 파는 경우. 색인용 크롤러는 허용하고 학습용은 신경 쓰지 말자. 검색으로 불러올 수 있다는 것은 생성형 엔진 최적화의 다른 모든 것의 전제 조건이다. 읽히지 않는 데서 시작해 인용되는 경로는 없다.
- 콘텐츠 자체가 상품인 경우 — 유료 아카이브, 강의, 라이선스로 제공하는 데이터셋 같은 것들이다. 여기서는 학습 허용 여부가 반사적 반응이 아니라 진짜 사업상의 판단이 되고, 거절하는 데 명분이 선다. 다만 앞으로의 몫에만 효력이 있다는 점, 색인용 크롤러는 다르게 답해도 되는 별개의 결정이라는 점은 분명히 해두자.
- 정작 걱정이 서버 부하인 경우. 그렇다면 이름 있는 AI 봇은 원인이 아닐 가능성이 크고, 진단은 크롤 예산과 오리진 로그의 몫이지 robots 규칙의 몫이 아니다.
작은 스타트업에게 정직한 기본값은 이름 있는 크롤러를 허용하고, 아낀 오후를 인용할 만한 글을 쓰는 데 쓰는 것이다. 하나의 질문에 그대로 들어낼 수 있는 한 문단으로 답하는 깔끔하고 사실에 근거한 페이지가 어떤 robots 규칙보다 인용에 훨씬 크게 기여한다. llms.txt 파일은 그 위에 얹는 값싼 한 수이지, 가져갈 수 있음을 대신하지 못한다.
우리가 배운 것 — 목록이 정하고, 그 목록은 틀릴 수 있다
AgentCeres — agentceres.com의 AI Growth Officer — 는 자사 마케팅 사이트에서 이 날 끝에 베였다. 우리 프레임워크는 크롤러와 브라우저에 조금씩 다른 HTML을 내보내는데, 그 판단을 내장된 크롤러 사용자 에이전트 목록이 한다. Googlebot은 기본값으로 그 목록에 없었고, Search Console의 실시간 URL 검사 에이전트는 있었다. 그래서 확인할 때마다 실시간 검사는 흠 없는 페이지를 그려냈고, 실제 크롤링은 canonical과 hreflang 태그를 헤더 닫는 지점 아래, 즉 효력이 없는 자리에서 받아 갔다. 찾아내기까지 아흔 개 남짓한 페이지가 "사용자가 지정한 표준 URL 없는 중복"으로 기록됐고, 이토록 오래 살아남은 이유는 우리가 검증에 쓰던 도구가 정작 신경 쓰던 크롤러와는 다른 목록에 올라 있었기 때문이다.
버그보다 일반화가 더 값지다. 한 크롤러를 다른 크롤러와 다르게 대하는 모든 동작은 이름이 목록과 일치하는 데 의존하고, 그 두 쪽 모두 썩는다. 봇은 이름이 바뀌고 쪼개지며, 목록은 내년의 이름을 추측하는 사람이 쓴다. 그 아래에 함정이 하나 더 있다. 우리 CDN은 사용자 에이전트가 아니라 URL로 캐시하므로, 먼저 캐시된 판본이 이후의 모든 방문자와 모든 봇에게 전달된다. 크롤러별 동작은 설정하기보다 실제로 전달하기가 훨씬 어렵고, 이는 누구에게나 같은 정직한 페이지를 내보내는 사이트를 지지하는 또 하나의 근거다.
FAQ
- GPTBot을 차단하면 ChatGPT가 우리 사이트를 인용하지 않게 되나요
- 아닙니다. 가장 흔한 혼동입니다. GPTBot은 OpenAI의 학습용 크롤러입니다. 검색과 브라우징 기능은 OAI-SearchBot과 ChatGPT-User를 통해 페이지에 닿고, 이들은 robots.txt에서 별개의 이름입니다. GPTBot 차단은 학습만 거절할 뿐 인용은 그대로 두며, 답변에서 사라지는 것은 나머지 둘을 차단했을 때입니다.
- Google-Extended가 AI 개요 노출을 제어하나요
- 아닙니다. 구글은 Google-Extended를 이미 크롤링한 콘텐츠가 자사 생성형 제품 개선에 쓰이는지를 관장하는 것으로 문서화하며, 검색 노출에는 영향을 주지 않는다고 밝힙니다. AI 개요는 일반 검색 색인에서 만들어지므로 일반 제어, 즉 스니펫 지시문을 따르지 Google-Extended를 따르지 않습니다.
- 어떤 AI 크롤러가 실제로 우리 사이트에 오는지 어떻게 확인하나요
- 서버나 CDN의 접근 로그를 읽고 사용자 에이전트별로 묶어 보세요. 애널리틱스 도구로는 보이지 않습니다. 크롤러에게는 애널리틱스의 자바스크립트가 애초에 실행되지 않기 때문입니다. 자동화 트래픽의 상당 부분은 식별되지 않는다고 보고, 이름 있는 봇만을 실제로 따져볼 수 있는 범위로 다루는 편이 낫습니다.
An AI growth team that runs this for you
AgentCeres is a managed AI marketing team — you approve what ships. 14-day free trial, from $39/month.