robots.txt와 llms.txt는 이름이 비슷해 보이지만 역할이 다르다. robots.txt는 크롤러에게 선호를 알리는 요청이고, llms.txt는 AI 도구가 중요한 콘텐츠를 쉽게 찾도록 돕는 Markdown 색인이다. 둘 다 나쁜 행위자를 기술적으로 막는 보안 장치는 아니다.
네 계층 비교
| 계층 | 실제 역할 | 강제 차단 가능 여부 |
|---|---|---|
| robots.txt | 크롤러에게 허용·비허용 선호 전달 | 아니오 |
| llms.txt | AI 도구용 콘텐츠 목차 제공 | 아니오 |
| AI crawler | 실제 요청을 보내는 봇 | 제어 대상 |
| bot protection | 인프라 레벨 차단·챌린지·rate limit | 예 |
Kinsta는 AI bot traffic이 1년 전 200 visits 중 1회 수준에서 현재 31 visits 중 1회 수준까지 늘었다고 보고했다. 이 규모에서는 “정중한 요청”과 “실제 차단”을 구분해야 한다.
robots.txt의 역할
robots.txt는 RFC 9309로 정리된 표준이며, OpenAI, Anthropic, Google, Perplexity 같은 주요 크롤러는 대체로 문서화된 user-agent와 지시어를 따른다. 중요한 점은 회사별 봇이 하나가 아니라는 것이다.
GPTBot: OpenAI 모델 학습용OAI-SearchBot: ChatGPT 검색·인용 색인용ClaudeBot: Anthropic 학습용Claude-SearchBot: Claude 검색 색인용Google-Extended: Google AI 학습·AI Overviews 관련 사용 제어PerplexityBot: Perplexity answer engine crawler
학습은 막고 AI 검색 인용은 허용하려면 training bot과 search bot을 다르게 다룬다.
User-agent: GPTBot
Disallow: /
User-agent: ClaudeBot
Disallow: /
User-agent: Google-Extended
Disallow: /
User-agent: OAI-SearchBot
Allow: /
User-agent: Claude-SearchBot
Allow: /llms.txt의 역할
llms.txt는 사이트 루트에 두는 Markdown 목차다. 중요한 문서, API 레퍼런스, 가격 페이지 등을 AI 도구가 빠르게 이해하도록 안내한다. Allow, Disallow, user-agent 같은 접근 제어 문법은 없다.
따라서 llms.txt는 스크래핑을 멈추지 못한다. 대신 Claude Code, Cursor 같은 코딩 에이전트나 문서 탐색 도구가 사이트 구조를 이해하는 데 유용하다. geo 관점에서는 “AI가 읽기 쉬운 대표 콘텐츠 경로”를 제공하는 도구에 가깝다.
실제 차단은 어디서 하나
악성·과도한 봇 트래픽을 막으려면 Cloudflare AI Crawl Control, Kinsta Bot Protection 같은 인프라 레이어가 필요하다. robots.txt와 llms.txt는 정책 신호이고, bot protection은 요청을 실제로 차단하거나 속도를 제한하는 실행 레이어다.
관련 문서
- geo — AI 검색 엔진에서 브랜드 가시성을 최적화하는 전략
- agent-friendly-websites — 에이전트가 읽기 쉬운 웹사이트 설계