SEO

사이트맵

Sitemap(사이트맵)은 웹사이트에 존재하는 페이지, 이미지, 동영상 등의 URL 목록을 검색엔진에 제공하는 구조화된 파일입니다. 검색엔진 크롤러가 사이트를 더 효율적으로 탐색하고 색인할 수 있도록 도와주는 일종의 '지도' 역할을 합니다.

Sitemap(사이트맵)은 웹사이트에 존재하는 페이지, 이미지, 동영상 등의 URL 목록을 검색엔진에 제공하는 구조화된 파일입니다. 검색엔진 크롤러가 사이트를 더 효율적으로 탐색하고 색인할 수 있도록 도와주는 일종의 '지도' 역할을 합니다.

왜 중요한가

검색엔진은 링크를 따라가며 웹페이지를 발견합니다. 그러나 새로 생성된 페이지, 내부 링크가 부족한 깊은 페이지, 또는 수십만 개 이상의 대규모 페이지를 보유한 사이트에서는 크롤러가 모든 페이지를 자연스럽게 발견하기 어렵습니다. 사이트맵은 이러한 페이지를 검색엔진에 직접 알려줌으로써 크롤링 효율을 높이고, 색인 누락을 방지합니다.

특히 다음과 같은 경우 사이트맵이 필수적입니다:

  • 페이지 수가 500개 이상인 대규모 사이트
  • 신규 사이트로 외부 백링크가 거의 없는 경우
  • 이미지·동영상 등 리치 미디어 콘텐츠가 많은 경우
  • 뉴스 사이트처럼 콘텐츠가 빈번하게 업데이트되는 경우

사이트맵은 발견과 재크롤링을 돕는 힌트이지, 색인을 보장하는 장치는 아닙니다. Google은 사이트맵에 있는 URL을 크롤링하더라도 콘텐츠 품질, 중복 여부, canonical 선택, noindex 지시, 렌더링 문제 등에 따라 색인하지 않을 수 있습니다.

종류

사이트맵은 용도에 따라 여러 유형으로 나뉩니다.

XML Sitemap: 가장 기본적이고 널리 사용되는 형식입니다. <url>, <loc>, <lastmod> 등의 태그를 사용하여 각 페이지의 URL과 메타데이터를 구조화합니다.

이미지 사이트맵(Image Sitemap): 이미지 콘텐츠를 별도로 검색엔진에 알려주는 형식입니다. 이미지 검색 노출을 극대화하고 싶을 때 유용합니다.

동영상 사이트맵(Video Sitemap): 동영상 콘텐츠의 제목, 설명, 재생 시간 등 메타데이터를 포함하여 Google이 동영상을 더 잘 이해하도록 돕습니다.

뉴스 사이트맵(News Sitemap): 뉴스 퍼블리셔를 위한 특수 형식으로, 최근 2일 이내에 게시된 기사만 포함해야 합니다.

사이트맵 인덱스(Sitemap Index): 하나의 사이트맵 파일이 50,000개 URL 또는 50MB를 초과할 경우, 여러 개의 사이트맵을 하나의 인덱스 파일로 묶어 관리합니다.

HTML Sitemap: 검색엔진이 아닌 사용자를 위한 사이트맵입니다. 사이트 내 주요 페이지 링크를 모아놓은 페이지로, 탐색 편의성을 높입니다.

설정 가이드

1단계 — 사이트맵 생성

사이트맵을 생성하는 방법은 세 가지입니다. 첫째, CMS나 프레임워크의 내장 기능 또는 플러그인(예: WordPress의 Yoast SEO)을 사용하는 방법입니다. 둘째, Screaming Frog 같은 크롤링 도구로 자동 생성하는 방법입니다. 셋째, 직접 XML 파일을 작성하는 방법이며, 소규모 사이트에 적합합니다.

2단계 — 필수 규칙 준수

  • 파일당 URL 수는 50,000개 이하, 파일 크기는 50MB 이하로 유지합니다
  • UTF-8 인코딩을 사용합니다
  • URL은 반드시 절대 경로(예: https://example.com/page)로 작성합니다
  • 정규 URL(canonical URL)만 포함합니다. 리다이렉트되는 URL이나 중복 페이지는 제외합니다
  • <lastmod>는 실제로 의미 있는 콘텐츠 변경이 있었을 때만 정확한 시각으로 기재합니다. 부정확한 수정일은 검색엔진이 해당 신호를 무시하게 만들 수 있습니다.

3단계 — 사이트맵 배치 및 제출

사이트맵 파일은 사이트 루트 디렉토리(예: https://example.com/sitemap.xml)에 배치합니다. robots.txt 파일에 Sitemap: https://example.com/sitemap.xml을 추가하고, Google Search Console의 "사이트맵" 메뉴에서 URL을 제출합니다.

4단계 — 자동 업데이트 설정

콘텐츠가 추가·수정·삭제될 때마다 사이트맵이 자동으로 갱신되도록 설정합니다. <lastmod> 태그에는 실제 수정 시점의 정확한 날짜를 기재하여 검색엔진이 변경된 페이지를 우선적으로 재크롤링하도록 유도합니다.

대규모 사이트라면 포스트, 카테고리, 이미지, 동영상처럼 성격별 하위 사이트맵을 나누고 이를 사이트맵 인덱스에서 참조하도록 구성합니다. Bing 등 일부 검색엔진은 더 빠른 발견을 위해 IndexNow도 지원하지만, XML 사이트맵과 내부 링크를 대체하는 수단이 아니라 보완 수단으로 봐야 합니다.

자주 하는 실수

noindex 페이지를 사이트맵에 포함하는 경우: noindex 태그가 설정된 페이지나 robots.txt로 차단된 페이지를 사이트맵에 넣으면 검색엔진에 상충되는 신호를 보내게 됩니다. 사이트맵에는 색인을 원하는 페이지만 포함해야 합니다.

깨진 링크(404) 포함: 삭제된 페이지의 URL이 사이트맵에 남아 있으면 Google Search Console에서 "제출된 URL을 찾을 수 없음(404)" 오류가 발생합니다. 정기적으로 사이트맵을 점검하여 유효하지 않은 URL을 제거해야 합니다.

리다이렉트되거나 canonical이 아닌 URL 포함: 사이트맵에는 최종 canonical URL만 넣어야 합니다. 과거 URL, 추적 파라미터가 붙은 URL, 대체 canonical 버전을 제출하면 크롤 버짓을 낭비하고 진단 결과를 복잡하게 만듭니다.

날짜 형식 오류: SEMrush의 조사에 따르면, XML 사이트맵 오류의 약 62%가 날짜 형식 문제에서 발생합니다. <lastmod>는 반드시 W3C Datetime 형식(예: 2026-03-17 또는 2026-03-17T09:00:00+09:00)을 따라야 합니다.

URL 형식 불일치: httpshttp, www와 non-www를 혼용하면 검색엔진이 같은 페이지를 별개로 인식할 수 있습니다. 사이트맵 내 모든 URL은 하나의 일관된 형식을 사용해야 합니다.

사이트맵을 생성만 하고 제출하지 않는 경우: 사이트맵 파일을 만들었더라도 Google Search Console이나 Bing Webmaster Tools에 제출하지 않으면, 검색엔진이 이를 발견하기까지 상당한 시간이 소요될 수 있습니다.

Sources:

inblog에서 활용하기

inblog는 블로그의 XML 사이트맵을 동적으로 생성하고, 포스트 발행/삭제 시 자동 반영됩니다.