HowtoAI
ai-guide2026-08-11 5 min read

AI 검색에 내 사이트가 인용되는지 확인하는 법 — 크롤러 방문 기록과 리퍼러 실측

🤖
HowtoAI 편집팀AI 전문 에디터

AI 기술을 누구나 쉽게 활용할 수 있도록 실전 가이드를 작성합니다. ChatGPT, Claude, AI 자동화, SEO 분야를 전문으로 다룹니다.

📅 2026-08-11⏱️ 5 min read🌐 how-toai.com
목차 보기

챗GPT나 퍼플렉시티가 내 글을 실제로 읽고 있는지 궁금해서 검색해 보면, 대부분 "AI에게 직접 물어보세요" 수준의 답이 나와요. 그건 확인이 아니라 표본 한 개예요.

결론부터 말하면, 확인 방법은 내가 어떤 기록에 접근할 수 있느냐에 따라 셋으로 갈려요. 서버나 클라우드플레어 로그를 볼 수 있으면 봇의 User-Agent와 공개 IP 대역으로 "읽혔는가"를 잴 수 있고, 로그를 볼 수 없는 플랫폼이면 리퍼러로 "인용돼서 사람이 넘어왔는가"만 잴 수 있어요. 그리고 구글 애널리틱스만 있다면 봇 방문은 원리상 보이지 않아요.

이 셋을 섞으면 글 전체가 틀려요. 봇이 왔다는 기록은 읽었다는 증거일 뿐 답변에 인용됐다는 증거가 아니고, 리퍼러는 인용됐다는 증거일 뿐 언제 읽어 갔는지는 말해 주지 않거든요.

아래 내용은 2026년 8월 11일에 OpenAI, 퍼플렉시티, Anthropic, 구글의 공식 문서와 IP 공개 JSON을 직접 받아 확인했어요.

나무 작업대 위에 놓인 둥근 회색 점토판으로, 표면에 동심원 모양의 결이 나 있고 판 주위와 상판에 마른 점토 부스러기가 흩어져 있는 모습

먼저 내가 어느 층에 있는지부터 정해요

세 층을 먼저 갈라 두면 뒤가 간단해져요.

볼 수 있는 기록잴 수 있는 것잴 수 없는 것
(a) 서버·클라우드플레어 로그 접근 가능접근 로그의 User-Agent와 요청 IP어떤 봇이 언제 어느 URL을 읽었는지그 방문이 답변에 인용됐는지
(b) 로그 없음(티스토리·네이버 블로그 등)유입 경로의 리퍼러 도메인답변에서 링크를 눌러 들어온 사람봇 방문 전부
(c) 구글 애널리틱스(GA4)만 있음리퍼러 기반 유입답변에서 넘어온 사람봇 방문 전부

(b)와 (c)는 결과가 비슷해 보이지만 이유가 달라요. (b)는 기록에 접근할 수 없어서고, (c)는 기록에서 봇이 의도적으로 빠져 있어서예요. 이 이야기는 아래에서 따로 다룰게요.

봇 이름과 User-Agent 원문, 그리고 robots.txt

로그를 볼 수 있다면 이 표가 출발점이에요. 각 벤더의 공식 문서에 적힌 문자열을 그대로 옮겼어요.

