본문으로 건너뛰기

Field guide / sitemap

sitemap.xml 만들기와 제출하기

사이트맵의 XML 형식과 URL 개수·용량 제한, sitemap index 분할, robots.txt 선언, Search Console 제출, lastmod의 올바른 사용법을 정리합니다.

작성
수정
작성자
애드브랜치 편집팀
검토
애드브랜치 편집팀

sitemap.xml이란 무엇인가

sitemap.xml은 사이트에서 관리하는 URL 목록을 XML로 정리한 파일입니다. 사이트맵에 URL이 있다는 사실만으로 색인 여부를 단정하지 말고, 제출 뒤의 처리 상태는 검색 도구에서 별도로 확인하세요. 현재 형식과 제출 방법은 Google의 사이트맵 안내를 기준으로 확인할 수 있습니다.

없거나 잘못되면 생기는 일

사이트맵만 관리하고 내부 링크를 방치하지 마세요. 중요한 URL은 사이트맵과 내부 링크 양쪽에서 일관되게 관리하는 편이 좋습니다.

더 흔한 사고는 사이트맵이 있는데 내용이 틀린 경우입니다. 리디렉션되는 URL, 404가 되는 URL, noindex 페이지, canonical이 다른 곳을 가리키는 URL이 섞이면 크롤러가 헛걸음을 반복합니다. 애드브랜치 검사기는 sitemap-discovery로 발견한 사이트맵 파일을 확인합니다. 그 파일이 일반 urlset이면 sitemap-page-inclusion으로 현재 URL 포함 여부도 확인하지만, sitemapindex이면 하위 파일을 요청하지 않으므로 포함 여부는 판정하지 않습니다.

최소 형식

아래는 Google 안내의 기본 형태를 따라 작성한 예시입니다. 실제 생성 결과는 공식 문서의 현재 형식과 대조하세요.

<?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-09-01</lastmod>
  </url>
  <url>
    <loc>https://example.com/guides/sitemap</loc>
    <lastmod>2026-09-03</lastmod>
  </url>
</urlset>

Google은 changefreq와 priority 값을 사용하지 않으며, 정확한 lastmod는 활용할 수 있다고 안내합니다.

크기 제한과 sitemap index

항목제한
사이트맵 파일 하나의 URL 개수50,000개
압축 해제 기준 파일 크기50MB

둘 중 하나라도 넘으면 파일을 나눠 관리하세요. 제한의 원문은 Google의 대형 사이트맵 안내에서 확인하세요.

<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <sitemap>
    <loc>https://example.com/sitemap-posts-1.xml</loc>
    <lastmod>2026-09-03</lastmod>
  </sitemap>
  <sitemap>
    <loc>https://example.com/sitemap-products.xml</loc>
  </sitemap>
</sitemapindex>

robots.txt에 선언하고 제출하기

사이트 운영 환경에서 사용하는 제출 경로를 정하고, robots.txt나 검색 도구의 설정이 그 위치를 가리키는지 확인하세요.

User-agent: *
Allow: /

Sitemap: https://example.com/sitemap.xml

제출 방법과 현재 지원 범위는 Google의 제출 안내를 확인하세요. 파일을 등록했다는 사실만으로 처리나 색인을 추정하지 말고 해당 도구의 결과를 확인합니다.

잘못된 예와 수정된 예

1. 상대 경로와 리디렉션되는 URL

<!-- 잘못된 예 -->
<url><loc>/guides/sitemap</loc></url>
<url><loc>http://example.com/guides/sitemap/</loc></url>

사이트맵에는 운영 중인 최종 canonical URL을 일관되게 적고, 리디렉션되는 변형 URL은 정리하세요.

<!-- 수정된 예 -->
<url><loc>https://example.com/guides/sitemap</loc></url>

2. lastmod를 배포 때마다 오늘 날짜로 갱신

<!-- 잘못된 예: 내용이 그대로인데 매일 갱신 -->
<url>
  <loc>https://example.com/about</loc>
  <lastmod>2026-09-03</lastmod>
</url>

