llms.txt vs robots.txt vs ai.txt: 개발자를 위한 치트 시트

발행: (2026년 5월 23일 PM 09:40 GMT+9)
9 분 소요
원문: Dev.to

Source: Dev.to

llms.txt vs robots.txt vs ai.txt: 개발자를 위한 치트 시트

지난 18개월 동안 공개 사이트를 구축한 모든 Next.js 개발자는 같은 벽에 부딪혔습니다. “AI 크롤러가 무엇을 읽는지 제어하는 방법”을 구글에 검색하면 로봇.txt, llms.txt, ai.txt라는 세 가지 파일을 가리키는 서로 다른 답변이 나옵니다. 이 파일들은 같은 것이 아니며, 대상도 다르고, 잘못된 파일을 사용하거나 파일을 전혀 두지 않으면 AI 검색 엔진이 여러분의 콘텐츠를 전혀 무시하거나 원하지 않는 페이지를 색인하게 됩니다.
이것은 제가 이 문제를 파악하면서 꼭 있었으면 좋겠다고 생각한 원스톱 정리입니다.

robots.txtllms.txtai.txt
제안자Martijn Koster (1994)Anthropic + 커뮤니티AI-txt.com 이니셔티브
주 대상웹 크롤러(Googlebot, Bingbot 등)LLM 훈련 및 AI 검색 크롤러AI 어시스턴트(ChatGPT, Claude, Gemini)
포맷키-값 지시문Markdown / 구조화 텍스트키-값 + JSON 블록
스펙 상태RFC 표준, 보편적 지원신흥, 채택 증가초기 제안, 제한적 채택
시행 주체주요 검색 엔진 전부Anthropic, Perplexity 등 일부아직 주요 시행 주체 없음
위치yourdomain.com/robots.txtyourdomain.com/llms.txtyourdomain.com/ai.txt

짧은 사고 모델: robots.txt는 Googlebot을 위한 것이고, llms.txt는 ClaudeBot·GPTBot이 지식을 구축할 때(단순 색인이 아니라) 사용됩니다. ai.txt는 AI 어시스턴트가 실시간으로 여러분의 사이트를 읽는 것을 다루려는 최신 제안입니다. 전체 커버리지를 원한다면 세 파일을 모두 사용하세요—하지만 오늘날 90% 가치를 얻으려면 robots.txtllms.txt만으로 충분합니다.

robots.txt는 1994년부터 존재해 왔습니다. 인터넷에 있는 모든 크롤러—Googlebot, Bingbot, DuckDuckBot, GPTBot, ClaudeBot, PerplexityBot—가 크롤링하기 전에 이를 확인합니다. robots.txt에 GPTBot을 차단하면 해당 봇은 훈련 데이터 수집이나 AI‑검색 색인을 위해 여러분의 사이트를 크롤링하지 못합니다.

기본 문법

User-agent: *
Disallow: /admin/
Disallow: /private/

User-agent: GPTBot
Disallow: /

User-agent: ClaudeBot
Allow: /blog/
Disallow: /

User-agent: *는 모든 크롤러에 적용됩니다. 특정 봇 이름이 *를 덮어쓰며, AllowDisallow는 경로 기반 규칙입니다—원래 사양에서는 와일드카드가 없지만 대부분의 최신 크롤러는 이를 지원합니다.

Next.js App Router에서 동적 생성

// app/robots.ts
import { MetadataRoute } from 'next'

export default function robots(): MetadataRoute.Robots {
  return {
    rules: [
      {
        userAgent: '*',
        allow: '/',
        disallow: ['/admin/', '/api/private/'],
      },
      {
        userAgent: 'GPTBot',
        allow: ['/blog/', '/services/'],
        disallow: ['/'],
      },
    ],
    sitemap: 'https://yourdomain.com/sitemap.xml',
  }
}

Next.js는 /robots.txt 경로에서 text/plain 형태로 자동 렌더링합니다. 별도의 파일이 필요 없습니다.

robots.txt가 하지 못하는 것: 다른 출처(백링크, 사이트맵)에서 이미 알고 있는 페이지를 읽는 것을 막지는 못합니다. 단지 해당 경로에 대한 활동적인 크롤링만 차단합니다. 예를 들어 GPTBot이 공개 페이지에서 /admin/ 페이지를 발견하면 이미 캐시해 두었을 수 있습니다.


llms.txt