봇 이름User-Agent 원문(문서 축자)robots.txt에 대해 문서가 적은 것공개 IPv4 프리픽스 수
GPTBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; GPTBot/1.4; +https://openai.com/gptbotdisallow하면 학습에 쓰지 말라는 표시가 된다고 적음(준수 선언 문장은 없음)21
OAI-SearchBotMozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36; compatible; OAI-SearchBot/1.4; +https://openai.com/searchbot옵트아웃하면 챗GPT 검색 답변에 표시되지 않지만 내비게이션 링크로는 나타날 수 있다고 적음35
ChatGPT-UserMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; ChatGPT-User/1.0; +https://openai.com/bot사용자가 시작한 동작이라 규칙이 적용되지 않을 수 있다고 명시256
OAI-AdsBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; OAI-AdsBot/1.0; +https://openai.com/adsbot문서에 언급 없음2
PerplexityBotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; PerplexityBot/1.0; +https://perplexity.ai/perplexitybot)robots.txt 태그로 관리하도록 안내8
Perplexity-UserMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Perplexity-User/1.0; +https://perplexity.ai/perplexity-user)대체로 무시한다고 명시4
ClaudeBot지원문서에 없음봇 전체가 robots.txt 지시를 준수한다고 선언20(세 봇 공통)
Claude-User지원문서에 없음위와 같은 선언에 포함, 예외 문장 없음20(세 봇 공통)
Claude-SearchBot지원문서에 없음위와 같은 선언에 포함20(세 봇 공통)
GooglebotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Googlebot/2.1; +http://www.google.com/bot.html) Chrome/W.X.Y.Z Safari/537.36자동 크롤 시 항상 준수한다고 적음169(common crawlers 공통, IPv6 146건 별도)
Google-Extended별도 User-Agent 없음(문서 명시)robots.txt 토큰으로만 존재해당 없음

표 캡션: 2026년 8월 11일 한국시간 기준으로 각 벤더 공식 문서와 IP 공개 JSON을 직접 조회한 값이에요. 프리픽스 수는 수시로 바뀌므로 아래 절차로 다시 세어 보세요.

표에서 세 가지가 눈에 띄어요.

첫째, Anthropic 지원문서에는 완전한 User-Agent 문자열이 없어요. 이 페이지 전문을 내려받아 Mozilla 를 검색한 결과 히트가 0건이었어요. 봇 이름과 용도, 차단 시 결과는 표로 정리돼 있는데 로그에서 찾을 문자열은 이 문서에 실려 있지 않아요. OpenAI와 퍼플렉시티가 전체 문자열을 그대로 싣는 것과 대비돼요. 다른 문서에 실려 있을 가능성까지 부정하는 건 아니고, 이 공식 지원문서 안에는 없다는 뜻이에요.

둘째, 사용자가 시작한 요청은 세 회사가 모두 예외로 두는데 Anthropic만 그 예외를 적지 않았어요. 흔히 "퍼플렉시티만 robots.txt를 무시한다"고 알려져 있지만, OpenAI도 ChatGPT-User에 대해 Because these actions are initiated by a user, robots.txt rules may not apply. 라고 적고, 구글도 사용자 발단 페처를 Because the fetch was requested by a user, these fetchers ignore robots.txt rules. 라고 적어요. 같은 회사의 사용자 발단 페처 목록 문서에는 이 문장이 these fetchers generally ignore robots.txt rules 로 적혀 있으니, 인용할 때 어느 문서를 본 것인지 밝혀 두는 편이 좋아요. 반면 Anthropic 문서는 Claude-User를 포함한 봇 전체에 대해 Anthropic's Bots respect "do not crawl" signals by honoring industry standard directives in robots.txt. 라고만 적고 사용자 발단 예외를 두지 않았어요.

셋째, 버전 번호를 문자열에 박아 두면 안 돼요. OpenAI 문서는 OAI-SearchBot과 GPTBot의 예시 문자열에 "버전 번호는 바뀔 수 있다"는 단서를 달아 두었고, 구글 문서는 Chrome/W.X.Y.Z 가 자리표시자라며 "정확한 버전 번호를 지정하지 말고 와일드카드를 쓰라"고 안내해요. 로그 검색 규칙은 GPTBot/1.4 가 아니라 GPTBot 까지만 걸어야 해요.

차단 쪽 설정을 아직 안 잡았다면 robots.txt에 AI 크롤러를 적는 순서를 먼저 보시는 편이 좋아요. 이 글은 그 반대편, 막았든 열었든 실제로 어떻게 됐는지 재는 쪽이에요.

프리픽스 개수는 직접 세면 돼요

위 표의 숫자는 조회 시점의 값이라 금방 낡아요. 그래서 숫자보다 세는 절차를 남길게요. 터미널에서 아래 한 줄이면 돼요.

curl -sL https://openai.com/gptbot.json | grep -o '"ipv4Prefix"' | wc -l

jq가 설치돼 있다면 파일이 마지막으로 만들어진 시각까지 볼 수 있어요.