lastmod는 그 페이지의 콘텐츠가 실제로 의미 있게 바뀐 날짜로 관리하세요. 사이트 전체를 빌드할 때마다 오늘 날짜로 덮어쓰면 Google이 요구하는 일관되고 검증 가능한 정확성을 충족하기 어렵습니다.

<!-- 수정된 예: 마지막 실제 수정일 -->
<url>
  <loc>https://example.com/about</loc>
  <lastmod>2025-11-12</lastmod>
</url>

날짜는 2026-09-03 또는 2026-09-03T10:20:00+09:00 형식의 W3C Datetime으로 씁니다.

lastmod를 정확하게 쓰는 법

Google은 lastmod 값이 일관되고 검증 가능하게 정확할 때만 이 값을 사용한다고 안내합니다. 반대로 priority와 changefreq는 무시합니다. 그러니 사이트맵에서 신경 쓸 날짜 요소는 lastmod 하나이고, 그 값이 페이지 본문의 수정일과 맞아야 의미가 있습니다. Google의 사이트맵 안내

정확하게 쓰는 방법은 세 가지로 정리됩니다.

  • 값의 출처는 문서 자체의 수정일이어야 합니다. CMS의 수정 시각, 문서 frontmatter의 updatedAt, 데이터베이스의 updated_at 컬럼처럼 페이지 내용과 함께 바뀌는 값을 그대로 넘기세요.
  • 빌드 시각이나 배포 시각을 찍지 마세요. 정적 사이트 생성기는 기본 설정에서 모든 URL에 빌드 시각을 넣는 경우가 많습니다. 내용이 그대로인 페이지 수백 개가 같은 날짜로 갱신되면, 크롤러 입장에서는 어떤 페이지가 실제로 바뀌었는지 구분할 수 없습니다.
  • 형식은 W3C Datetime입니다. 2026-09-23처럼 날짜만 쓰거나, 2026-09-23T10:00:00+09:00처럼 시각과 시간대까지 씁니다. 2026.09.23이나 Sep 23, 2026 같은 형식은 파싱되지 않습니다.

한 가지 예외가 있습니다. 검사기는 발견한 파일이 sitemap index이면 하위 sitemap 파일을 열지 않습니다. 이 경우 sitemap-lastmod 항목은 현재 URL의 lastmod를 볼 수 없으므로 not-applicable로 표시됩니다. 값이 틀렸다는 뜻이 아니라 판정하지 않았다는 뜻이니, index 구성을 쓰는 사이트는 하위 파일을 직접 열어 확인하세요.

네이버 서치어드바이저의 제출 제한

네이버 서치어드바이저에도 사이트맵과 RSS를 제출할 수 있습니다. 제한이 Google과 조금 다릅니다. 제출 파일은 소유가 확인된 사이트와 같은 도메인에 있어야 하고, 파일 크기는 10MB 미만, 사이트맵의 URL 개수는 50,000개 미만이어야 합니다. RSS를 제출한다면 항목이 최소 1개 있어야 하고 본문 전체가 들어 있어야 합니다. 네이버는 둘 중 사이트맵 제출을 권합니다. 네이버 서치어드바이저 사이트맵·RSS 제출 안내

50MB 기준으로 사이트맵을 나눈 사이트라면 네이버 제출용으로는 파일이 너무 클 수 있습니다. 두 검색엔진에 같은 파일을 쓰려면 10MB 아래로 나누는 편이 간단합니다.

RSS·Atom 피드도 사이트맵으로 받습니다

Google은 XML 사이트맵 외에 RSS 2.0과 Atom 1.0 피드도 사이트맵으로 받습니다. 피드를 제출할 때는 전체 URL 목록을 관리하는 사이트맵과 역할을 나눠 운영하세요. Google의 사이트맵 안내

피드가 있다면 <head>에 alternate 링크로 위치를 알려 두세요.

<link rel="alternate" type="application/rss+xml" title="사이트 이름" href="/rss.xml" />

검사기가 확인하는 항목

