AI에게 콘텐츠를 읽히는 데도 순서가 있을까요?
국내 소비자의 54.5%가 검색에 ChatGPT를 사용합니다(오픈서베이 검색 트렌드 리포트, 2026.01). 그런데 콘텐츠를 아무리 잘 써도 AI 크롤러가 그 페이지에 접근조차 못 하면, AI 입장에서 그 브랜드는 존재하지 않는 것과 같습니다. GEO(생성형 엔진 최적화)에서 콘텐츠 품질을 논하기 전에 먼저 통과해야 하는 것이 이 '기술 전제'입니다.
기술 전제는 세 층위로 나뉩니다. 아래 순서가 곧 우선순위입니다. 위 항목이 막혀 있으면 아래 항목은 아무 효과가 없습니다.
| 층위 | 무엇을 여는가 | 안 되면 생기는 일 |
|---|---|---|
| 1. robots.txt AI 봇 허용 | 크롤러의 접근 권한 | 봇이 페이지에 아예 들어오지 못함 |
| 2. 서버 렌더링(SSR·정적) | HTML 본문 자체 | 들어와도 빈 페이지로 읽힘 |
| 3. llms.txt·schema.org | 이해를 돕는 보조 신호 | 읽히긴 하나 해석이 약해짐 |
많은 가이드가 3번(llms.txt)부터 이야기하지만, 실제 노출을 좌우하는 것은 1번과 2번입니다. 이 글은 세 층위를 순서대로, 실제 설정 예시와 함께 정리합니다.
robots.txt에서 어떤 AI 봇을 허용해야 하나요?
robots.txt는 사이트 루트(내도메인/robots.txt)에 두는 텍스트 파일로, 봇마다 어느 경로를 크롤링할 수 있는지 지정합니다. AI 노출의 첫 관문이 여기입니다. 문제는 과거에 'AI 학습 거부' 목적으로 봇을 막아둔 채 잊어버려, 검색 노출까지 함께 닫혀 있는 사이트가 많다는 점입니다.
먼저 주요 AI 봇과 용도를 정리하면 다음과 같습니다.
| 봇 이름 | 운영 주체 | 용도 |
|---|---|---|
| GPTBot | OpenAI | 모델 학습용 데이터 수집 |
| OAI-SearchBot | OpenAI | ChatGPT 검색 색인 |
| ChatGPT-User | OpenAI | 사용자가 요청한 실시간 열람 |
| PerplexityBot | Perplexity | 검색 색인 |
| Google-Extended | Gemini 등 AI 학습·그라운딩 이용 제어 | |
| ClaudeBot | Anthropic | 데이터 수집 |
| CCBot | Common Crawl | 공개 크롤 데이터셋(다수 모델의 학습 원천) |
| Yeti | Naver | 네이버 검색·AI 브리핑 색인 |
핵심 규칙이 하나 있습니다. 크롤러는 자기 이름의 규칙 그룹만 따르고 User-agent: * 규칙은 무시합니다. 즉 *에 허용을 걸어도, 특정 봇 그룹에 별도 disallow가 남아 있으면 그 봇은 막힌 상태로 동작합니다. 그래서 열고 싶은 봇은 봇마다 명시적으로 허용해야 합니다.
노출을 원한다면 최소한의 형태는 다음과 같습니다. 비공개로 두어야 할 경로(관리자, 토큰 URL 등)만 disallow로 남기고 나머지는 허용하는 방식입니다.
User-agent: OAI-SearchBot
Allow: /
Disallow: /admin/
User-agent: ChatGPT-User
Allow: /
Disallow: /admin/
User-agent: PerplexityBot
Allow: /
Disallow: /admin/
User-agent: *
Allow: /
Disallow: /admin/
Sitemap: https://내도메인/sitemap.xml
지금 내도메인/robots.txt를 브라우저로 열어, 위 봇들이 Disallow: /로 통째로 막혀 있지 않은지 확인하는 것이 첫 점검입니다.
학습 봇은 막아도 될까요?
여기서 오해가 자주 생깁니다. "AI가 우리 데이터로 공짜 학습하는 게 싫다"는 이유로 봇을 전부 막으면, AI 검색 노출까지 함께 잃습니다. 학습과 노출은 별개의 경로이고, 봇도 나뉘어 있어 선택이 가능합니다.
| 봇 유형 | 예시 | 막으면 잃는 것 |
|---|---|---|
| 학습용 수집 봇 | GPTBot, Google-Extended, CCBot | 다음 모델 학습 데이터 편입(노출과 무관) |
| 검색 색인 봇 | OAI-SearchBot, PerplexityBot, Yeti | AI 검색 답변에서의 인용 자격 |
| 실시간 열람 봇 | ChatGPT-User | 사용자가 링크를 물었을 때의 실시간 표시 |
정리하면, 학습 이용이 꺼려지면 학습용 봇만 골라 막고, 검색·실시간 봇은 열어두면 됩니다. 반대로 노출이 최우선이라면 전부 허용하는 편이 단순하고 안전합니다. 참고로 GEO 진단 도구인 저희(geodoctor.io)는 학습·검색·실시간 봇을 모두 허용합니다. AI 노출을 측정하는 도구가 정작 AI 크롤러를 막고 있으면 앞뒤가 맞지 않기 때문입니다.
robots.txt만 풀면 되나요?
아닙니다. 봇을 허용했는데도 인용되지 않는 두 번째 함정이 렌더링 방식입니다. AI 크롤러는 자바스크립트를 실행하지 않습니다. 본문이 클라이언트 렌더링(CSR)으로 브라우저에서 스크립트가 돈 뒤에야 그려지는 구조라면, 크롤러에게는 본문이 없는 빈 껍데기로 보입니다. 접근은 됐지만 읽을 내용이 없는 셈입니다.
확인 방법은 간단합니다. 페이지에서 마우스 오른쪽 버튼으로 '페이지 소스 보기'를 열거나, 터미널에서 curl https://내도메인/페이지를 실행해 보세요. 화면에 보이던 본문 텍스트가 그 원본 HTML 안에 그대로 들어 있으면 정상입니다. 반대로 원본에는 뼈대만 있고 텍스트가 비어 있다면, 서버 렌더링(SSR)이나 정적 생성으로 본문이 HTML에 실려 나오도록 바꿔야 합니다. robots.txt를 아무리 잘 열어도 이 단계에서 막히면 인용될 재료 자체가 없습니다.
llms.txt는 무엇이고, 정말 효과가 있나요?
llms.txt는 사이트 루트(내도메인/llms.txt)에 두는 마크다운 파일로, AI가 사이트를 빠르게 이해하도록 핵심 정보와 주요 문서 링크를 정리해 제공하자는 규약입니다. 2024년 9월 Answer.AI가 제안했으며(llmstxt.org), 방대한 HTML을 헤집는 대신 사람이 큐레이션한 요약을 건네주자는 발상입니다.
다만 냉정하게 볼 부분이 있습니다. llms.txt는 아직 새로운 제안이고, 주요 AI 엔진이 이 파일을 공식적으로 읽어 답변에 반영한다고 확인한 바는 없습니다. 따라서 llms.txt는 'robots.txt 허용'과 '서버 렌더링'이라는 진짜 전제를 대신하지 못합니다. 그럼에도 두는 이유는 세 가지입니다. 파일 하나로 끝나는 저비용이고, 규약이 자리 잡을 경우를 대비한 선점이며, 사이트의 핵심 메시지를 스스로 한 페이지에 정리해 두면 다른 최적화에도 도움이 되기 때문입니다. 효과를 과신하지 않되, 만들어 두는 손해는 거의 없는 항목입니다.
llms.txt는 어떻게 작성하나요?
형식은 단순합니다. 최상단에 # 제목으로 사이트·제품 이름을 쓰고, 바로 아래 인용부호(>)로 한 문단 요약을 넣습니다. 그다음 ## 섹션마다 주요 페이지를 - [제목](URL): 설명 형태의 링크 목록으로 정리합니다. 아래는 축약한 예시입니다.
# GEO Doctor
> 한국 브랜드를 위한 AI 검색 노출 무료 진단 도구.
> ChatGPT·Perplexity·Gemini·네이버 AI 브리핑 4개 엔진에
> 실제 질의를 던져 브랜드 언급률과 인용률을 실측합니다.
## 핵심 페이지
- [무료 진단](https://내도메인/): 브랜드명·도메인 입력 후 약 3분
- [블로그](https://내도메인/blog): GEO 실전 가이드
## 리소스
- RSS: https://내도메인/blog/rss.xml
각 링크 설명은 한 줄로 자기완결적으로 씁니다. AI가 그 한 줄만 읽고도 페이지의 성격을 파악할 수 있어야 합니다. 새 페이지가 늘면 목록도 함께 갱신하는 것이 좋습니다. 정적 파일로 두든, 블로그 글 목록을 자동으로 반영하도록 동적으로 생성하든 방식은 자유입니다.
schema.org 구조화 데이터는 어디에 쓰나요?
schema.org 마크업은 페이지의 의미를 기계가 읽을 수 있게 알려주는 구조화 데이터입니다. 대표적으로 Organization(이 이름은 이 도메인의 이 사업이라는 연결), Article/BlogPosting(글의 제목·발행일·작성자), FAQPage(질문-답변 쌍)가 있습니다. JSON-LD 형식으로 페이지에 넣습니다.
효과의 위치를 정확히 잡는 것이 중요합니다. schema.org는 특히 검색 색인에서 페이지를 정확히 분류하고 엔티티를 명확히 하는 데 도움이 되며, 그 색인을 원료로 쓰는 AI 검색 답변에 간접적으로 기여합니다. 다만 이것도 보조 신호입니다. 마크업만 붙이면 인용된다는 보장은 없고, 본문이 부실하면 스키마도 소용이 없습니다. 앞의 세 항목(봇 허용, 서버 렌더링, 콘텐츠 품질)이 갖춰진 위에 더하는 마감재로 이해하는 편이 맞습니다.
설정을 마쳤다면, 실제로 읽히는지 어떻게 확인할까요?
여기까지가 'AI가 읽을 수 있는 사이트'를 만드는 기술 전제입니다. 그런데 읽힐 수 있게 만든 것과 실제로 AI 답변에 언급·인용되는 것은 다른 문제입니다. 콘텐츠 형식도 여전히 중요합니다. 검증 가능한 통계·수치, 출처가 명시된 인용, H2/H3 구조화를 더하면 AI 답변에서의 인용 가시성이 30~40% 높아진다는 연구가 있습니다(Princeton GEO 연구, Aggarwal et al., KDD 2024). 기술 전제는 출발선일 뿐, 그 뒤의 인용 경쟁은 별도로 진행됩니다.
그래서 마지막 단계는 측정입니다. robots.txt를 열고 서버 렌더링을 확인하고 llms.txt까지 두었다면, 이제 실제 AI 엔진에 소비자형 질의를 던져 내 브랜드가 언급되는지, 내 도메인이 출처로 인용되는지를 확인할 차례입니다. 설정이 반영됐는지, 어느 엔진에서 막혀 있는지는 추정으로 알 수 없습니다. 내 브랜드가 지금 ChatGPT·Perplexity·Gemini·네이버 AI 브리핑에서 어디에 서 있는지부터 확인하고 싶다면, GEO Doctor 무료 진단으로 4개 엔진 노출을 실측해 볼 수 있습니다.