curl -sL https://openai.com/gptbot.json | jq -r .creationTime

주소는 이렇게 갈려요.

벤더JSON 주소
OpenAI GPTBothttps://openai.com/gptbot.json
OpenAI OAI-SearchBothttps://openai.com/searchbot.json
OpenAI ChatGPT-Userhttps://openai.com/chatgpt-user.json
OpenAI OAI-AdsBothttps://openai.com/adsbot.json
퍼플렉시티 PerplexityBothttps://www.perplexity.com/perplexitybot.json
퍼플렉시티 Perplexity-Userhttps://www.perplexity.com/perplexity-user.json
Anthropic 봇 전체https://claude.com/crawling/bots.json
구글 common crawlershttps://developers.google.com/static/crawling/ipranges/common-crawlers.json
구글 special-case crawlershttps://developers.google.com/static/crawling/ipranges/special-crawlers.json
구글 user-triggered fetchershttps://developers.google.com/static/crawling/ipranges/user-triggered-fetchers.json

직접 돌려 보면서 걸린 자리를 두 개 남길게요.

하나, 퍼플렉시티 주소는 리다이렉트돼요. www.perplexity.com 으로 요청하면 302가 돌아오고 www.perplexity.ai 로 넘어가요. curl-L 을 빼면 JSON 대신 302 안내 페이지만 받고 "개수 0"으로 오판하게 돼요.

둘, 파일이 갱신되는 주기가 벤더마다 크게 달라요. 같은 날 조회했는데 creationTime 이 OpenAI GPTBot은 2025년 10월 30일, OAI-AdsBot은 2026년 5월 12일, ChatGPT-User는 조회 전날인 2026년 8월 10일이었어요. 퍼플렉시티의 PerplexityBot 쪽은 2025년 2월 7일이었고요. 구글의 세 파일은 모두 조회 전날 갱신돼 있었어요. 대역 목록을 방화벽 규칙에 넣어 뒀다면 정기적으로 다시 받아야 한다는 뜻이에요.

어두운 배경 앞 회색 콘크리트 선반 위에 놋쇠 통이 나란히 놓여 있고, 어떤 통에는 검은 알갱이가 담겨 있고 어떤 통은 비어 있는 모습

(a) 로그를 볼 수 있다면 이렇게 세요

접근 로그가 있다면 순서는 단순해요.

  1. 로그에서 봇 이름 조각을 걸러요. 버전 번호는 빼고 이름까지만 걸어요.
  2. 나온 줄에서 요청 IP를 뽑아 개수를 세요.
  3. 그 IP가 벤더 공개 목록에 들어 있는지 대조해요.
  4. 어느 URL을 읽었는지 봐요. 대문만 훑고 갔는지, 개별 글까지 들어왔는지가 갈려요.

1번과 2번은 이렇게 할 수 있어요.

grep -aiE 'GPTBot|OAI-SearchBot|ChatGPT-User|OAI-AdsBot|PerplexityBot|Perplexity-User|ClaudeBot|Claude-User|Claude-SearchBot' access.log | cut -d' ' -f1 | sort | uniq -c | sort -rn

여기서 놓치기 쉬운 자리가 하나 있어요. OpenAI 문서는 robots.txt 파일을 가져갈 때 User-Agent에 표식을 하나 더 붙일 수 있다고 적어요. 예시는 ...OAI-SearchBot/1.4; robots.txt; +https://openai.com/searchbot 이에요. 문서가 밝힌 이유는 "로그에 경로가 남지 않는 사이트에서도 robots.txt 요청과 다른 요청을 구분할 수 있게 하려는 것"이에요. 그러니까 봇 방문 건수를 셀 때 이 표식이 붙은 줄이 섞여 있으면 본문을 읽은 방문이 아니라 규칙 파일을 확인하러 온 방문이에요. 둘을 같이 세면 숫자가 부풀어요.

