Cloudflare가 AI 크롤러를 차단하나요? 확인과 해결 방법
robots.txt가 크롤러를 허용하더라도 Cloudflare 등의 방화벽은 AI 크롤러에 403, 429 또는 "Just a moment..." 확인 페이지로 응답하고 브라우저에는 실제 페이지를 보여줄 수 있습니다. 크롤러의 user agent로 페이지를 요청해 확인한 다음, AI Crawl Control이나 WAF 건너뛰기 규칙으로 AI 검색 크롤러를 허용하세요.
봇 차단 기능은 스크레이퍼와 악용을 막기 위해 존재하며, 그 일을 잘 해냅니다. 문제는 AI 검색 크롤러도 봇이라는 점입니다. 몇 년 전에 켜 둔 보안 설정, 요청 제한, 알 수 없는 user agent에 대한 넓은 규칙 때문에 나를 인용해 줄 크롤러가 모르는 사이에 막힐 수 있고, 내가 접속해 볼 때는 모든 것이 정상으로 보입니다.
이 글의 목차
방화벽은 왜 AI 크롤러를 차단하나요?
방화벽은 요청 하나하나를 판단합니다. 크롤러는 JavaScript 확인을 실행하지 않고, 브라우저처럼 쿠키를 유지하지 않으며, 연달아 많은 페이지를 요청하는 경우가 많아서 봇 차단 기능이 막으려는 트래픽과 똑같아 보일 수 있습니다. 흔한 원인은 다음과 같습니다.
- 알려진 봇 패턴과 일치하는 트래픽에 확인을 요구하는 봇 차단 기능. 예를 들어 Cloudflare의 Bot Fight Mode는 봇에게 연산 부담이 큰 확인을 요구합니다.
- "bot"이나 "crawler" 같은 단어가 들어간 user agent를 차단하거나 확인하게 하고, 소수의 검색 엔진만 허용하는 WAF 사용자 지정 규칙.
- AI 크롤러를 범주 전체로 차단하는 설정. Cloudflare에서는 Search, Agent, Training 크롤러별로 정책을 설정할 수 있고, 거기서 Block으로 설정하면 모두에 적용됩니다.
- 크롤러가 짧은 시간에 연속으로 보내는 요청에 429로 응답하는 요청 제한.
- 크롤러가 사용하는 네트워크를 우연히 포함하는 국가 또는 ASN 차단.
방화벽 차단과 robots.txt 차단은 어떻게 구분하나요?
robots.txt 차단은 정중한 요청입니다. 크롤러가 규칙을 읽고 페이지를 가져가지 않습니다. 방화벽 차단은 응답입니다. 크롤러가 페이지를 요청하면 다른 것을 받게 됩니다. 두 번째 경우는 직접 확인할 수 있습니다. 같은 페이지를 브라우저 user agent와 크롤러 user agent로 두 번 요청해 비교하세요.
for UA in "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36" \
"Mozilla/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"; do
curl -s -o /dev/null -w "%{http_code} %{size_download}\n" -A "$UA" https://example.com/page
done
방화벽 차단의 징후는 다음과 같습니다. 크롤러에게만 상태 코드 403, 429, 503이 나온다. 제목이 Just a moment...나 Attention Required! | Cloudflare인 페이지가 나온다. 본문에 /cdn-cgi/challenge-platform이 들어 있다. 브라우저보다 훨씬 짧은 200 응답이 나온다. 이 테스트는 크롤러의 검증된 IP 대역이 아니라 내 IP에서 나가므로, 방화벽이 user agent를 어떻게 다루는지는 보여주지만 실제 크롤러를 다루는 모든 세부 사항을 보여주지는 않는다는 점을 유념하세요.
Cloudflare에서 AI 검색 크롤러를 허용하려면?
모든 요금제에서 사용할 수 있는 Cloudflare의 AI Crawl Control은 내 도메인을 방문하는 AI 크롤러를 보여주고 크롤러별로 동작을 설정할 수 있게 합니다. 대시보드에서 AI Crawl Control을 열고 Crawlers 목록으로 가서 각 크롤러의 Action 열에서 Allow 또는 Block을 선택하세요. Cloudflare에 따르면 여기서 차단하면 내 영역(zone)에 WAF 사용자 지정 규칙이 생성되거나 업데이트됩니다.
크롤러를 막는 것이 WAF 사용자 지정 규칙, Super Bot Fight Mode, 요청 제한이라면, 검증된 봇과 해당 크롤러의 토큰에 대해 이 기능들을 건너뛰는 사용자 지정 규칙을 추가하세요.
Security → WAF → Custom rules → Create rule
Expression: (cf.client.bot) or (http.user_agent contains "OAI-SearchBot")
Action: Skip → All remaining custom rules, Super Bot Fight Mode, Rate limiting
Also: AI Crawl Control → OAI-SearchBot → Allow
이 규칙을 맨 앞에 두세요. user agent로 일치시키면 그 user agent를 위조하는 누구든 통과시킨다는 점에 유의하세요. 가능하면 검증된 봇 필드(cf.client.bot)나 벤더가 공개한 IP 대역을 우선하세요.
Bot Fight Mode는 어떻게 되나요?
Cloudflare 문서는 Bot Fight Mode를 WAF 사용자 지정 규칙이나 Page Rules로 우회하거나 건너뛸 수 없다고 분명히 밝힙니다. 크롤러에 확인을 요구하는 기능이 이것이라면 건너뛰기 규칙은 도움이 되지 않습니다. 선택지는 Bot Fight Mode를 끄거나, 해당 요금제에서 Super Bot Fight Mode를 사용하는 것입니다. Super Bot Fight Mode는 Ruleset Engine에서 동작하며 건너뛰기 규칙을 지원합니다.
어떤 크롤러를 허용해야 하나요?
크롤러를 하는 일에 따라 나누세요. 검색 및 사용자 요청 크롤러는 AI 답변이 나를 찾고 인용할 수 있는지를 좌우합니다. 학습 크롤러는 모델을 위한 데이터를 수집하며, 이를 차단하는 것은 정당한 선택이고 AI 검색에서 빠지지 않습니다.
- 검색:
OAI-SearchBot,Claude-SearchBot,PerplexityBot,Googlebot,bingbot,Applebot. - 사용자 요청:
ChatGPT-User,Claude-User,Perplexity-User. - 학습:
GPTBot,ClaudeBot,CCBot,meta-externalagent,Bytespider.
Cloudflare 자체의 정책 설정도 Search, Agent, Training이라는 같은 구분을 쓰므로, 앞의 둘은 허용하고 셋째는 따로 결정할 수 있습니다. 다른 방화벽이나 CDN을 쓰더라도 원칙은 같습니다. 크롤러의 토큰을 허용 목록에 올리되, 벤더가 공개한 IP 대역이나 제공되는 경우 역방향 DNS로 검증하여 브라우저와 같은 응답을 받도록 하세요.
AISeeWhy는 방화벽 차단을 어떻게 탐지하나요?
AISeeWhy는 14개 크롤러와 일반 브라우저로 페이지를 요청하여 상태, 크기, 리디렉션을 비교하고, 확인 페이지를 식별하며, 응답한 방화벽이나 CDN을 특정합니다. robots.txt는 크롤러를 허용하는데 서버가 차단한다면 보고서에 그 충돌이 표시되고, 해결을 위한 Cloudflare 규칙이나 허용 목록 단계가 안내됩니다.
자주 묻는 질문
Cloudflare는 기본적으로 AI 크롤러를 차단하나요?
계정, 요금제, 영역 설정에 따라 다르며 Cloudflare도 시간이 지나면서 이 옵션들을 바꿔 왔습니다. 짐작하지 말고 AI Crawl Control과 봇 설정을 확인하고, 크롤러의 user agent로 테스트하세요.
브라우저에서는 사이트가 잘 열리는데 크롤러에는 왜 안 되나요?
방화벽은 요청마다 판단합니다. 브라우저는 JavaScript 확인을 통과하고 쿠키를 유지하지만 크롤러는 그렇지 못하므로, 내게는 보이지 않는 확인 페이지나 403을 받을 수 있습니다.
WAF에서 AI 크롤러를 허용해도 안전한가요?
이름이 지정된 크롤러를 벤더의 IP 대역이나 Cloudflare의 검증된 봇 신호로 확인한다면 허용해도 위험이 낮습니다. user agent만 믿는 규칙은 그것을 복사한 누구든 들여보냅니다.
Cloudflare의 이메일 난독화 기능은 AI 크롤러에 영향을 주나요?
이메일 주소를 스크립트로만 해독되는 링크로 바꾸기 때문에, 크롤러에는 주소 대신 자리 표시자가 보입니다. 연락처 이메일을 읽을 수 있게 하려면 Scrape Shield에서 Email Address Obfuscation을 끄고 주소를 일반 텍스트로 표시하세요.
참고 자료
- Cloudflare: AI Crawl Control
- Cloudflare: AI 크롤러 관리 (AI Crawl Control)
- Cloudflare: Bot Fight Mode
- Cloudflare: AI 크롤러 및 에이전트 접근 정책
- OpenAI: OpenAI 크롤러 개요