인사이트

검색엔진과 AI가 읽는 파일 – VENOX CMS의 사이트맵·llms.txt·구조화 데이터 자동 생성

홈페이지 글이 좋아도 검색엔진과 AI 검색이 페이지를 찾고 이해하지 못하면 노출되지 않습니다. VENOX CMS는 메뉴와 게시판을 기준으로 sitemap.xml과 llms.txt를 요청이 올 때마다 새로 만들고, 페이지마다 대표 주소와 구조화 데이터를 붙입니다. 아래 예시는 모두 venox.kr에 지금 적용된 실제 설정입니다.

검색엔진이 사이트를 읽는 순서는 대체로 같습니다.

  1. robots.txt를 먼저 읽고 수집해도 되는 범위를 확인합니다.

  2. sitemap.xml에서 수집할 주소 목록과 수정일을 얻습니다.

  3. 각 페이지를 내려받아 제목·설명·본문·대표 주소(canonical)를 읽습니다.

  4. 구조화 데이터(JSON-LD)로 이 페이지가 어떤 조직의 어떤 글인지 파악합니다.

생성형 AI 검색도 비슷한 경로를 따릅니다. 여기에 사이트 요약 목록인 llms.txt를 더 읽을 수 있습니다. 다만 llms.txt는 제안된 형식이어서, 모든 AI 서비스가 읽는다고 보장되지는 않습니다.

1. robots.txt – 누구에게 무엇을 허용하나

venox.kr은 구글·빙·네이버(Yeti) 같은 검색엔진과 GPTBot, ChatGPT-User, ClaudeBot, PerplexityBot, Google-Extended 같은 AI 검색 봇을 모두 허용합니다. 반대로 사이트 내용을 통째로 가져가는 SEO 수집 봇(AhrefsBot, SemrushBot 등)은 막습니다. 관리용 주소인 /api/와 /_next/는 일반 봇 규칙에서 수집을 제외했습니다.

User-agent: GPTBot
Allow: /

User-agent: ClaudeBot
Allow: /

User-agent: AhrefsBot
Disallow: /

Sitemap: https://venox.kr/sitemap.xml

주의할 점이 하나 있습니다. 홈페이지 보안 설정이 특정 프로그램의 접속을 막을 때 robots.txt까지 같이 막아 버리는 경우가 있습니다. venox.kr도 한때 파이썬 기반 점검 도구가 robots.txt를 읽지 못해 403 응답을 받았습니다. 지금은 robots.txt, sitemap.xml, llms.txt 세 파일을 차단 규칙에서 빼서 누구나 읽을 수 있게 했습니다.

2. sitemap.xml – 메뉴가 곧 목록

VENOX CMS의 사이트맵은 따로 관리하는 파일이 아니라 상단 메뉴에서 만들어집니다. 메뉴를 추가하거나 게시판에 글을 쓰면 다음 요청부터 바로 반영됩니다.

포함되는 주소우선순위수정일(lastmod)
홈1.0넣지 않음
상단 메뉴가 연결한 페이지·게시판 목록0.8페이지 수정일을 알 때만
하위 메뉴 페이지, 페이지 본문이 링크한 다른 페이지0.6페이지 수정일을 알 때만
게시판 글 (게시판마다 최근 100개)0.6글의 수정일 또는 작성일
venox.kr의 sitemap.xml 실제 화면 – 주소, 변경 주기, 우선순위 목록
venox.kr/sitemap.xml 실제 화면

수정일을 모르는 주소에는 lastmod를 아예 넣지 않습니다. 생성한 날짜를 수정일처럼 넣으면 모든 페이지가 매일 바뀐 것처럼 보이고, 이런 값이 반복되면 검색엔진은 그 사이트의 lastmod를 믿지 않게 됩니다. 게시글에 대표 이미지가 있으면 이미지 주소도 함께 넣습니다.

<url>
  <loc>https://venox.kr/boards/134/57214</loc>
  <lastmod>2026-10-30</lastmod>
  <changefreq>monthly</changefreq>
  <priority>0.6</priority>
  <image:image>
    <image:loc>https://venox.kr/uploads/insights/venox-cms-structure-cover.webp</image:loc>
  </image:image>
</url>

빌드 때 만든 사이트맵이 낡는 문제

사이트맵을 서버를 빌드할 때 한 번만 만들면, 그 뒤에 추가한 메뉴가 빠집니다. venox.kr에서도 실제로 서비스 하위 페이지 4개가 사이트맵에서 빠진 적이 있습니다. 빌드할 때 받아 둔 메뉴 데이터가 1년 동안 캐시되어 있었기 때문입니다. 지금은 사이트맵을 요청이 올 때마다 새로 만들어 이 문제가 생기지 않습니다.

3. llms.txt – AI에게 건네는 사이트 안내문

venox.kr의 llms.txt 실제 화면 – 사이트 요약과 섹션별 페이지 목록
venox.kr/llms.txt 실제 화면

llms.txt는 사이트가 무엇을 하는 곳인지와 주요 페이지 목록을 마크다운 형식으로 정리한 파일입니다. VENOX CMS는 사이트맵과 같은 메뉴 정보로 이 파일을 만듭니다.

  • 맨 위: 회사 한 줄 소개와 요약

  • 상단 메뉴마다 섹션 하나

  • 페이지마다 제목, 주소, 150자 안팎의 요약