반영 시차도 알아 두면 좋아요. OpenAI 문서는 검색 결과에 대해 "사이트의 robots.txt 업데이트가 시스템에 반영되기까지 약 24시간이 걸릴 수 있다"고 적고, 퍼플렉시티 문서도 "변경 사항이 반영되기까지 최대 24시간이 걸릴 수 있다"고 적어요. 파일을 고친 직후 로그를 보고 판단하면 이른 판단이 돼요.

(b) 로그가 없으면 리퍼러만 남아요

티스토리나 네이버 블로그처럼 서버 접근 로그를 열어 볼 수 없는 곳이라면, 잴 수 있는 것은 답변을 보고 눌러 들어온 사람뿐이에요. 유입 경로 통계에서 아래 도메인을 찾아보세요.

서비스리퍼러에서 볼 도메인
챗GPTchatgpt.com
퍼플렉시티perplexity.ai, www.perplexity.ai
클로드claude.ai
제미나이gemini.google.com

여기서 반드시 갈라 둘 것이 있어요. 리퍼러가 잡혔다는 것은 "AI가 내 글을 읽었다"의 증거가 아니라 "답변에 링크가 실렸고 누군가 그걸 눌렀다"의 증거예요. 인용은 됐는데 아무도 안 눌렀다면 리퍼러는 0이에요. 반대로 봇 로그가 잔뜩 쌓였어도 답변에 한 번도 인용되지 않았을 수 있고요. 두 기록은 같은 것을 재지 않아요.

그래서 (b) 층에 있는 분이 "인용 여부"를 직접 확인하고 싶다면, 남는 방법은 실제로 질의를 던져 답변에 내 도메인이 나오는지 보는 수동 확인이에요. 표본이 작다는 한계는 그대로 남지만, 적어도 그 한계를 알고 쓰는 것과 모르고 쓰는 것은 달라요. 질의를 정해 두고 주기적으로 같은 문장으로 물어 기록을 쌓는 방식은 브랜드 언급 모니터링 자동화에서 다룬 얼개와 같아요.

(c) GA4만 있다면 봇은 보이지 않아요

이 자리가 가장 많이 오해돼요. 구글 애널리틱스 도움말은 이렇게 적어요.

Google 애널리틱스 속성에서 알려진 봇 및 스파이더의 트래픽은 자동으로 제외됩니다. 이렇게 하면 애널리틱스 데이터에 알려진 봇의 이벤트가 포함되지 않습니다. 현재는 알려진 봇 트래픽 제외를 사용 중지하거나 알려진 봇 트래픽이 얼마나 제외되었는지 확인하는 것이 불가능합니다.

두 문장이 각각 다른 것을 막아요. 앞 문장은 봇이 데이터에 안 들어온다는 것이고, 뒷 문장은 그 제외를 끌 수도 없고 얼마나 제외됐는지 볼 수도 없다는 것이에요. 그러니 GA4 보고서에서 "AI 크롤러 방문 수"를 찾는 시도는 설정을 아무리 뒤져도 답이 안 나와요.

구조적으로도 그래요. GA4는 페이지에서 측정 스크립트가 실행돼야 이벤트가 쌓이는 방식이라, HTML만 받아 가는 크롤러는 애초에 이벤트를 만들지 않아요. 도움말의 제외 정책과 측정 방식이 같은 방향을 가리키고 있는 셈이에요.

정리하면 GA4에서 보이는 AI 관련 숫자는 전부 사람 클릭이에요. 획득 보고서의 리퍼러에서 chatgpt.com 이 보인다면 그건 봇이 아니라 챗GPT 답변을 읽고 링크를 누른 사람이에요. 이걸 "AI가 내 글을 N번 읽었다"로 옮겨 적으면 틀린 문장이 돼요.

참고로 이 도움말 페이지 하단에는 "이 페이지에는 AI 기술을 사용하여 번역된 콘텐츠가 포함되어 있을 수 있으며, AI 번역에는 오류가 있을 수도 있습니다"라는 고지가 붙어 있어요. 위 인용은 한국어판 문언 그대로예요.

흰 천의 주름이 가운데로 모여 있고 그 위에 붉은 테라코타 조각이 깨진 면을 서로 마주 보도록 놓여 있는 모습을 위에서 내려다본 사진

User-Agent만 믿으면 안 되는 이유

