본문으로 바로가기

사이트맵 XML 완전 가이드: 구조·오류·Health Score 최적화

2026.04.232026.07.10 수정24분 읽기

이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

목차

사이트를 배포하고 나서 "Google이 내 페이지를 왜 안 잡아가지?"라는 고민을 한 번쯤 해봤을 것입니다. 원인의 상당수는 sitemap.xml에 있습니다. URL이 누락됐거나, 필드 값이 잘못됐거나, 중복 URL이 섞여 있거나. 사이트맵 XML 검사기를 사용하면 sitemap.xml을 붙여넣거나 파일을 드롭하는 것만으로
URL 수·필드 커버리지·오류·Health Score를 즉시 확인할 수 있습니다.

sitemap.xml이란?#

sitemap.xml은 검색 엔진에 웹사이트의 URL 구조를 알려주는 XML 파일입니다. Google·Bing 등의 크롤러는 이 파일을 읽어
어떤 페이지를 크롤링해야 하는지, 마지막으로 수정된 시점은 언제인지, 얼마나 자주 변경되는지를 파악합니다.

사이트맵을 제출하지 않아도 검색 엔진은 내부 링크를 따라 페이지를 발견할 수 있습니다. 그러나 사이트맵이 있으면 크롤링 효율이 높아지고,
고아 페이지(orphan page, 다른 페이지에서 링크가 없는 페이지)도 색인될 가능성이 높아집니다.

공식 명세는 sitemaps.org에서 확인할 수 있으며,
Google·Yahoo·Microsoft가 공동으로 정한 표준입니다.

urlset vs sitemapindex 차이#

사이트맵에는 두 가지 유형이 있습니다.

유형루트 태그역할사용 시점
일반 사이트맵<urlset>개별 URL 목록을 직접 포함페이지 수 50,000개 미만
사이트맵 인덱스<sitemapindex>여러 하위 사이트맵 파일을 참조대형 사이트, 50,000 URL 초과 시 분산 처리

단일 sitemap.xml 파일에는 URL을 최대 50,000개까지만 담을 수 있고,
비압축 크기도 50 MB를 넘으면 안 됩니다. 이를 초과하는 사이트는 <sitemapindex>로 여러 파일을 묶어 관리합니다.

4개 핵심 필드 설명#

