robots.txt와 WAF는 무엇이 다른가: AI 크롤러 제어를 두 층으로 나누는 법
robots.txt는 크롤러에게 접근 선호를 전달하는 규칙이고, WAF는 네트워크 요청 자체를 허용·차단·챌린지할 수 있는 보안 계층입니다. AI 크롤러 정책은 두 층이 서로 모순되지 않게 설계해야 합니다.
Disallow 한 줄과 WAF의 Block은 겉으로 비슷해 보여도 작동 위치가 완전히 다릅니다. GEO를 하면서 이 차이를 모르고 설정하면 “robots.txt는 허용인데 실제 봇은 403” 같은 상황이 생깁니다.
- robots.txt 준수는 크롤러 운영자의 선택에 의존합니다.
- WAF는 요청을 서버에 도달하기 전에 차단할 수 있습니다.
- 검색 인용을 원하면 Search 크롤러 접근과 콘텐츠 색인 가능성을 유지해야 합니다.
- 학습 크롤러 정책은 검색 크롤러 정책과 분리해서 결정할 수 있습니다.
robots.txt의 역할
Cloudflare 문서도 robots.txt를 크롤러에게 어떤 콘텐츠에 접근해도 되는지 선호를 전달하는 파일로 설명하면서, 준수 자체는 자발적이라고 명시합니다. 즉 robots.txt는 정책 표현에 가깝습니다.
WAF의 역할
WAF는 조건에 맞는 요청을 block, challenge 등으로 처리할 수 있습니다. IP, 경로, 요청 속도, verified bot 여부 같은 신호를 이용해 실제 트래픽을 제어합니다. 따라서 robots.txt보다 훨씬 강한 통제 수단입니다.
둘이 충돌하면 무엇이 우선인가
robots.txt에 Allow: /가 있어도 WAF에서 요청을 403으로 막으면 봇은 페이지를 읽을 수 없습니다. 반대로 WAF가 허용해도 robots.txt에서 협조적 크롤러에게 Disallow를 선언하면 해당 봇이 자발적으로 수집을 중단할 수 있습니다. 둘 다 확인해야 하는 이유입니다.
AI Search와 Training을 분리하는 예
# 개념 예시 — 실제 user-agent는 최신 공식 문서를 확인하세요
User-agent: OAI-SearchBot
Allow: /
User-agent: GPTBot
Disallow: /private-research/
검색 답변에 필요한 공개 콘텐츠는 허용하면서 별도 원본 리서치 경로의 학습 수집은 제한하는 식으로 목적별 정책을 만들 수 있습니다. 단, 실제 적용 전에 사용하는 플랫폼과 봇의 최신 문서를 확인해야 합니다.
검증 방법
https://도메인/robots.txt가 예상 내용으로 응답하는지 확인- WAF 이벤트 로그에서 검색봇 차단 여부 확인
- Cloudflare AI Crawl Control 등 제품 상태 확인
- Search Console에서 Googlebot 접근과 색인 상태 확인
- 정책 변경 후 실제 HTTP 상태코드와 유입 변화를 추적
자주 묻는 질문
robots.txt만으로 악성봇을 막을 수 있나요?
아닙니다. 준수하지 않는 봇도 있으므로 강제 차단이 필요하면 WAF나 애플리케이션 레벨 제어가 필요합니다.
WAF에서 AI 봇을 전부 막으면 GEO에 불리한가요?
검색·답변에 필요한 크롤러까지 차단하면 콘텐츠 발견과 인용 기회가 줄 수 있습니다. 목적별로 분리하는 편이 좋습니다.
llms.txt가 있으면 AI 검색에 더 잘 나오나요?
Google은 AI Overview/AI Mode 노출을 위해 별도의 AI 텍스트 파일이나 특수 마크업이 필요하지 않다고 안내합니다. 기본 SEO와 색인 가능성이 우선입니다.
공식 출처
이 글의 사실 확인에 사용한 1차 자료입니다. 정책과 제품 기능은 바뀔 수 있으므로 적용 전 최신 문서를 다시 확인하는 것이 좋습니다.
문의는 텔레그램으로 받습니다.