llms.txt는 Answer.AI가 제안했고, Anthropic, Perplexity 등에서 LLM에게 사이트가 실제로 어떤 내용인지—단순히 크롤링 가능한지 여부가 아니라—전달하기 위한 구조화된 방식으로 채택되었습니다.
robots.txt가 접근 제어라면, llms.txt는 문서화 역할을 합니다. 즉, 언어 모델을 위한 사이트 README라고 생각하면 됩니다.

기본 구조

# YourSite

> 이 사이트가 무엇이며, 누구를 위한 것인지 한 줄 요약.

몇 문장의 컨텍스트. 사이트는 어떤 일을 하나? 저자는 누구인가?
LLM이 이 도메인에서 페이지를 인용하기 전에 무엇을 이해해야 할까?

## Blog

- [Post title one](https://yourdomain.com/blog/post-one): 한 줄 요약.
- [Post title two](https://yourdomain.com/blog/post-two): 한 줄 요약.

## Services

- [Service name](https://yourdomain.com/services/name): 한 줄 요약.

## Contact

- Author: Your Name
- Email: you@yourdomain.com
- LinkedIn: linkedin.com/in/yourhandle

포맷은 의도적으로 순수 Markdown으로만 구성했습니다. 특별한 파서가 필요 없으며, 어떤 LLM이든 읽을 수 있습니다. /llms.txt 경로가 관례이며, 일부 사이트는 더 깊은 내용을 제공하기 위해 /llms-full.txt를 함께 제공합니다.

Next.js에서 동적 생성

// app/llms.txt/route.ts
import { blogPosts } from '@/data/blog-posts'

export async function GET() {
  const lines = [
    '# YourSite',
    '',
    '> AI-search-ready Next.js development and SEO consulting.',
    '',
    'This site covers AI engineering, GEO/AEO, and production Next.js patterns.',
    '',
    '## Blog',
    '',
    ...blogPosts.map(p => `- [${p.title}](https://yourdomain.com/blog/${p.slug}): ${p.excerpt}`),
    '',
    '## Services',
    '',
    '- [AI-Search Consulting](https://yourdomain.com/services): End-to-end GEO and AEO for Next.js sites.',
  ]

  return new Response(lines.join('\n'), {
    headers: { 'Content-Type': 'text/plain; charset=utf-8' },
  })
}

이렇게 하면 실제 콘텐츠와 llms.txt가 자동으로 동기화되어 수동 업데이트가 필요 없습니다.

현재 llms.txt를 읽는 주체: ClaudeBot(Anthropic 크롤러), PerplexityBot, 일부 GPTBot 버전 등. 채택이 빠르게 늘고 있습니다. AI 검색 엔진이 여러분의 콘텐츠를 정확히 인용하도록 하려면 이 파일은 필수입니다.


ai.txt

ai.txt는 다른 작업 그룹에서 제안한 최신 사양입니다. llms.txt가 LLM에게 사이트에 대한 정보를 제공한다면, ai.txt는 AI 어시스턴트가 여러분의 콘텐츠를 응답에 활용하는 것을 허용하거나 거부하는 권한을 정의합니다.

기본 문법

# ai.txt
Version: 1.0

[permissions]
allow: true
commercial-use: false
training: false
real-time-access: true

[attribution]
require: true
format: "Source: {title} ({url})"

[contact]
email: you@yourdomain.com

솔직한 평가: 현재 ai.txt를 읽는 주요 AI 기업은 거의 없습니다. 사양은 아직 진화 중이며, 시행 주체가 제한적입니다. 하지만 로봇.txt가 비공식 관례에서 사실상의 표준이 된 것처럼, ai.txt가 널리 채택될 경우 초기 도입은 비용이 들지 않으며 의도를 명확히 전달할 수 있습니다.

대부분 개발자에게 권장하는 접근법: 파일을 추가하고, 간단히 유지하며, 10분 이상 투자하지 말 것.

현대 AI 크롤러(GPTBot, ClaudeBot 등)의 흐름

  1. `robots
0 조회
Back to Blog

관련 글

더 보기 »

내 스킬

프로젝트를 위한 AI 지시문을 만들고, 설치하고, 관리하세요 — 코딩이 필요 없습니다. CREATE 이름을 정하고, 카테고리를 선택하고, 원하는 것을 설명하세요 — 마법사가 자동으로 구성합니다.