요약은 페이지 본문 앞부분에서 소제목을 빼고 뽑습니다. 그래서 글 첫 문단을 결론부터 쓰면 llms.txt와 검색 결과 설명이 함께 좋아집니다.

4. 대표 주소 하나로 모으기

같은 내용이 여러 주소로 열리면 검색엔진은 어느 주소를 보여 줄지 고민하고, 평가도 나뉩니다. venox.kr은 아래처럼 정리했습니다.

들어온 주소처리
www.venox.kr/…venox.kr/… 로 영구 이동(308)
/pages/페이지주소/page/페이지주소 로 영구 이동
예전 포트폴리오 게시판 주소/portfolio 로 영구 이동
예전 회사소개·문의 페이지/about, /contact 로 영구 이동
dev·test 등 개발용 하위 도메인색인 제외 헤더(X-Robots-Tag: noindex)

모든 페이지에는 자기 자신을 가리키는 <link rel="canonical">가 하나씩 들어갑니다. 2026년 10월 30일 사이트맵의 35개 주소를 모두 열어 확인했을 때, 대표 주소가 실제 주소와 다른 페이지는 없었습니다.

5. 구조화 데이터

구조화 데이터는 검색 결과에 특별한 모양이 나오도록 보장하지는 않습니다. 하지만 이 페이지가 어떤 조직의 어떤 글인지 기계가 오해 없이 읽게 해 줍니다.

페이지넣는 구조화 데이터
메인·서비스·솔루션·구축 사례·회사 소개·문의Organization(회사 이름·주소·설립 연월·주요 분야), WebSite
서브 페이지 전체BreadcrumbList(홈 › 메뉴 › 현재 페이지)
게시글·구축 사례Article(제목, 이미지, 게시일, 작성 조직)
메인ProfessionalService, 서비스 목록(ItemList), 자주 묻는 질문(FAQPage)
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    { "@type": "ListItem", "position": 1, "name": "홈", "item": "https://venox.kr/" },
    { "@type": "ListItem", "position": 2, "name": "인사이트", "item": "https://venox.kr/boards/134" },
    { "@type": "ListItem", "position": 3, "name": "VENOX CMS 구조 해설 …", "item": "https://venox.kr/boards/134/57214" }
  ]
}

6. 페이지마다 챙기는 기본기

편집기에 띄운 HTML head 영역의 meta·link 태그
제목, 설명, 대표 주소는 모두 페이지 head 안의 태그로 들어갑니다. CMS가 페이지마다 채우고, 담당자는 들어갈 내용을 챙깁니다. · 사진 StockSnap

CMS가 자동으로 처리

  • 제목 뒤에 사이트 이름 붙이기 (예: 글 제목 | 인사이트 | VENOX)

  • 설명을 따로 쓰지 않은 글은 본문 앞부분으로 설명 만들기

  • 게시글 화면에서 H1은 글 제목 하나만

  • 구축 사례 이미지에 프로젝트 이름으로 대체 텍스트 붙이기

  • 검색어가 들어간 게시판 목록 주소는 색인 제외

담당자가 챙길 것

  • 첫 문단은 결론부터 – 검색 설명과 llms.txt 요약이 여기서 나옵니다

  • 본문 이미지에는 무엇을 보여 주는지 대체 텍스트 쓰기

  • 페이지 검색용 제목·설명은 관리자 화면 페이지 설정에서 직접 쓰기

  • 같은 내용을 여러 메뉴에 복사하지 않기

실제로 확인한 결과

2026년 10월 30일 venox.kr 사이트맵의 35개 주소를 모두 열어 점검한 결과입니다.

노트북 화면에 띄운 방문 통계 그래프
검색 노출 점검은 한 번으로 끝나지 않습니다. 메뉴를 바꾸거나 글을 많이 올린 뒤에는 같은 항목을 다시 확인합니다. · 사진 StockSnap
항목결과
응답 상태35개 모두 200
대표 주소(canonical)35개 모두 자기 주소와 일치
H135개 모두 1개
구조화 데이터 오류0건, BreadcrumbList는 35개 모두 있음
이미지 대체 텍스트 누락0건
제목·설명 중복0건

같은 날 같은 서버에서 Lighthouse 모바일 검사를 돌렸을 때 메인·서비스·도입 문의 페이지의 SEO 점수는 모두 100이었습니다. 측정 환경에 따라 결과는 달라질 수 있습니다.

자주 묻는 질문

llms.txt를 두면 AI 검색 답변에 나오나요?

보장되지 않습니다. llms.txt는 AI가 사이트를 이해하는 데 도움이 될 수 있는 안내문일 뿐입니다. AI 답변에 인용되려면 질문에 바로 답하는 본문, 출처와 작성일, 구조화 데이터가 함께 갖춰져야 합니다. 실제로 어떤 질문에서 인용되는지는 Lumiscan 같은 진단 도구로 확인할 수 있습니다.

사이트맵은 어디에 제출하나요?

구글은 Search Console, 네이버는 서치어드바이저에 https://도메인/sitemap.xml을 한 번 등록하면 됩니다. 그 뒤에 추가한 글은 사이트맵에 자동으로 들어가므로 다시 제출할 필요가 없습니다.

글을 올리면 검색에 언제 나오나요?

사이트맵에는 바로 들어가지만, 언제 수집하고 색인할지는 검색엔진이 정합니다. 보통 며칠에서 몇 주가 걸립니다.

관련 글: VENOX CMS 구조 해설 · VENOX CMS 솔루션 · Lumiscan – AI 검색 노출 진단

목록으로