llms.txt 생성기
LLM 크롤러에게 사이트 구조를 알리는 llms.txt를 양식으로 생성. llmstxt.org 사양 준수, sitemap.xml 일괄 가져오기.
섹션 (H2)
sitemap.xml에서 일괄 가져오기
※ <loc> 만 추출. 제목은 URL 끝에서 추측
llms.txt
⬇ llms.txt루트에 배치: https://example.com/llms.txt
📖 자주 걸리는 지점
llmstxt.org 가 제창하는 형식에 맞춰 사이트의 내용을 LLM 을 위한 Markdown 목차로 정리합니다. sitemap.xml 로부터의 일괄 취득에도 대응합니다. 이는 제안된 서식이지 W3C 나 IETF 의 표준이 아닙니다 — 놓았다고 해서 어느 크롤러가 읽을지는 아무도 보장하지 않습니다. 효과를 기대하고 만드는 것이라기보다 내 사이트의 내용을 한 장으로 설명할 수 있는 문서를 갖춰 두는 작업이라고 생각하는 편이 실태에 가깝습니다.
| 사례 | 무슨 일이 일어나는가 | 어떻게 하면 되는가 |
|---|---|---|
| sitemap 에서 가져왔더니 제목이 슬러그 그대로다 | sitemap.xml 에는 <loc> 즉 URL 밖에 들어 있지 않으므로 제목은 URL 의 마지막 구분에서 기계적으로 추측할 수밖에 없습니다. /tools/cidr/ 는 cidr 이 됩니다. 여기서 생기는 것이 본질적인 문제로 설명이 없고 URL 나열이 된 llms.txt 는 목차로서 거의 가치가 없습니다 — 읽는 쪽(사람이든 LLM 이든)이 어느 것을 보면 되는지를 판단할 수 없기 때문입니다. 그렇다면 sitemap.xml 을 그대로 건네는 것과 다르지 않습니다. |
각 줄에 그 페이지에서 무엇을 할 수 있는지를 한 문장으로 쓰세요 — [CIDR 계산](/tools/cidr/): 서브넷의 호스트 수와 주소 범위를 계산 처럼 제목만으로는 알 수 없는 정보를 더하는 것이 이 형식의 요점입니다. 그리고 모든 페이지를 실을 필요는 없습니다. 오히려 입구가 되는 20~50 개로 좁히는 편이 목차로서 기능합니다 — 1,000 줄짜리 목록은 읽는 쪽에게 전부 읽으라고 말하는 것과 같아 우선순위 정보가 0 이 되기 때문입니다. 실을 기준은 이것을 읽으면 사이트의 수비 범위를 알 수 있는가 입니다. |
| 놓았는데 읽히는 기색이 없다 | 먼저 효과가 보이지 않는 것은 보통입니다 — llms.txt 를 읽을지는 크롤러 쪽의 임의이고 읽었다는 것을 알리는 구조도 없습니다. 다만 그 전에 애초에 배포되지 않고 있는 경우가 꽤 있습니다. 흔한 것은 SPA 의 폴백으로 /llms.txt 에도 index.html 이 돌아오는 것, CDN 이 확장자 .txt 를 상정하지 않아 404 가 되는 것, Content-Type 이 application/octet-stream 이라 다운로드 취급되는 것 등입니다. 브라우저에서 열어 내용이 보인 것과 크롤러가 가져올 수 있는 것은 별개입니다. |
curl -I https://example.com/llms.txt 로 확인하세요 — 200 일 것, Content-Type 이 text/plain 이나 text/markdown 일 것, 이 두 가지입니다. curl -s ... | head -5 로 내용이 HTML 이 아닌지도 보세요(SPA 의 폴백은 여기서 한 번에 드러납니다). 아울러 robots.txt 로 루트 바로 아래를 넓게 차단하고 있지 않은지도 확인합니다. 브라우저에서는 캐시나 서비스 워커가 끼어들므로 판단은 반드시 curl 로 하세요. |
| robots.txt 의 대체가 된다고 생각한다 | llms.txt 는 접근 제어가 아닙니다. 읽어 주었으면 하는 것을 보여 주는 목록 이지 쓰지 않은 페이지가 차단되는 것도, 쓴 페이지의 학습 이용에 동의한 것이 되는 것도 아닙니다. 반대 방향의 오해도 흔합니다 — llms.txt 를 놓았으니 AI 가 읽게 되었다거나 놓지 않았으니 읽히지 않는다거나 하는 것은 어느 쪽도 성립하지 않습니다. 크롤러는 종래대로 robots.txt 와 실제 링크 구조를 보고 있습니다. |
AI 크롤러를 제어하고 싶다면 robots.txt 에 쓰세요 — User-agent: GPTBot / ClaudeBot / PerplexityBot / Google-Extended 같은 이름으로 개별 지정할 수 있습니다. 이 둘은 목적이 완전히 다르므로 양쪽을 두는 것이 올바른 구성입니다(크롤해도 되는 범위를 robots.txt 로, 그 안에서 무엇을 봐 주었으면 하는지를 llms.txt 로 보여 줍니다). 덧붙여 봇 이름은 계속 늘어나므로 쓴 시점의 목록은 반드시 낡습니다 — 정기적인 재검토를 전제로 하세요. |
llms.txt 와 llms-full.txt 는 별개입니다. 전자는 목차(URL 과 그 한 줄 설명), 후자는 각 페이지의 본문까지 포함한 전문판으로 규모에 따라서는 수 MB 가 됩니다. 먼저 만들어야 할 것은 전자이며 전문판은 정말로 읽히고 싶은 기술 문서가 있는 경우에 한해 검토하세요. 운용상 가장 현실적인 문제는 진부화입니다 — 손으로 쓴 목차는 반드시 썩고 링크가 끊긴 llms.txt 는 없느니만 못합니다(읽는 쪽에 잘못된 지도를 건네게 되므로). sitemap.xml 에서 생성하는 처리를 CI 에 넣고 설명문만 사람이 관리하는 형태로 해 두는 것이 유일하게 지속되는 운용입니다. 아울러 배포할 때마다 링크 끊김을 검사하세요 — 생성하고 있다고 해서 옳다고는 할 수 없고 통합이나 삭제를 한 페이지는 링크만 남습니다.
📖 사용법
-
1
사이트 메타 입력사이트명과 요약 필수
-
2
섹션 / 링크 추가H2 그룹 + [Title](URL): 설명
-
3
다운로드 후 루트 배치https://example.com/llms.txt 가 200 응답하면 인식
❓ 자주 묻는 질문
llms.txt 란?
llms-full.txt 와 차이?
robots.txt와 별개?
🐛 이 도구에서 문제가 발생했나요?
무료 · 가입 불필요. 재현 절차만이라도 도움이 됩니다. 보고는 운영자에게 직접 전달되어 개선에 사용됩니다.
보고 감사합니다!
운영자에게 전달되었습니다. 개선에 사용됩니다.