구글 문서는 크롤러 목록 바로 위에 경고를 하나 붙여 두었어요. Caution: The HTTP user agent string can be spoofed. 문자열은 헤더일 뿐이라 누구나 흉내 낼 수 있다는 뜻이에요. 실제로 자기 크롤러에 유명 봇 이름을 붙여 다니는 사례가 있고, 그런 요청을 그대로 세면 "AI가 우리 사이트를 열심히 읽고 있다"는 잘못된 결론이 나와요.

확인은 두 갈래예요.

하나, 공개 IP 목록과 대조하기. 위 표의 JSON을 받아 요청 IP가 그 대역에 들어가는지 보는 방법이에요. 퍼플렉시티 문서도 방화벽 설정 안내에서 User-Agent 일치와 IP 확인을 함께 쓰라고 권해요. 다만 한계가 있어요. 2026년 8월 11일 조회 기준으로 OpenAI, 퍼플렉시티, Anthropic의 JSON에는 ipv6Prefix 항목이 하나도 없었어요. 구글 파일에는 IPv4와 IPv6가 함께 들어 있고요. IPv6로 들어온 요청은 이 목록으로는 대조가 안 된다는 뜻이에요.

둘, 역방향 DNS 확인하기. 구글은 이 방법을 문서로 안내해요. 요청 IP를 역방향 조회해 도메인이 googlebot.com, google.com, googleusercontent.com 중 하나인지 보고, 나온 도메인을 다시 정방향 조회해 원래 IP와 같은지 확인하는 두 단계예요. 구글 문서가 든 예시 형태는 crawl-***-***-***-***.googlebot.comgeo-crawl-***-***-***-***.geo.googlebot.com 이에요.

Anthropic 문서에는 반대 방향의 주의가 하나 더 있어요. IP 차단으로 옵트아웃을 대신하지 말라는 문장이에요. 이유는 IP를 막으면 robots.txt 파일 자체를 읽지 못하게 되기 때문이라고 적어요. 재는 용도의 IP 대조와 막는 용도의 IP 차단은 다른 이야기라는 점을 갈라 두는 편이 좋아요.

구글만 로그에서 유독 안 보이는 이유

"챗GPT랑 퍼플렉시티는 로그에 찍히는데 구글 AI만 안 보인다"는 이야기가 자주 나와요. 원인이 있어요. 구글 공식 문서가 이렇게 적어요.

Google-Extended doesn't have a separate HTTP request user agent string. Crawling is done with existing Google user agent strings; the robots.txt user-agent token is used in a control capacity.

Google-Extended는 별도의 HTTP User-Agent 문자열이 없어요. 크롤은 기존 구글 User-Agent로 이뤄지고, robots.txt의 토큰은 제어 용도로만 쓰여요. 그러니 로그에서 이 이름을 찾아 0건이 나오는 것은 정상이고, 그 0건은 "구글이 안 왔다"는 뜻이 전혀 아니에요.

바꿔 말하면 로그에서 갈라 볼 수 있는 것은 Googlebot 계열까지고, 그 방문이 검색 색인용인지 제미나이 학습이나 그라운딩용인지는 로그만으로 구분되지 않아요. 구글 문서가 적은 Google-Extended의 효력 범위도 학습과 그라운딩이고, 같은 문서가 이 토큰은 구글 검색 포함 여부에 영향을 주지 않으며 순위 신호로도 쓰이지 않는다고 밝혀요.

검색 결과 화면 쪽에서 AI 답변이 어떻게 붙고 어떻게 걷히는지는 구글 AI 개요와 웹 필터 쪽에 정리해 두었어요. 이 글이 서버 쪽 기록을 본다면 그 글은 화면 쪽을 봐요.

