Tenten AIGEO
블로그로 돌아가기
기술 AEO 구현도입·실행

AI에 Markdown 콘텐츠 제공하기: /md 엔드포인트와 일반 텍스트 백업 구현

AI 엔진은 HTML을 읽을 때 먼저 레이아웃 노이즈를 제거하며, 이 과정에서 엉뚱한 문단을 추출하기도 합니다. 이 글에서는 각 페이지에 Markdown 기반 AI 콘텐츠 엔드포인트와 일반 텍스트 폴백을 제공하는 방법을 설명합니다. /md 라우팅, 콘텐츠 협상, llms.txt 계층 구성부터 curl로 AI 크롤러의 실제 접근 여부를 검증하는 방법까지 다룹니다.

Tenten GEO 팀게시일 2026-06-185 분 소요
빛나는 문서가 복잡한 HTML과 깔끔한 Markdown이라는 두 데이터 흐름으로 나뉘어 멀리 있는 AI의 후광을 향해 흘러가는 모습.

AI 엔진은 웹페이지를 읽을 때 먼저 HTML을 해체합니다. 내비게이션 바, 사이드바, 쿠키 안내, 추적 스크립트를 걷어내고 본문이라고 판단한 텍스트만 남깁니다. 문제는 이 과정에서 오류가 발생해도 어디서 잘못됐는지 확인하기 어렵다는 점입니다. HTML 시맨틱 마크업을 완벽하게 다듬고 모델이 매번 레이아웃을 올바르게 추측하기를 기대하기보다, 편집을 마친 Markdown 사본을 직접 제공하는 편이 낫습니다. 동일한 콘텐츠에서 레이아웃 노이즈를 제거하면 모델이 구조를 추측할 필요가 없어지고, 인용문 추출의 정확성도 안정됩니다.

AI가 HTML보다 Markdown을 선호하는 이유

핵심은 노이즈 비율입니다. 일반적인 SaaS 제품 페이지의 HTML 소스는 6,000~7,000토큰에 이를 수 있지만, 실제 콘텐츠가 차지하는 비중은 작습니다. 나머지는 클래스 이름, 인라인 스타일, SVG 경로, 분석 스크립트입니다. 모델은 이를 읽은 뒤 질문에 답할 수 있는 문장을 찾기 위해 먼저 불필요한 요소를 걸러내야 합니다. 같은 문단도 Markdown으로 제공하면 전체 분량이 원본의 일부로 줄어듭니다. 제목은 제목으로, 목록은 목록으로, 핵심 내용은 핵심 내용으로 명확히 드러납니다. 구조 자체가 의미를 전달하므로 모델이 추측해야 할 여지도 크게 줄어듭니다.

답변 엔진에서는 이 차이가 특히 중요합니다. ChatGPT, Perplexity, Google AI Overviews는 답변을 생성할 때 후보 페이지에서 인용할 만한 문단을 추출합니다. 페이지가 깔끔하고 각 문단이 독립적으로 의미를 전달할수록 온전하게 인용될 가능성이 높아집니다. 저희가 고객사를 지원하며 자주 접한 문제도 비슷합니다. 글 자체는 잘 작성됐지만 여러 겹의 div와 클라이언트 렌더링 컴포넌트에 둘러싸여 모델이 문장을 절반만 가져가는 경우입니다. Markdown 엔드포인트로 전환하면 같은 문단 전체에 접근할 수 있어, 인용이 엉뚱한 지점에서 끊기는 문제를 줄일 수 있습니다.

/md 엔드포인트: 모든 페이지에 기계가 읽을 수 있는 사본 제공하기

