검색 엔진이 우리 사이트의 절반을 보지 못하고 있다 — robots.txt와 sitemap.xml로 만드는 검색 노출의 기본기

검색 결과에 우리 사이트의 신규 페이지가 한 달이 지나도 보이지 않는다. 메인은 잡혔는데, 상세 페이지의 절반이 누락돼 있다. 사장님이 "콘텐츠를 더 올려야 하나" 고민하기 전에, 먼저 확인해야 하는 두 파일이 있다. robots.txtsitemap.xml이다.

이 두 파일은 사이트의 첫인사가 아니라, 검색 엔진의 크롤러가 "이 사이트의 어디부터 보면 되는지", "어디는 건드리지 않아도 되는지"를 결정하는 기준이다. 디자인이나 콘텐츠가 아니라 색인의 속도와 범위를 바꾼다.

1. robots.txt는 크롤러의 출입 안내문이다

robots.txt는 사이트 루트 — 예를 들어 우리도메인.com/robots.txt — 에 놓이는 한 장짜리 텍스트 파일이다. 검색 엔진 크롤러가 사이트에 도착하면 가장 먼저 이 파일을 읽고, 어떤 경로를 보고 어떤 경로를 건너뛰어야 하는지 확인한다.

User-agent: *
Disallow: /admin
Disallow: /search?
Sitemap: https://우리도메인.com/sitemap.xml

관리자 페이지나 내부 검색 결과처럼 검색에 노출되어서는 안 되는 경로를 Disallow로 막고, 마지막 줄에 사이트맵 위치를 알려준다. 한 가지 오해하지 말아야 할 점은, robots.txt는 보안이 아니라 "예의"라는 것이다. 크롤러에게 알려주는 신호일 뿐, 진짜 보호가 필요한 페이지는 로그인이나 인증으로 따로 막아야 한다.

2. sitemap.xml은 사이트의 전체 지도다

robots.txt가 "여기는 가지 마라"라면, sitemap.xml은 "여기 페이지가 있다"고 직접 알려주는 지도다. 사이트의 공개 페이지 URL을 한 번에 모아두는 XML 파일이다.

왜 필요할까. 크롤러는 메인에서 시작해 링크를 따라가며 사이트를 탐색한다. 그런데 메인에서 네 번 클릭해야 닿는 상세 페이지나, 한 번도 다른 페이지에서 링크되지 않은 신규 글은 영영 발견되지 않을 수 있다. sitemap.xml은 그런 외딴 페이지까지 목록으로 직접 건네주는 역할이다.

각 항목에는 URL, 마지막 수정일, 변경 빈도, 우선순위가 들어간다. 이 중 가장 중요한 것은 마지막 수정일(lastmod)이다. 글을 새로 올릴 때마다 lastmod가 갱신되면, 크롤러는 "여기 새것이 있다"고 인식해 더 빨리 색인한다.

3. 작은 사이트는 동적 생성, 큰 사이트는 분할

페이지가 100개 이하라면 사이트맵을 손으로 한 번 만들고 갱신하는 것도 가능하다. 하지만 글이 매주 늘어나는 블로그나 상품이 수백 개 있는 쇼핑몰이라면, 사이트맵은 자동으로 생성되어야 한다.

대부분의 도구는 사이트맵 자동 생성을 지원한다. 라라벨, 워드프레스, Next.js, 아임웹, 카페24 모두 플러그인이나 빌트인 기능으로 해결된다. 수동 갱신은 잊는 순간 무용지물이 되기 때문에, 자동화는 선택이 아니라 기본이다.

사이트맵 한 파일에는 5만 URL, 50MB 용량 제한이 있다. 그 이상이라면 사이트맵 인덱스(sitemap index)를 만들어 여러 개로 분할한다. 카테고리별, 콘텐츠 타입별로 나누면 점검도 한결 수월해진다.

4. 만들었다고 끝이 아니다 — 서치 콘솔에 제출하라

사이트맵을 만들고 robots.txt에 적어두면 크롤러는 결국 찾아오지만, 구글 서치 콘솔네이버 서치 어드바이저에 직접 제출하면 색인 속도가 훨씬 빨라진다.

제출 후에는 두 가지를 확인한다. 첫째, 제출한 URL 중 몇 개가 실제로 색인되었는지. 둘째, 어떤 URL이 "검색됨, 색인되지 않음" 상태로 빠져 있는지. 후자가 많다면 콘텐츠 품질이나 중복 문제가 있다는 신호다.

국내 비즈니스라면 구글, 네이버, 다음(카카오 검색 등록) 세 채널 모두 등록해두는 것이 안전하다. 각 채널마다 색인 규칙이 조금씩 달라서, 한쪽에만 의존하면 검색 트래픽의 절반을 놓치기 쉽다.

5. 흔한 실수 — 막아야 할 곳을 풀고, 풀어야 할 곳을 막는다

가장 빈번한 사고는 두 가지다. 첫째, robots.txt에 Disallow: /만 적어두고 잊는다. 개발 단계에서 사이트 전체를 막아두고 런칭 후 푸는 것을 깜빡한 경우다. 사이트가 검색에 단 한 페이지도 잡히지 않는다면 이걸 먼저 확인해야 한다.

둘째, 사이트맵에 비공개 페이지나 noindex 페이지가 섞여 있다. 검색 엔진은 "이 페이지를 색인하라"는 신호와 "색인하지 마라"는 신호를 동시에 받으면 혼란스러워하고, 결과적으로 사이트 전체 평가에 부정적인 영향이 갈 수 있다. 사이트맵에는 색인되어야 하는 페이지만 넣는다는 원칙을 지킨다.

그 외에도 HTTPS 사이트인데 sitemap.xml의 URL이 HTTP로 적혀 있거나, www 유무가 일관되지 않거나, robots.txt가 캐시에 걸려 옛 내용이 계속 노출되는 경우가 있다. 한 번 만들고 잊지 말고, 분기에 한 번은 점검해야 한다.

마무리

robots.txt와 sitemap.xml은 디자인이 화려한 페이지도, 광고비가 들어가는 영역도 아니다. 하지만 검색 엔진이 우리 사이트를 처음 만났을 때 첫인상을 결정짓는, 가장 조용한 기본기다.

새 글이 검색에 안 잡히는지, 신규 상품이 늘 며칠씩 늦게 노출되는지 점검하고 싶다면 두 파일부터 열어 보시기 바란다. CYAN 에이전시는 사이트 제작 단계부터 robots.txt와 사이트맵 자동 생성을 표준으로 포함해 운영해 왔으며, 기존 사이트의 색인 누락 진단도 함께 돕고 있다. 사이트를 새로 만들든, 기존 사이트를 다듬든, 검색 노출의 첫 단추는 이 두 파일에서 시작된다.