재기 전에 확인할 여섯 문항

  1. 나는 (a) 로그, (b) 리퍼러, (c) GA4 중 어느 층에 있나요?
  2. 지금 재려는 것이 "읽혔는가"인가요, "인용됐는가"인가요? 두 기록은 다른 것을 재요.
  3. 로그 검색 규칙에 버전 번호를 박아 두지 않았나요? GPTBot 까지만 걸어야 해요.
  4. 봇 방문 건수에 robots.txt 표식이 붙은 줄이 섞여 있지 않나요? 그건 본문을 읽은 방문이 아니에요.
  5. User-Agent 일치만 세고 있지 않나요? 요청 IP를 공개 목록과 대조했나요? IPv6 요청이라면 이 방법이 안 통할 수 있어요.
  6. 로그에서 Google-Extended 를 찾아 0건이 나왔다고 "구글은 안 온다"로 적지 않았나요? 그 이름은 애초에 찍히지 않아요.

이 글에서 확인하지 못한 것

솔직하게 남길게요.

첫째, 각 AI 서비스의 답변 링크가 어떤 리퍼러를 실제로 붙여 보내는지는 직접 측정하지 않았어요. 위 표의 도메인은 각 서비스의 웹 주소이고, 실제 클릭에서 리퍼러 헤더가 어떤 값으로 남는지는 서비스마다 정책이 다를 수 있어요. 이 글은 "그 도메인을 찾아보라"까지만 적고, "반드시 그 값으로 남는다"고는 적지 않았어요.

둘째, Anthropic 봇의 완전한 User-Agent 문자열이에요. 위에 적은 대로 공식 지원문서에서는 찾지 못했어요. 다른 경로에 공개돼 있을 가능성까지 부정하지는 않아요.

셋째, 벤더가 공개한 IP 목록이 실제 크롤 트래픽을 얼마나 덮는지예요. 자체 로그로 교차 검증하지 않았어요.

정리

  • 확인 방법은 접근 가능한 기록에 따라 셋으로 갈려요. (a) 로그면 User-Agent와 IP 대조, (b) 로그 없음이면 리퍼러, (c) GA4만 있으면 봇은 보이지 않아요.
  • 봇 로그와 리퍼러는 다른 것을 재요. 앞은 읽혔는지, 뒤는 인용된 답변을 누가 눌렀는지예요.
  • GA4 도움말은 알려진 봇을 자동 제외하며 그 제외를 끄거나 규모를 확인하는 것이 불가능하다고 적어요.
  • 사용자 발단 페처를 robots.txt 예외로 두는 것은 퍼플렉시티만이 아니에요. OpenAI와 구글도 같은 취지의 문장을 적어요. 반대로 Anthropic 문서에는 그 예외가 없어요.
  • Google-Extended는 별도 User-Agent가 없어요. 로그에서 0건이 나오는 것은 정상이고 부재의 증거가 아니에요.
  • User-Agent는 위조될 수 있다고 구글 문서가 직접 경고해요. IP 대조나 역방향 DNS 확인을 함께 쓰세요. 다만 IPv6 요청은 세 벤더의 현재 JSON으로는 대조되지 않아요.
  • 프리픽스 개수는 낡아요. 숫자를 옮겨 적기보다 curl 한 줄로 직접 세는 절차를 남겨 두세요.

읽혔는지와 인용됐는지를 갈라 두면, 지금 내 손에 있는 기록으로 무엇까지 말할 수 있는지가 분명해져요. 재지 못하는 것을 재려고 설정을 뒤지는 시간이 가장 크게 줄어요.

확인한 자료: OpenAI 「Overview of OpenAI Crawlers」(developers.openai.com/api/docs/bots) 및 gptbot.json, searchbot.json, chatgpt-user.json, adsbot.json. 퍼플렉시티 「Bots」(docs.perplexity.ai/guides/bots) 및 perplexitybot.json, perplexity-user.json. Anthropic 「Does Anthropic crawl data from the web, and how can site owners block the crawler?」(support.claude.com, 문서 상단 표기 2026년 4월 7일) 및 claude.com/crawling/bots.json. 구글 「List of Google's common crawlers」(문서 하단 최종 갱신 2026년 7월 14일)와 「Verify requests from Google crawlers and fetchers」, common-crawlers.json, special-crawlers.json, user-triggered-fetchers.json. 구글 애널리틱스 도움말 「알려진 봇 트래픽 제외」. 전부 2026년 8월 11일에 직접 조회했어요.