방법은 각 공개 페이지에 대응하는 Markdown 버전을 제공하고, URL 규칙을 예측 가능하게 만드는 것입니다. 일반적으로 두 가지 방식을 사용합니다. 원래 URL 뒤에 .md를 붙이거나(예: /blog/aeo-basics에 대응하는 /blog/aeo-basics.md), 경로 뒤에 /md를 추가합니다. 어느 쪽이든 괜찮지만 규칙이 일관되고 쉽게 유추할 수 있어야 합니다. Next.js App Router에서는 Route Handler로 구현할 수 있습니다. 라우트 파일을 만든 뒤 HTML 페이지와 동일한 콘텐츠 데이터를 읽고, Content-Type을 text/markdown으로 지정해 출력합니다.

  1. 단일 데이터 소스: HTML 페이지와 Markdown 엔드포인트가 동일한 콘텐츠(MDX, 데이터베이스 또는 콘텐츠 객체)를 읽도록 합니다. 두 사본을 따로 관리하면 결국 내용이 어긋납니다.
  2. HTML의 head에 link rel=alternate type=text/markdown을 넣어, 기계가 읽을 수 있는 버전의 위치를 크롤러에 명확히 알립니다.
  3. Markdown에는 제목, 문단, 목록, 표, 코드 블록, 링크 등 본문만 남기고 내비게이션, 푸터, 관련 글, 마케팅 배너는 제거합니다.
  4. 필수 출처 정보 유지: 파일 시작 부분의 front matter나 첫 줄의 H1에 제목, 원본 URL, 업데이트 날짜를 담아 모델이 출처를 식별할 수 있게 합니다.
  5. 올바른 캐시 헤더를 반환해 CDN이 요청마다 원본 서버로 돌아가지 않고 이 엔드포인트를 제공할 수 있도록 합니다.

콘텐츠 협상으로 형식 전환 자동화하기

고정 URL을 제공하는 것 외에도 요청자에 따라 동일한 URL에서 서로 다른 형식을 반환할 수 있습니다. 판단 기준은 Accept 헤더와 User-Agent 두 가지입니다. 요청에 Accept: text/markdown이 포함됐거나 User-Agent가 알려진 AI 크롤러(GPTBot, ClaudeBot, PerplexityBot, Google-Extended 등)에 해당하면 미들웨어 계층에서 Markdown 라우트로 재작성합니다. 일반 브라우저에는 계속 HTML을 반환합니다. 사용자는 완성된 페이지를 보고 모델은 깔끔한 텍스트를 받으며, URL은 처음부터 끝까지 바뀌지 않습니다.

다이어그램: 요청자가 브라우저인지 AI 크롤러인지에 따라 동일한 URL이 각각 HTML과 깔끔한 Markdown을 반환합니다.
하나의 콘텐츠를 두 가지 형식으로 제공합니다. 브라우저에는 HTML을, AI 크롤러에는 깔끔한 Markdown을 전달합니다.

일반 텍스트 백업: Markdown조차 과할 때

일부 에이전트나 크롤러는 Markdown 문법을 해석하지 못하고 일반 텍스트만 처리합니다. 음성 비서용 출처 요약처럼 가장 간결한 콘텐츠만 필요한 경우도 있습니다. 이때 일반 텍스트 백업이 유용합니다. 구현 방식은 Markdown 엔드포인트와 같지만 text/plain으로 출력한다는 점이 다릅니다. 제목과 문단은 줄바꿈으로 구분하고, 링크는 텍스트 뒤 괄호 안에 URL을 덧붙입니다. 이렇게 단계별 백업을 마련하면 상대 도구의 파싱 역량이 어느 수준이든 읽을 수 있는 버전을 제공할 수 있습니다.

  • llms.txt: 웹사이트 루트 디렉터리에 /llms.txt를 배치합니다. 주요 페이지와 간단한 설명을 Markdown으로 정리해 모델에 탐색 지도를 제공합니다.
  • llms-full.txt: 핵심 콘텐츠 전체를 하나의 파일로 이어 붙여, 모델이 페이지별로 크롤링하지 않고 한 번에 읽을 수 있게 합니다.
  • 페이지별 .md 엔드포인트: 각 아티클과 제품 페이지에 대응하는 기계 가독형 사본입니다.
  • 일반 텍스트 폴백: Markdown을 해석하지 못하는 도구를 위한 최소한의 text/plain 버전입니다.

