Sitemap이란?

1. Sitemap이란

검색 엔진이 사이트의 URL 구조를 빠르게 파악하도록 도와주는 XML 문서다.

정적 페이지, 게시글, 제품 등 “크롤링 중요도가 높은 URL”을 나열한다.


가. 반드시 필요한가

필수는 아니다.

크롤러가 사이트 링크 구조를 통해 자연스레 발견할 수 있다면 없어도 검색된다.

하지만 새로운 URL이 많거나 사이트 규모가 크면 sitemap이 큰 도움이 된다.


나. 어떤 URL을 sitemap에 넣어야 하는가

  • 반드시 넣는 항목
    • 메인 페이지
    • 고정 페이지 (회사 소개, 정책, FAQ 등)
    • 카테고리/게시판 등의 구조적 페이지
    • 검색 엔진에서 중요도 높은 페이지
  • 넣지 않아도 되는 항목
    • 너무 자주 생성/삭제되는 실시간 게시글
    • 로그인/개인정보 기반 페이지
    • 의미 없는 리스트 페이지
    • 필터·검색 결과 페이지
    • SEO 가치가 낮은 동적 URL
  • 커뮤니티 게시글 포함 여부
    • 게시글이 적거나 SEO가 중요 → sitemap에 포함
    • 게시글이 너무 많고 실시간으로 생성/삭제 → sitemap에서 제외해도 문제 없음
    • 대규모 커뮤니티 대부분은 게시글 sitemap을 쓰지 않는다
  • 게시글 수가 적고 SEO가 중요하다
    → 게시글 sitemap 포함 권장 (변경된 게시글 빠른 인덱싱 가능)
  • 게시글이 매우 많고 실시간 생성/삭제된다
    → 게시글 sitemap 비포함 권장
    → 크롤러는 게시판 리스트 페이지만 있어도 모든 글을 자연스럽게 찾아간다
    → sitemap 관리 비용이 효과 대비 크다
  • 게시글은 sitemap에서 제외하되, 게시판/카테고리만 포함
    → 가장 현실적이고 비용 효율적
    → 대부분 커뮤니티가 채택하는 방식

2. Sitemap의 기술적 제한 및 구조

1. Sitemap 크기 제한

  • 1개의 sitemap 파일은 최대 50,000 URL
  • 또는 50MB (압축 전)

2. sitemap index

URL이 많은 경우 여러 sitemap을 나누고 아래 같은 index 파일을 둔다.

/sitemap-index.xml
  ├─ /sitemap-static.xml
  ├─ /sitemap-posts-1.xml
  ├─ /sitemap-posts-2.xml
  └─ ...

검색 엔진은 index 파일 1개만 보면 전부 읽어간다.


3. Sitemap 생성 전략

가. 전략 A. 정적 Sitemap (규모 작거나 변경 빈도 낮을 때)

  • 단순 XML 파일을 직접 작성
  • 배포 시 포함
  • 변화가 거의 없는 사이트에 적합

나. 전략 B. 동적 Sitemap (DB 기반)

  • /sitemap.xml 요청 시 서버가 DB에서 URL을 조회하여 XML 생성
  • 새로운 게시글이 많지 않을 때 유용
  • 게시글 1만 개 이하 정도에서 실용적

다. 전략 C. 정적 + 캐시 + 일정 주기 재생성 (가장 현실적인 방법)

  • sitemap 파일을 생성해 캐시에 저장
  • 10분~1시간마다 재생성
  • 서버 부하 적고 규모가 커도 효율적
  • 대부분의 서비스들이 채택

라. 전략 D. 아예 게시글 Sitemap을 만들지 않는 방법

  • 커뮤니티형 사이트의 일반적 선택
  • 크롤러가 게시판 리스트에서 페이지를 자연스럽게 수집하면 충분

4. 기술 스택별 Sitemap 생성 방식 개요

기술 스택 Sitemap 생성 방식 비고
Node.js (Express) – 라우트에서 XML 직접 생성 – sitemap-generator 등 크롤링 기반 생성 서버 사이드에서 직접 XML 문자열 반환하거나 CLI 도구 활용
Next.js next-sitemap 패키지 – app/sitemap.js(App Router)로 자동 생성 프레임워크에서 공식적으로 sitemap 자동 생성 기능 지원
Spring Boot – Controller에서 XML 문자열 반환 – 스케줄러로 sitemap index/파일 생성 대규모 사이트에서 sitemap 파일 분할 생성 시 유용
Django django.contrib.sitemaps 기본 지원 프레임워크 차원에서 sitemap 클래스 기반 자동 생성
Flask – 라우트에서 XML 직접 생성 Django와 달리 기본 기능 없음 → 직접 처리
Laravel spatie/laravel-sitemap 패키지 사용 가장 널리 쓰이는 sitemap 패키지
Static Site (Hugo, Jekyll, Astro) – 빌드 시 자동 sitemap 생성 대부분 기본 기능 또는 플러그인 제공

5. 로봇 설정 (robots.txt)

모든 sitemap은 robots.txt에 반드시 명시한다.

User-agent: *
Allow: /
Sitemap: https://example.com/sitemap.xml

검색 엔진이 sitemap의 위치를 빠르게 알 수 있다.


7. 요약

  • sitemap은 검색엔진에게 “중요한 URL”을 알려주는 도구일 뿐, 전부 넣을 필요는 없다
  • 게시글 수가 적으면 sitemap에 넣고, 많으면 넣지 않아도 된다
  • sitemap은 정적/동적/캐시+스케줄러 형태 중 선택할 수 있다
  • sitemap에는 최대 50,000개 URL이 담긴다
  • 대규모 서비스는 sitemap index 방식으로 나눈다
  • 업데이트가 잦은 사이트는 sitemap을 실시간 생성하지 않고 주기 생성+캐싱 방식 사용
  • 커뮤니티형 사이트는 게시글 sitemap을 생략해도 SEO에 큰 문제 없다
  • robots.txt에 sitemap을 반드시 선언해야 한다
  • Sitemap은 SEO 최적화의 한 요소일 뿐이며 크롤링/링크 구조가 더 큰 영향을 준다

댓글 남기기