❓ 자주 묻는 질문 (FAQ)

AI 검색에 내 사이트가 인용되는지 어떻게 확인하나요?

무엇을 재려는지부터 갈라야 해요. '읽혔는가'는 서버 접근 로그에서 봇의 User-Agent 문자열을 찾아 확인하고, '인용돼서 사람이 넘어왔는가'는 리퍼러에서 chatgpt.com이나 perplexity.ai 같은 도메인을 찾아 확인해요. 두 기록은 서로 다른 것을 재요. 봇이 왔다는 기록은 읽었다는 증거일 뿐 답변에 인용됐다는 증거가 아니고, 리퍼러는 답변에 링크가 실려 누군가 눌렀다는 증거일 뿐 봇이 언제 읽었는지는 말해 주지 않아요. 서버 로그에 접근할 수 없는 플랫폼이라면 리퍼러 쪽만 가능해요.

구글 애널리틱스(GA4)로 AI 크롤러 방문을 볼 수 있나요?

볼 수 없어요. 구글 애널리틱스 도움말은 '알려진 봇 및 스파이더의 트래픽은 자동으로 제외됩니다'라고 적고, 이어서 '현재는 알려진 봇 트래픽 제외를 사용 중지하거나 알려진 봇 트래픽이 얼마나 제외되었는지 확인하는 것이 불가능합니다'라고 적어요. 즉 제외 여부를 끌 수도 없고 얼마나 제외됐는지 볼 수도 없어요. 구조적으로도 GA4는 페이지에서 측정 스크립트가 실행돼야 이벤트가 쌓여요. 그래서 GA4에서 보이는 것은 봇 방문이 아니라 chatgpt.com이나 perplexity.ai에서 넘어온 사람의 리퍼러예요. 이 둘을 섞으면 글 전체가 틀려요.

OAI-SearchBot과 GPTBot은 뭐가 다른가요?

OpenAI 문서 기준으로 용도가 달라요. OAI-SearchBot은 챗GPT의 검색 기능에서 사이트를 결과로 띄우는 데 쓰이고, 문서는 'OAI-SearchBot을 옵트아웃한 사이트는 챗GPT 검색 답변에 표시되지 않지만 내비게이션 링크로는 여전히 나타날 수 있다'고 적어요. GPTBot은 생성형 AI 파운데이션 모델 학습에 쓰일 수 있는 콘텐츠를 크롤하는 쪽이고, 문서는 'GPTBot을 disallow하면 그 사이트 콘텐츠를 학습에 쓰지 말라는 표시가 된다'고 적어요. 둘은 독립 설정이라 하나를 허용하고 하나를 막을 수 있어요. 다만 문서는 두 봇을 모두 허용한 사이트에 대해서는 한 번의 크롤 결과를 두 용도에 쓸 수 있다고도 적어요.

Perplexity-User는 robots.txt를 지키나요?

퍼플렉시티 공식 문서는 지키지 않을 수 있다고 스스로 적어요. Perplexity-User 설명 끝에 'Since a user requested the fetch, this fetcher generally ignores robots.txt rules'라는 문장이 있어요. 사용자가 요청한 가져오기이므로 이 페처는 대체로 robots.txt 규칙을 무시한다는 뜻이에요. 다만 같은 성격의 예외는 퍼플렉시티만의 것이 아니에요. OpenAI 문서도 ChatGPT-User에 대해 'Because these actions are initiated by a user, robots.txt rules may not apply'라고 적고, 구글도 사용자 발단 페처에 대해 'these fetchers ignore robots.txt rules'라고 적어요. 구글의 사용자 발단 페처 목록 문서 쪽에는 같은 문장이 'these fetchers generally ignore robots.txt rules'로 적혀 있어요. 반면 Anthropic 지원문서에는 사용자 발단 봇을 예외로 두는 문장이 없었어요.

로그에서 Google-Extended를 찾았는데 한 건도 안 나와요.