AI가 실제로 읽을 수 있는지 확인하는 방법

배포한 뒤에는 자동으로 적용됐다고 가정하지 말고 반드시 검증해야 합니다. 가장 빠른 방법은 curl로 크롤러 요청을 재현하는 것입니다. Accept: text/markdown을 포함하거나 AI 크롤러의 User-Agent를 설정한 뒤, 반환된 Markdown이 깔끔한지, 상태 코드가 200인지, 캐시 헤더가 올바른지 확인합니다. 이어서 서버 로그를 살펴 GPTBot, ClaudeBot 같은 크롤러가 노이즈가 많은 HTML을 계속 가져가는 대신 실제로 Markdown 엔드포인트에 접근하는지 점검합니다. isitagentready 같은 도구를 사용하면 에이전트 관점에서 페이지의 가독성을 빠르게 확인할 수 있습니다.

AI에 인용되려면 먼저 콘텐츠를 깔끔하게 읽을 수 있어야 합니다. Markdown 사본을 제공하면 이 과정에서 ‘레이아웃 추측’이라는 단계를 완전히 없앨 수 있습니다.Tenten GEO

사이트 전체를 한 번에 개편하지 말고 한 페이지부터 시작하세요

먼저 검색 유입이 가장 많은 페이지와 AI에 인용되기를 원하는 페이지를 선정해 .md 엔드포인트와 일반 텍스트 백업을 추가합니다. 2~4주 동안 AI 크롤러의 수집 동작을 측정한 뒤 사이트 전체로 확대할지 결정합니다. 이렇게 하면 위험을 통제하면서 실제 로그를 근거로 팀의 동의를 이끌어낼 수 있습니다. 현재 페이지를 AI가 얼마나 잘 읽을 수 있는지, 어떤 부분을 보완해야 하는지 먼저 파악하고 싶다면 Tenten GEO의 30일 GEO 감사를 통해 페이지별 기계 가독성 문제를 점검할 수 있습니다. 현재 상황을 상담하려면 /contact에서 30분 GEO 진단을 예약하세요.

자주 묻는 질문

/md 엔드포인트란 무엇이며, AI에 Markdown 버전의 콘텐츠를 제공해야 하는 이유는 무엇인가요?
/md 엔드포인트는 각 페이지에 대응하는 기계 가독형 사본으로, 깔끔한 Markdown을 출력합니다. AI 엔진이 HTML을 읽을 때는 내비게이션이나 스크립트 같은 노이즈를 먼저 걸러내야 하므로 엉뚱한 문단을 추출하기 쉽습니다. Markdown을 직접 제공하면 레이아웃 노이즈가 사라져 콘텐츠를 온전하고 정확하게 인용할 수 있습니다.
User-Agent에 따라 AI 크롤러에 다른 형식의 콘텐츠를 반환하면 Google이 클로킹으로 판단하나요?
콘텐츠는 동일하고 형식만 다르다면 숨겨진 차등 제공이 아닙니다. 즉 HTML 버전과 Markdown 버전의 텍스트가 같아야 합니다. 클로킹은 크롤러와 사용자에게 실질적으로 다른 콘텐츠를 반환하는 행위를 말하며 Google이 금지합니다. 콘텐츠가 아닌 형식만 전환해야 안전합니다.
AI 크롤러가 Markdown 엔드포인트를 실제로 읽었는지 어떻게 확인하나요?
curl 요청에 Accept: text/markdown이나 AI 크롤러의 User-Agent를 넣고 응답이 깔끔한 Markdown인지, 상태 코드가 200인지 확인합니다. 이어서 서버 로그에서 GPTBot, ClaudeBot 같은 크롤러가 HTML 대신 해당 엔드포인트에 실제로 접근했는지 점검합니다.

다음 단계

AI 답변에서 우리 브랜드는 얼마나 보일까요?

30분 GEO 진단을 통해 주요 AI 엔진에서의 가시성 격차와 우선 개선 과제를 확인해 보세요.

30분 진단 예약