이 가이드와 연결된 검사 항목은 네 가지입니다.

  • sitemap-discovery: robots.txt의 Sitemap: 선언이나 기본 경로로 사이트맵 파일을 찾아 응답을 확인합니다.
  • sitemap-page-inclusion: 찾은 파일이 일반 urlset일 때 현재 URL 항목이 있는지 확인합니다.
  • sitemap-lastmod: 현재 URL 항목의 <lastmod>가 있는지, W3C Datetime 형식인지, 관측 시각보다 24시간을 초과한 미래 값인지 확인합니다. 값이 없거나 형식이 틀리거나 허용 범위를 넘는 미래 날짜이면 warning, sitemap index이거나 현재 URL 항목이 없으면 not-applicable입니다.
  • feed-discovery: <head>의 RSS·Atom alternate 링크를 찾습니다. 점수에 들어가지 않는 안내 항목이라 링크가 없으면 info로만 표시됩니다.

검사기는 한 번의 검사에서 실제로 따라간 리디렉션 홉을 포함해 외부 요청을 최대 6회만 보냅니다. 사이트맵을 열지 못한 항목은 unknown으로 남으며, 이는 오류 판정이 아니라 확인하지 못했다는 표시입니다.

적용 시 주의점

  • 사이트맵에 넣는 URL은 canonical URL과 같아야 합니다. 파라미터가 붙은 변형이나 canonical이 다른 페이지를 가리키는 URL은 빼세요. 자세한 내용은 canonical 가이드를 보세요.
  • noindex 페이지, 로그인 후에만 보이는 페이지, 404 페이지는 넣지 않습니다.
  • 사이트맵에 URL을 넣는 것만으로 robots.txt의 Disallow가 풀리지 않습니다. 두 신호가 충돌하면 크롤링은 막힌 채로 남습니다.
  • 사이트맵 URL의 robots.txt 허용 여부는 별도로 확인하세요. robots-txt-path-allowed는 검사한 페이지 경로에 대한 판정이며, 사이트맵 파일의 접근 가능성을 다시 검사하지 않습니다.

자주 묻는 질문

사이트맵을 제출하면 색인이 보장되나요

사이트맵 제출만으로 색인을 단정하지 마세요. 제출 뒤에는 검색 도구에서 각 URL의 상태를 별도로 확인합니다.

페이지가 몇 개면 사이트맵이 필요한가요

페이지 수만으로 결정하지 말고 URL 목록을 정확하게 유지할 수 있는지부터 보세요. 만들었다면 오래된 URL과 잘못된 lastmod가 남지 않도록 운영 절차에 포함합니다.

사이트맵 파일 이름을 꼭 sitemap.xml로 해야 하나요

배포 도구와 제출 설정이 같은 파일 경로를 가리키게 하세요. 특별한 이유가 없다면 운영자가 찾기 쉬운 sitemap.xml 같은 이름을 쓸 수 있습니다.

관련 가이드

변경 이력

  • lastmod 작성법, 네이버 제출 제한, 피드 사이트맵, sitemap-lastmod·feed-discovery 항목 설명을 더하고 ad-branch.com 사이트맵의 lastmod 반영을 안내에 반영했습니다.

Check the evidence

이 페이지를 지금 검사해보기

읽고 있는 페이지나 운영 중인 URL을 넣으면 이 가이드와 연결된 SEO·GEO 항목을 바로 확인할 수 있습니다.

무료 검사 시작

Next reading

관련 문서

robots.txt 작성법과 흔한 실수

크롤러 접근 제어 파일의 문법과 User-agent 그룹, Allow와 Disallow 우선순위 규칙, 사이트를 통째로 막아버리는 실수와 noindex와의 차이를 다룹니다.

가이드 읽기

관련 문서

canonical 태그 완전 가이드

중복 URL 문제를 해결하는 표준 URL 지정 방법, 자기참조 canonical 규칙, 파라미터와 페이지네이션 처리, 리디렉션·hreflang과의 관계를 예제로 설명합니다.

가이드 읽기

관련 문서

SEO 기본 점검 체크리스트

페이지 하나를 검색엔진에 제대로 노출하기 위해 확인할 항목을 우선순위 순서로 정리하고, 항목마다 확인 방법과 고치는 코드까지 함께 다룹니다.

가이드 읽기