필드필수 여부허용 값SEO 영향
<loc>필수절대 URL (https:// 포함)직접적: 색인 대상 URL 지정
<lastmod>선택ISO 8601 날짜 (예: 2026-04-23 또는 2026-04-23T10:00:00+09:00)콘텐츠 신선도 신호
<changefreq>선택always hourly daily weekly monthly yearly never크롤링 힌트 (Google은 참고용으로만 사용)
<priority>선택0.01.0 (기본 0.5)같은 사이트 내 상대적 우선순위 힌트

<loc> 필드가 없으면 해당 <url> 항목 전체가 무효입니다. <priority>는 사이트 간 비교에 사용되지 않으며,
같은 사이트 내부에서만 상대적 순서를 힌트로 줍니다.

XML 코드 예시#

urlset 예시 (일반 사이트맵)#

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://example.com/</loc>
    <lastmod>2026-04-20</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://example.com/about</loc>
    <lastmod>2026-03-15</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://example.com/blog/post-1</loc>
    <lastmod>2026-04-22</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.6</priority>
  </url>
</urlset>

sitemapindex 예시 (사이트맵 인덱스)#

<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <sitemap>
    <loc>https://example.com/sitemap-pages.xml</loc>
    <lastmod>2026-04-20</lastmod>
  </sitemap>
  <sitemap>
    <loc>https://example.com/sitemap-blog.xml</loc>
    <lastmod>2026-04-22</lastmod>
  </sitemap>
  <sitemap>
    <loc>https://example.com/sitemap-products.xml</loc>
    <lastmod>2026-04-18</lastmod>
  </sitemap>
</sitemapindex>

Health Score 계산법#

사이트맵 XML 검사기는 사이트맵의 품질을 100점 만점으로 평가합니다.

항목배점기준
loc 커버리지25점전체 <url><loc> 존재 비율
유효성 오류 없음25점missing_loc, invalid_changefreq, invalid_priority, duplicate_url 오류 건수
lastmod 커버리지20점전체 URL 중 <lastmod> 보유 비율
changefreq 유효성15점허용 값 7가지 내 사용 여부
priority 유효성15점0.01.0 범위 내 값 사용 여부

등급 기준

점수등급
90–100점Excellent
70–89점Good
50–69점Fair
0–49점Poor

자주 발생하는 4가지 오류와 해결법#

1. missing_loc#

<url> 블록에 <loc> 태그가 없는 경우입니다. 이 오류가 있으면 해당 URL은 검색 엔진에서 완전히 무시됩니다.

<!-- 오류: loc 없음 -->
<url>
  <lastmod>2026-04-01</lastmod>
</url>

<!-- 수정: loc 추가 -->
<url>
  <loc>https://example.com/page</loc>
  <lastmod>2026-04-01</lastmod>
</url>

2. invalid_changefreq#

changefreq 값이 명세에 정의된 7가지 (always, hourly, daily, weekly, monthly, yearly, never) 외의 값일 때 발생합니다.

<!-- 오류: 허용되지 않은 값 -->
<changefreq>sometimes</changefreq>

<!-- 수정: 허용 값으로 교체 -->
<changefreq>weekly</changefreq>

3. invalid_priority#

priority 값이 0.01.0 범위를 벗어날 때 발생합니다. 1.5-0.1 같은 값은 무효입니다.

<!-- 오류: 범위 초과 -->
<priority>1.5</priority>

<!-- 수정: 유효 범위 내 값 -->
<priority>0.9</priority>

4. duplicate_url#

동일한 <loc> 값이 사이트맵에 두 번 이상 등장할 때 발생합니다. 중복 URL은 크롤링 예산을 낭비하고 canonical 신호를 혼란스럽게 합니다. 사이트맵 생성 스크립트에서 URL 목록을 Set 자료구조로 de-duplicate하면 예방할 수 있습니다.

lastmod 커버리지 최적화 전략#

lastmod 커버리지는 Health Score에서 20점을 차지하지만,
더 중요한 것은 값의 정확성입니다. Google은 부정확한 lastmod를 반복적으로 감지하면 이 필드를 무시하기 시작합니다.

권장 전략

  • 블로그 포스트·제품 페이지처럼 자주 업데이트되는 콘텐츠는 실제 수정 시각을 ISO 8601 형식으로 기록합니다.
  • 정적 페이지(소개 페이지, 고정 랜딩 등)는 실제로 변경된 날짜만 업데이트합니다. 크롤러를 유인하기 위해 변경 없이 날짜만 갱신하면 역효과가 납니다.
  • CMS나 빌드 파이프라인에서 파일의 git log --format="%ci" -1 -- <path> 명령 결과를 lastmod로 자동 주입하면 정확도를 유지할 수 있습니다.

50,000 URL 제한 주의사항#

sitemaps.org 명세에 따르면 단일 사이트맵 파일의 제한은 다음과 같습니다.

  • 최대 URL 수: 50,000개
  • 최대 파일 크기: 50 MB (비압축 기준)

이 제한을 초과하는 경우에는 사이트맵을 여러 파일로 분할하고 <sitemapindex>로 묶어야 합니다. 예를 들어 블로그 URL, 제품 URL, 정적 페이지 URL을 각각 별도 사이트맵 파일로 분리한 뒤
인덱스 파일에서 참조하는 구조가 일반적입니다.

사이트맵 XML 검사기는 50,000 URL 초과 여부를 자동으로 감지해 경고합니다.

도구 사용 방법#

사이트맵 XML 검사기는 세 가지 방법으로 사이트맵을 입력받습니다.

  1. 텍스트 붙여넣기: 브라우저에서 https://example.com/sitemap.xml을 열어 XML 전체를 복사한 뒤 텍스트 영역에 붙여넣습니다.
  2. 파일 드롭: 로컬에 저장된 .xml 파일을 드래그 앤 드롭하거나 파일 선택 버튼으로 업로드합니다.
  3. 직접 입력: 작은 사이트맵이라면 XML을 직접 타이핑하거나 수정해 검사할 수 있습니다.

입력 후 결과는 6개 탭으로 나뉩니다.

  • Overview: URL 수, 사이트맵 유형(urlset/sitemapindex), Health Score 요약
  • Coverage: loc/lastmod/changefreq/priority 필드별 커버리지 비율
  • Errors: 오류 유형별 목록과 해당 URL
  • URLs: 전체 URL 목록과 각 필드 값
  • Depth: URL 경로 깊이 분포 (도메인 기준 슬래시 단계)
  • Insights: Health Score를 기반으로 자동 생성된 개선 제안

사이트맵을 최적화한 뒤 할 일#

사이트맵을 수정하고 나면 Google Search Console에서 직접 제출하는 것이 가장 빠른 방법입니다. Search Console > 사이트맵 메뉴에서 sitemap.xml URL을 입력하면
즉시 제출 및 상태 확인이 가능합니다.

사이트맵 외에도 JSON 형식의 구조화 데이터를 점검하고 싶다면
JSON 포매터를 함께 활용해보세요. 개발 워크플로우에서 두 도구를 조합하면 SEO 기술 기반을 체계적으로 관리할 수 있습니다.

이런 글도 읽어보세요

전체 글 보기

관련 도구