사이트맵과 robots.txt 설정, 크롤링을 제어하는 첫 번째 단계

By 디지트미
공유하기

홈페이지를 만든 뒤 구글 서치콘솔에 등록까지 했는데, 일부 페이지가 색인되지 않는 경우가 있습니다. 원인은 사이트맵 미제출이나 robots.txt 설정 문제뿐 아니라, 중복 페이지, canonical 오류, 리다이렉트, 서버 오류(5xx), 크롤링됨/발견됨 – 색인 제외 상태 등 다양한 요인이 함께 작용하는 경우가 많습니다.

사이트맵과 robots.txt는 검색엔진 크롤러에게 사이트의 구조를 알려주고, 어떤 페이지를 방문해도 되는지 지시하는 가장 기본적인 수단입니다. 이 두 파일의 역할을 정확히 이해하고 있어야 크롤링 단계에서 발생하는 문제를 스스로 진단하고 해결할 수 있습니다.

이번 글에서는 사이트맵의 개념과 생성·제출 방법, robots.txt 문법과 설정 원칙, 두 파일이 충돌하는 상황의 처리 기준, 그리고 실무에서 반복되는 설정 오류까지 살펴보겠습니다.

사이트맵과 robots.txt 역할

사이트맵이란 무엇인가

사이트맵 예시 스크린샷

사이트맵(Sitemap)웹사이트에 존재하는 페이지 목록을 XML 형식으로 정리한 파일입니다. 검색엔진 크롤러가 사이트를 탐색할 때, 내부링크만으로는 도달하기 어려운 페이지까지 발견할 수 있도록 전체 URL 목록을 한 번에 전달하는 역할을 합니다.

사이트맵이 없어도 크롤러는 링크를 따라가며 페이지를 찾을 수 있습니다. 하지만 내부링크가 연결되지 않은 페이지, 신규로 추가된 페이지, 깊은 경로에 위치한 페이지는 크롤러가 자연적으로 발견하기까지 시간이 오래 걸리거나 아예 찾지 못할 수 있습니다. 사이트맵은 이런 사각지대를 줄여주는 보조 수단입니다.

구글 공식 문서에 따르면, 사이트맵은 색인을 보장하는 것이 아니라 크롤러에게 페이지 존재를 알리는 힌트입니다. 페이지 자체에 색인을 막는 설정(noindex, robots.txt 차단)이 있으면 사이트맵에 포함되어 있어도 크롤링이 제한되면 정상적인 색인은 어렵습니다. 다만 robots.txt로 차단된 경우에도 외부 링크가 있으면 URL 자체는 검색 결과에 노출될 수 있습니다.

사이트맵 생성과 제출 실전

사이트맵을 만드는 방법은 사이트 환경에 따라 다릅니다.

워드프레스를 사용하는 경우, Yoast SEO나 Rank Math 플러그인을 설치하면 사이트맵이 자동으로 생성됩니다. 별도 설정 없이 도메인/sitemap_index.xml 경로에서 확인할 수 있습니다. 커스텀 개발 사이트라면 XML 형식에 맞춰 직접 작성하거나, Screaming Frog 같은 크롤링 도구로 자동 생성할 수 있습니다.

생성한 사이트맵은 구글 서치콘솔의 ‘사이트맵’ 메뉴에서 URL을 입력해 제출합니다. 제출 후에는 처리 상태가 ‘성공’, ‘가져올 수 없음’, ‘오류 있음’ 중 하나로 표시됩니다. 오류가 있다면 사이트맵 내 URL이 존재하지 않는 페이지(404), XML 문법 오류뿐 아니라, robots.txt 차단 URL 포함, 리다이렉트 URL 포함, 서버 오류, 색인 불가 URL 포함 등 다양한 원인이 있을 수 있습니다.

사이트맵에 포함해야 할 페이지와 제외해야 할 페이지의 기준은 명확합니다.

  • 포함 대상: 색인이 필요한 모든 페이지 (서비스 페이지, 블로그 글, 메인, 주요 랜딩 페이지)
  • 제외 대상: 관리자 페이지, 검색 결과 페이지, 리다이렉트되는 이전 URL, noindex가 설정된 페이지

디지트미의 경우, 사이트 납품 시 사이트맵에 포함된 URL과 실제 색인 대상 페이지가 일치하는지 교차 검증하는 과정을 표준 절차로 운영하고 있습니다. 사이트맵에 404 페이지나 리다이렉트 URL이 섞여 있으면 크롤링 예산이 낭비되기 때문입니다.

robots.txt 문법과 설정 원칙

robots.txt 예시 스크린샷

robots.txt는 웹사이트 루트 디렉토리에 위치하는 텍스트 파일로, 검색엔진 크롤러에게 어떤 경로에 접근할 수 있고 어떤 경로를 피해야 하는지 지시합니다. 크롤러는 사이트를 방문할 때 가장 먼저 이 파일을 확인합니다.

기본 문법은 세 가지 요소로 구성됩니다.

robots.txt 문법
  • User-agent: 규칙을 적용할 크롤러를 지정합니다. *은 모든 크롤러를 의미합니다.
  • Disallow: 접근을 차단할 경로를 지정합니다.
  • Allow: Disallow 규칙의 예외를 지정합니다.

예시:
User-agent: *
Disallow: /admin/
Disallow: /cart/
Allow: /

이 설정은 모든 크롤러에게 /admin/과 /cart/ 경로를 차단하고, 나머지는 허용한다는 의미입니다. 추가로 사이트맵 위치를 robots.txt 안에 명시할 수 있습니다. 파일 마지막 줄에 Sitemap: https://example.com/sitemap.xml을 추가하면 크롤러가 사이트맵을 자동으로 참조합니다.