정상이에요. 구글 공식 문서가 'Google-Extended doesn't have a separate HTTP request user agent string'이라고 적어요. 크롤은 기존 구글 User-Agent 문자열로 이뤄지고 robots.txt의 토큰은 제어 용도로만 쓰인다는 설명이에요. 그러니까 로그에서 이 문자열을 찾아 0건이 나온 것은 '구글이 안 왔다'는 뜻이 아니라 '이 이름으로는 애초에 찍히지 않는다'는 뜻이에요. 로그에서 갈라 볼 수 있는 것은 Googlebot 계열까지이고, 그 방문이 검색 색인용인지 AI 학습이나 그라운딩용인지는 로그만으로 구분되지 않아요.

User-Agent 문자열만 보고 판단해도 되나요?

안 돼요. 구글 문서는 크롤러 목록 바로 위에 'The HTTP user agent string can be spoofed'라는 경고를 붙여 두었어요. 문자열은 누구나 흉내 낼 수 있으니 요청 IP를 벤더가 공개한 목록과 대조하거나, 구글의 경우 역방향 DNS 조회로 확인하는 절차가 필요해요. 구글 문서가 안내하는 방법은 요청 IP를 역방향 조회해 googlebot.com, google.com, googleusercontent.com 중 하나인지 보고, 나온 도메인을 다시 정방향 조회해 원래 IP와 같은지 확인하는 두 단계예요. 다만 벤더가 공개한 IP 목록으로 대조하는 방법은 IPv6로 들어온 요청에는 쓸 수 없는 경우가 있어요. 2026년 8월 11일 조회 기준으로 OpenAI, 퍼플렉시티, Anthropic의 JSON에는 ipv6Prefix 항목이 하나도 없었어요.

공개된 IP 대역 개수는 어디서 확인하나요?

각 벤더가 JSON 파일로 공개해요. 다만 개수는 수시로 바뀌므로 글에 적힌 숫자를 그대로 믿기보다 직접 세는 편이 정확해요. 터미널에서 curl 로 해당 JSON 주소를 받아 ipv4Prefix 라는 문자열이 몇 번 나오는지 세면 대역 개수가 나오고, jq 가 설치돼 있다면 creationTime 값을 뽑아 그 파일이 마지막으로 만들어진 시각까지 볼 수 있어요. 본문에 실행할 수 있는 한 줄을 그대로 적어 두었어요. 한 가지 주의할 점은 퍼플렉시티 주소가 www.perplexity.com 에서 www.perplexity.ai 로 리다이렉트된다는 거예요. curl 에 리다이렉트를 따라가는 옵션을 빼면 302 응답만 받고 끝나서 개수를 0으로 오판하게 돼요.

티스토리나 네이버 블로그에서도 확인할 수 있나요?

서버 접근 로그를 볼 수 없는 플랫폼이라면 리퍼러 쪽만 가능해요. 즉 '누가 답변을 보고 눌러 들어왔는가'는 유입 경로 통계에서 chatgpt.com, perplexity.ai, claude.ai 같은 도메인을 찾아 확인할 수 있지만, '봇이 언제 몇 번 읽어 갔는가'는 볼 수 없어요. 이건 설정 문제가 아니라 기록에 접근할 수 없는 구조라서 그래요. 자체 도메인에 직접 올린 사이트이거나 클라우드플레어 같은 앞단을 두고 있다면 그 로그에서 봇 방문을 볼 수 있어요.

📚 함께 읽으면 좋은 글 (Related Posts)

AI 사용법 가이드 더 보기 →
챗GPT 광고 설정 — 개인화를 꺼도 광고는 남고, 지운 광고 데이터는 30일 남는다
chatgpt-guide2026-08-18

챗GPT 광고 설정 — 개인화를 꺼도 광고는 남고, 지운 광고 데이터는 30일 남는다

챗GPT 광고 설정 화면에서 문서가 Ads controls 항목으로 열거하는 것은 네 줄이고, 광고를 없애는 플랜 전환은 같은 화면의 다섯 번째 줄이에요. 개인화를 꺼도 광고는 그대로 남고, 광고를 없애는 항목은 메시지 한도를 깎고, 지운 광고 데이터는 서버에서 빠지는 데 최대 30일이 걸려요. OpenAI 헬프센터 원문 문장으로 경계를 갈라 정리했어요.