새 사이트를 열고 "왜 검색에 안 잡히지?" 하는 경우, 절반은 두 파일이 빠져 있습니다. sitemap.xml 과 robots.txt 입니다. 검색엔진에게 우리 사이트의 지도와 출입 규칙을 안 준 셈입니다. 이 가이드에서는 두 파일의 역할, 올바른 설정, 그리고 실무에서 자주 터지는 사고를 정리합니다.

두 파일의 역할
- sitemap.xml — 우리 사이트에 어떤 페이지가 있는지 목록을 검색엔진에 알려줍니다. 페이지가 많거나 내부 링크가 약한 사이트일수록 효과가 큽니다.
- robots.txt — 검색 크롤러가 무엇을 읽고 무엇을 읽지 말지 안내합니다. 관리자·검색결과·중복 페이지 등을 크롤링에서 제외할 때 씁니다.
둘은 역할이 다릅니다. 사이트맵은 "여기 있어요", robots는 "여기는 보지 마세요"입니다. 헷갈려서 robots로 색인을 막으려다 사고가 나는 경우가 많습니다.
sitemap.xml 만들기
대부분의 빌더·CMS는 사이트맵을 자동 생성합니다. 직접 만든다면 각 URL에 마지막 수정일(lastmod) 정도만 넣어도 충분합니다. 핵심은 다음입니다.
- 실제로 색인되길 원하는 URL만 넣습니다(중복·파라미터 URL 제외).
- 새 글을 올리면 사이트맵에 자동 반영되는 구조가 이상적입니다.
- 사이트맵 자체는 루트(/sitemap.xml)에 두는 것이 관례입니다.
robots.txt 기본 문법
robots.txt 는 단순합니다. 하지만 이 단순함이 사고를 부릅니다.
User-agent: *— 모든 크롤러 대상.Disallow: /admin/— 관리자 경로 크롤링 제외.Allow: /— 허용(기본).Sitemap: https://도메인/sitemap.xml— 사이트맵 위치 안내.
가장 위험한 한 줄: Disallow: /
개발 중에는 사이트 전체를 크롤링에서 막아두는 경우가 많습니다. Disallow: / 한 줄이면 사이트 전체가 검색에서 빠집니다. 문제는 오픈할 때 이걸 푸는 것을 잊는 것입니다. 멀쩡한 사이트가 몇 주째 검색에 0건으로 잡히는 사고의 절대다수가 이 한 줄입니다. 공개 직후 robots.txt 를 열어 이 줄이 남아 있는지 반드시 확인하세요.
robots로 "색인"을 막을 수 없다
흔한 오해가 있습니다. robots.txt 의 Disallow 는 "크롤링(읽기)"을 막을 뿐, "색인(검색결과 노출)"을 보장 차단하지 못합니다. 외부 링크가 있으면 내용 없이 URL만 검색에 뜰 수 있습니다. 특정 페이지를 검색결과에서 확실히 빼려면 그 페이지에 noindex 메타 태그를 넣어야 합니다. robots와 noindex는 용도가 다릅니다.
제출까지가 끝
두 파일을 루트에 두는 것으로 끝이 아닙니다. 구글 서치 콘솔에 사이트를 등록하고 사이트맵을 제출한 뒤, 며칠 후 색인 현황(커버리지)을 확인해야 비로소 "검색에 올라가는" 흐름이 시작됩니다. 제출 후 색인 오류가 뜨면 하나씩 해결합니다.
점검 체크리스트
- /robots.txt 에
Disallow: /가 남아 있지 않은가. - /sitemap.xml 이 실제 페이지 목록을 담고 있는가.
- robots.txt 에 Sitemap 위치가 명시돼 있는가.
- 서치 콘솔에 사이트맵 제출·색인 현황 확인.
- 검색결과에서 빼야 할 페이지는 noindex 로 처리.
동적 URL·중복 페이지 다루기
쇼핑몰·게시판은 정렬·필터·페이지 번호 때문에 같은 내용이 여러 주소로 생깁니다(?sort=price, ?page=2 등). 이를 방치하면 검색 점수가 여러 주소로 분산됩니다.
- canonical 태그로 "대표 주소는 이것"이라고 알려 줍니다.
- 검색에 불필요한 파라미터 URL은 사이트맵에서 제외합니다.
- 정렬·필터 결과처럼 색인 가치가 없는 페이지는 noindex 를 고려합니다.
큰 사이트의 사이트맵 전략
페이지가 수천 개 이상이면 사이트맵 하나로 부족합니다.
- 사이트맵 인덱스로 여러 사이트맵을 묶습니다(상품·글·카테고리별 분리).
- 다국어 사이트는 hreflang 으로 언어·지역 버전을 연결합니다.
- 최신성이 중요한 뉴스·블로그는 lastmod 를 정확히 유지합니다.
크롤링 예산을 낭비하지 않기
검색엔진이 한 사이트를 크롤링하는 양에는 한계가 있습니다. 불필요한 중복·파라미터 페이지를 잔뜩 크롤링하게 두면, 정작 중요한 페이지가 늦게 색인됩니다. robots 로 불필요한 경로를 줄이고, 사이트맵으로 중요한 페이지를 명확히 알려 주면, 한정된 크롤링이 가치 있는 곳에 쓰입니다. 작은 사이트라면 신경 쓸 필요가 적지만, 페이지가 많아질수록 이 "예산" 관리가 중요해집니다.
구조화 데이터와 함께 쓰기
사이트맵·robots 로 "읽히게" 만들었다면, 구조화 데이터로 "잘 보이게" 만들 차례입니다. 사이트맵이 검색엔진을 페이지로 데려오는 길이라면, 구조화 데이터는 그 페이지의 의미(제목·FAQ·작성일)를 정확히 전달해 검색결과를 풍부하게 합니다. 둘은 함께 갈 때 효과가 큽니다. 색인이 안 되면 구조화 데이터도 소용없고, 색인만 되고 구조화가 없으면 밋밋하게 노출됩니다.
정기 점검 루틴
사이트맵·robots 는 한 번 설정하고 잊기 쉽지만, 사이트가 자라면 다시 봐야 합니다.
- 새 섹션·카테고리가 사이트맵에 반영됐는지.
- 실수로 중요한 경로가 robots 에 막히지 않았는지.
- 서치 콘솔의 색인 커버리지에 오류가 늘지 않았는지.
분기에 한 번 정도 이 세 가지만 확인해도, 검색 노출이 조용히 새는 것을 막을 수 있습니다.
한 줄 요약
sitemap.xml 은 "여기 페이지가 있어요", robots.txt 는 "여기는 보지 마세요"입니다. 둘을 혼동해 robots 로 색인을 막으려다 사고가 나는 경우가 많습니다. 공개 직후 Disallow: / 가 남아 있지 않은지 확인하고, 사이트맵을 서치 콘솔에 제출한 뒤 색인 현황을 며칠 뒤 점검하세요. 이 단순한 두 파일을 제대로 다루는 것만으로, 검색 노출의 출발이 크게 달라집니다.
색인 확인을 습관으로
사이트맵을 제출했다고 모든 페이지가 바로 검색에 뜨는 것은 아닙니다. 서치 콘솔의 색인 현황에서 "제출 대비 실제 색인된 수"를 보고, 색인에서 제외된 페이지가 있다면 이유(중복·noindex·크롤 차단)를 하나씩 확인합니다. 특히 새로 추가한 중요한 페이지가 색인되지 않았다면 "URL 검사" 도구로 직접 색인을 요청할 수 있습니다. 이 확인을 습관으로 만들면, 공들여 쓴 글이 검색에 안 잡힌 채 방치되는 일을 막습니다.
넥서스아이 빌더로 만든 사이트는 사이트맵이 자동 생성되어, 글을 올리면 목록에 바로 반영되고 robots 기본값도 안전하게 설정됩니다. 직접 관리가 번거롭다면 자동화된 환경이 사고를 줄여 줍니다.