주의할 점은 robots.txt는 크롤링을 제어하는 것이지 색인을 제어하는 것이 아니라는 것입니다. Disallow로 차단한 페이지라도, 다른 사이트에서 링크가 걸려 있으면 구글이 URL 자체는 색인할 수 있습니다. 색인을 완전히 막으려면 해당 페이지에 noindex 메타 태그를 넣고, robots.txt에서는 크롤링을 허용해야 합니다.

사이트맵과 robots.txt가 충돌할 때

사이트맵과 robots.txt이 충돌시

사이트맵에는 포함되어 있지만 robots.txt에서 해당 경로를 차단하고 있는 경우가 실무에서 종종 발생합니다. 이때 구글의 처리 방식은 robots.txt 우선입니다. 사이트맵에 URL이 있더라도, robots.txt가 해당 경로의 크롤링을 막고 있으면 크롤러는 방문하지 않습니다.

이 충돌은 구글 서치콘솔 색인 보고서에서 ‘사이트맵에서 제출한 URL이 robots.txt에 의해 차단됨‘이라는 경고로 확인할 수 있습니다. 해결 방법은 두 가지 중 하나입니다.

  1. 해당 페이지가 색인 대상이라면: robots.txt에서 차단 규칙을 제거합니다
  2. 해당 페이지가 색인 대상이 아니라면: 사이트맵에서 해당 URL을 제거합니다

원칙은 간단합니다. 사이트맵에 들어가는 URL은 크롤링과 색인이 모두 허용된 페이지여야 합니다. 사이트맵과 robots.txt는 서로 모순 없이 같은 방향을 가리키고 있어야 합니다.

robots.txt에서 차단한 페이지가 검색에 나오는 경우도 있나요?

가능합니다. 외부 사이트에서 해당 URL로 링크를 걸면, 구글이 페이지 내용은 모르지만 URL 자체를 색인하는 경우가 있습니다. 이때 검색 결과에 “이 페이지에 대한 정보가 없습니다”라는 설명이 표시됩니다. 완전히 검색에서 제거하려면 noindex 태그를 사용해야 합니다

자주 발생하는 설정 오류와 해결법

실무에서 반복적으로 발견되는 robots.txt와 사이트맵 관련 오류를 정리합니다.

  1. 개발 환경의 크롤링 차단이 운영 서버에 남아 있는 경우
    개발 중에 Disallow: /를 설정해 두었다가, 사이트 오픈 후 제거하지 않은 채로 방치하는 실수입니다. 오픈 직후 반드시 robots.txt를 확인해야 합니다.
  2. 사이트맵에 404 페이지가 포함된 경우
    페이지를 삭제하거나 URL을 변경한 뒤 사이트맵을 갱신하지 않으면, 크롤러가 존재하지 않는 URL을 계속 방문합니다. 사이트맵은 페이지 변경 시마다 자동 갱신되는 구조가 필요합니다.
  3. robots.txt에서 CSS·JS 파일을 차단한 경우
    구글 크롤러는 페이지 렌더링을 위해 CSS와 JavaScript 파일에 접근해야 합니다. 이 파일들을 차단하면 구글이 페이지를 제대로 렌더링하지 못해 색인 품질이 떨어집니다.
  4. 사이트맵 URL이 robots.txt에 명시되지 않은 경우
    서치콘솔에서 직접 제출했다면 문제없지만, robots.txt에 Sitemap 줄을 추가해 두면 서치콘솔 외의 검색엔진(Bing 등)도 사이트맵을 자동으로 찾을 수 있습니다.

디지트미에서는 사이트 오픈 전 체크리스트에 robots.txt 검증, 사이트맵 유효성 검사, GSC 제출 확인 세 항목을 필수로 포함하고 있습니다. 오픈 후 발견되는 크롤링 문제의 대부분이 이 세 가지에서 시작되기 때문입니다.

테크니컬 SEO 전반 점검은 테크니컬 SEO 완벽 가이드, 검색엔진이 읽는 기준에서 확인하세요.

자주 묻는 질문

사이트맵은 자동으로 생성되나요?

워드프레스에서 Yoast SEO, Rank Math 같은 SEO 플러그인을 사용하면 자동으로 생성됩니다. 커스텀 사이트라면 직접 작성하거나 크롤링 도구로 생성해야 합니다. 자동 생성 플러그인을 사용하더라도, 불필요한 페이지(태그 페이지, 작성자 페이지 등)가 사이트맵에 포함되어 있지 않은지 확인하는 것이 좋습니다.

robots.txt로 특정 페이지를 검색에서 숨길 수 있나요?

robots.txt의 Disallow는 크롤링을 차단하는 것이지 색인을 막는 것이 아닙니다. 외부 링크가 있으면 URL 자체는 색인될 수 있습니다. 검색 결과에서 완전히 제거하려면 해당 페이지에 noindex 메타 태그를 추가하고, robots.txt에서는 크롤링을 허용해야 합니다.

사이트맵을 제출하면 바로 색인되나요?

사이트맵 제출은 구글에게 페이지 존재를 알리는 것이지, 색인을 보장하는 것은 아닙니다. 구글은 페이지 품질, 크롤링 허용 여부, 중복 여부 등을 종합적으로 판단한 뒤 색인 여부를 결정합니다. 제출 후 색인까지는 수일에서 수 주가 소요될 수 있습니다.

사이트맵과 robots.txt는 검색엔진 크롤러와 소통하는 가장 첫 번째 접점입니다. 이 두 파일이 정확하게 설정되어 있지 않으면 이후의 SEO 작업이 모두 공중에 뜹니다. 크롤링 구조 점검이 필요하다면 전문가의 테크니컬 SEO 진단을 받아보시기 바랍니다.