AI 크롤러가 왔는지 모르면 무엇이 문제인가
robots.txt 에서 AI 크롤러를 열어 두었다고 해서 실제로 수집이 일어났다는 뜻은 아닙니다. 정책은 안내이고, 방문은 그와 별개의 사실입니다.
수집 자체가 없었는데 문장을 고치고 구조화 데이터를 손보고 있으면 원인을 잘못 짚은 것입니다. 서버 접근 로그는 이 둘을 구분할 수 있는 거의 유일한 1차 기록입니다.
AI 답변이 우리 페이지를 인용할지는 우리가 정할 수 없습니다. 다만 어떤 크롤러가 언제 어떤 페이지를 가져갔고 무슨 응답을 받아 갔는지는 로그에 남습니다.
로그에서 먼저 보는 것은 User-Agent 문자열입니다
각 회사는 크롤러가 쓰는 User-Agent 문자열을 공식 문서에 공개합니다. OpenAI 는 검색에 쓰는 OAI-SearchBot, 모델 학습에 쓰는 GPTBot, 사용자의 요청으로 움직이는 ChatGPT-User 를 구분해 두었습니다. Anthropic 은 ClaudeBot, Claude-User, Claude-SearchBot 세 가지를 안내합니다.
접근 로그에 User-Agent 필드가 남아 있다면 이름으로 걸러 내는 것에서 시작합니다.
grep -iE 'GPTBot|OAI-SearchBot|ChatGPT-User|ClaudeBot|Claude-User|Claude-SearchBot|Googlebot' access.log
버전 번호는 바뀔 수 있으니 문자열 전체가 아니라 이름 부분으로 찾습니다. OpenAI 문서는 robots.txt 를 가져갈 때 robots.txt 표시를 붙인 User-Agent 를 쓸 수 있다고 밝히고 있습니다. 경로가 남지 않는 로그에서도 그 요청만 따로 셀 수 있다는 뜻입니다.
User-Agent 만으로는 진짜인지 알 수 없습니다
User-Agent 는 요청을 보내는 쪽이 스스로 적는 값입니다. 누구나 같은 문자열을 적을 수 있으므로, 이름만 보고 "AI 크롤러가 다녀갔다" 고 판단하면 틀릴 수 있습니다. 수집량을 근거로 서버를 늘리거나 규칙을 바꾸는 판단이라면 한 단계 더 확인해야 합니다.
확인 수단은 두 가지입니다. 로그의 IP 를 회사가 공개한 IP 목록과 대조하는 방법, 그리고 역방향 DNS 조회입니다.
Google 은 로그의 IP 로 역방향 조회를 해서 googlebot.com, google.com, googleusercontent.com 중 하나가 나오는지 보고, 나온 도메인 이름으로 다시 순방향 조회를 해서 원래 IP 와 같은지 확인하라고 안내합니다. 두 방향이 모두 맞아야 통과입니다.
host 66.249.66.1
host crawl-66-249-66-1.googlebot.com
회사별로 확인 수단이 다릅니다
| 회사 | 공개하는 크롤러 이름 | 공개 IP 목록 | 역방향 DNS 안내 |
|---|---|---|---|
| Googlebot 등 | 크롤러 유형별 JSON 3종 | 있음 | |
| OpenAI | OAI-SearchBot, GPTBot, ChatGPT-User | 크롤러별 JSON 파일 | 없음 |
| Anthropic | ClaudeBot, Claude-User, Claude-SearchBot | JSON 한 파일 | 없음 |
Google 은 IP 목록과 DNS 조회를 함께 안내하고, 나머지 두 곳은 공개 IP 목록이 기준입니다. 목록은 CIDR 형식이라 눈으로 맞춰 보기 어렵습니다. 로그 분석 도구나 짧은 스크립트로 대조하는 편이 낫습니다.
Anthropic 문서는 수집을 막는 수단으로 IP 차단을 권하지 않습니다. IP 를 막으면 robots.txt 조차 읽지 못해 의도한 설정이 전달되지 않기 때문입니다. 공개 IP 목록은 차단용이 아니라 확인용으로 씁니다.
확인 절차
- 접근 로그에서 최근 30일 구간을 자릅니다
- 위 이름들로 User-Agent 를 걸러 요청 수와 마지막 방문 시각을 셉니다
- 이름별로 IP 를 모아 해당 회사의 공개 목록과 대조합니다
- Google 계열은 역방향 조회와 순방향 조회까지 해 둡니다
- 목록에 없는 IP 가 같은 이름을 쓰고 있으면 사칭으로 표시하고 집계에서 뺍니다
- 남은 요청의 응답 코드를 함께 셉니다
응답 코드를 빼먹으면 확인이 절반에서 끝납니다. 크롤러가 왔는데 403 이나 503 을 받아 갔다면 허용 설정과 실제 응답이 어긋난 것이고, 이 어긋남은 로그를 보지 않으면 드러나지 않습니다.
여기까지 하면 수집이 아예 없었던 경우, 수집은 있었으나 오류 응답을 받아 간 경우, 수집도 응답도 정상인 경우를 구분할 수 있습니다. 세 경우의 다음 할 일이 각각 다릅니다. 싹 SAG 의 사이트 수집 요약 화면은 이 가운데 접근 가능 여부와 응답 상태를 먼저 정리해 줍니다.