AI 답변 엔진(answer engines) — ChatGPT, Perplexity, Gemini, Claude — 이 실질적인 추천 채널(referral channel)이 되고 있습니다. 누군가 "두바이에서 AI 음성 에이전트를 만들어 줄 수 있는 곳이 어디인가요?"라고 물었을 때, 그 질문에 답하는 모델은 자신이 크롤링(crawl)한 정보 중에서 당신의 사이트가 무엇인지 결정해야 합니다.
llms.txt는 이를 쉽게 만들기 위해 등장하고 있는 규약(convention)입니다. 도메인의 루트(root)에 위치한 단일 마크다운(markdown) 파일로서, 언어 모델(language models)에게 당신의 사이트에 대한 깔끔하고 큐레이션된 지도 — 당신이 무엇을 하는지, 가장 중요한 페이지는 무엇인지, 그리고 왜 그 페이지들이 인용할 가치가 있는지 — 를 제공합니다. 크롤러(crawlers) 대신 독자를 위해 작성된 사이트맵(sitemap)이라고 생각하면 됩니다.
우리는 이번 주에 우리 스튜디오 사이트를 위한 것을 출시했습니다. 작동 예시와 전체 구현 방법은 다음과 같습니다.
라이브 예시: techpotions.com/llms.txt
좋은 llms.txt의 형태
스펙(spec)은 의도적으로 단순합니다: # H1 제목과 당신의 이름, > 인용구(blockquote) 요약, 그리고 한 줄 설명이 포함된 링크들의 마크다운(markdown) 섹션으로 구성됩니다. 우리의 파일은 네 가지 섹션으로 나뉩니다:
- Services (서비스) — 상업적 핵심 요소들, 각 한 줄로 작성
- Selected work (선정된 작업물) — 실제 고객 사례 연구 (AI 엔진이 인용할 수 있는 증거)
- Comparisons (비교) — 우리의 "X vs Y" 에버그린(evergreen) 페이지들로, 답변 엔진이 추출하기 딱 좋은 종류의 콘텐츠입니다.
- Company (회사) — 소개(about), 연락처(contact), 프로젝트 시작 방법
피해야 할 실수: 사이트맵 전체를 여기에 쏟아붓는 것입니다. 가치는 _큐레이션(curation)_에 있습니다. 4,000개의 URL이 아니라, 정직한 설명이 담긴 신호가 높은(high-signal) 페이지들이 중요합니다.
Next.js 구현
우리는 정적 파일 대신 App Router 라우트 핸들러(route handler)에서 이를 생성합니다. 그 이유는 단 하나입니다: 사이트와 내용이 결코 어긋나서는 안 되기 때문입니다. 이는 페이지 자체와 동일한 데이터 소스에서 구축됩니다. 서비스와 비교를 위한 정적 설정(static config), 그리고 게시된 포스트와 사례 연구를 위한 CMS (Payload)를 사용합니다. 새로운 사례 연구를 게시하면, 한 시간 이내에 자동으로 llms.txt에 나타납니다.
app/llms.txt/route.ts:
export const dynamic = 'force-static'
export const revalidate = 3600 // 크롤러 전용 라우트: 시간 단위의 ISR(Incremental Static Regeneration)이면 충분합니다
...
벤치마킹할 만한 몇 가지 결정 사항들:
force-static + 시간 단위 revalidate. 어떤 모델도 사이트에 대한 실시간 뷰를 필요로 하지 않으며, 이 방식은 CMS를 핫 패스(hot path)에서 완전히 제외합니다. 우리의 sitemap.ts와 동일한 캐싱 전략입니다.
- 사이트와 동일한 소스에서 생성. 수동으로 관리되는
llms.txt는 한 달 이내에 구식이 됩니다. 우리의 방식은 그럴 수 없습니다. 페이지를 렌더링하는 정확한 설정 객체(config objects)와 CMS 쿼리를 그대로 읽어오기 때문입니다.
- Fail open (오류 시에도 작동 유지). 빌드 중에 데이터베이스에 접속할 수 없는 경우에도,
catch 블록이 정적 섹션들을 여전히 방출합니다. 성능이 저하된 llms.txt가 500 에러를 내는 것보다 훨씬 낫습니다.
- 한 줄 요약, 잘라내기(truncated). 모델은 메타 설명(meta description) 전체를 필요로 하지 않습니다. 링크당 약 160자의 깔끔한 문자를 유지하면 파일 전체를 처음부터 끝까지 훑어보기(scannable) 좋습니다.
효과가 있을까요?
솔직한 답변을 드리자면, 아직 초기 단계이며 답변 엔진(answer-engine) 기업 외부의 누구도 현재 llms.txt의 인용 가중치(citation weight)를 말할 수 없습니다. 우리가 말할 수 있는 것은, 이 파일이 약 100줄의 코드로 구성되며, 모델이 당신을 어떻게 요약할지에 대한 추측을 없애주고, 이 컨벤션(convention)이 실제적인 추진력을 얻고 있다는 점입니다. 마케팅 사이트라면 이는 충분히 가치 있는 교환입니다.
저희는 소프트웨어 및 AI 스튜디오인 TechPotions입니다. 저희는 프로덕션 수준의 Next.js 앱과 AI 에이전트를 구축합니다 (저희의 작업물을 확인하세요). 구축을 고민 중이시라면, 저희의 비교 가이드가 좋은 시작점이 될 것입니다.