워드프레스 사이트맵과 robots.txt 제대로 이해하기
워드프레스 기본 사이트맵(wp-sitemap.xml)과 SEO 플러그인 사이트맵이 겹칠 때 정리하는 법, robots.txt가 막는 것과 막지 못하는 것, 검색 엔진 가시성 설정 확인까지 정리했습니다.

이 글의 순서 (6)
사이트맵과 robots.txt는 워드프레스를 설치하면 자동으로 생기지만, 무엇을 하는 파일인지 모른 채 두는 경우가 많습니다. 이 글은 두 파일의 역할을 먼저 구분하고, 기본 사이트맵과 SEO 플러그인 사이트맵이 겹칠 때 정리하는 법, robots.txt로 할 수 있는 일과 없는 일, 검색을 막는 설정이 켜져 있지 않은지 확인하는 순서로 설명합니다. 구글 검색 센터와 워드프레스 공식 문서를 기준으로 했습니다.
사이트맵과 robots.txt는 하는 일이 다릅니다
사이트맵은 검색엔진에 "내 사이트에 이런 주소들이 있습니다"라고 알려 주는 목록입니다. 도서관의 도서 목록과 비슷합니다. 목록에 있다고 해서 책이 반드시 서가에 꽂히는 것은 아니듯, 사이트맵에 넣은 주소도 크롤링이나 색인이 보장되지는 않습니다. 구글 서치 콘솔 도움말도 사이트맵에서 발견된 URL이 크롤링되거나 색인된다는 보장은 없다고 설명합니다.
robots.txt는 반대로 "이 경로에는 들어오지 마세요"라고 크롤러에게 요청하는 안내문입니다. 출입을 조절하는 파일이지, 검색 결과에서 페이지를 빼는 파일이 아닙니다. 이 차이를 헷갈리면 뒤에서 설명할 흔한 실수가 생깁니다.
- 사이트맵: 크롤링해 줬으면 하는 주소 목록. 발견을 돕는 역할
- robots.txt: 크롤링하지 말아 달라는 요청. 서버 부담 관리가 주 목적
- noindex: 검색 결과에 넣지 말아 달라는 요청. 색인 제외는 이것으로 합니다
워드프레스 기본 사이트맵 wp-sitemap.xml 확인하기
워드프레스는 5.5 버전부터 사이트맵을 기본으로 만듭니다. 주소는 내도메인/wp-sitemap.xml 이고, 이 파일은 여러 하위 사이트맵을 묶은 목차(사이트맵 색인) 역할을 합니다. 공개된 글 유형과 분류(카테고리·태그), 작성자 보관함, 홈페이지가 기본으로 포함되며, 하위 사이트맵 하나에는 기본적으로 최대 2,000개 항목이 들어갑니다.
워드프레스가 만드는 robots.txt에도 이 사이트맵 주소가 자동으로 들어가, 검색엔진이 찾기 쉽게 되어 있습니다. 다만 아래 경우에는 기본 사이트맵이 보이지 않을 수 있습니다.
- 브라우저에서 내도메인/wp-sitemap.xml 을 엽니다.
- 목록이 보이면 그 안의 wp-sitemap-posts-post-1.xml 같은 하위 주소를 눌러 실제 글 주소가 들어 있는지 확인합니다.
- 404가 나오거나 다른 주소로 넘어가면, SEO 플러그인이 기본 사이트맵을 대신하고 있거나 '검색 엔진 가시성' 설정이 켜져 있는 경우가 많습니다. 아래 두 항목을 차례로 확인하세요.
SEO 플러그인 사이트맵과 겹칠 때 정리하는 법
Yoast SEO나 Rank Math 같은 SEO 플러그인은 자체 사이트맵을 만들며, 보통 주소는 내도메인/sitemap_index.xml 입니다. 워드프레스 코어 개발 노트의 답변에 따르면 Yoast SEO는 자기 사이트맵을 쓰면서 워드프레스 기본 사이트맵을 끕니다. 그래서 플러그인을 설치한 뒤에는 wp-sitemap.xml 이 사라지거나 다른 주소로 연결될 수 있고, 이것은 정상입니다.
문제는 사이트맵이 여러 군데서 동시에 만들어질 때입니다. Yoast 도움말은 example.com/sitemap.xml 에 있는 사이트맵은 Yoast가 만든 것이 아니라 다른 플러그인이나 워드프레스 코어가 만든 것일 수 있다며, 다른 사이트맵 플러그인을 끄고 FTP로 올려 둔 실제 사이트맵 파일을 지운 뒤 Yoast 사이트맵을 켜라고 안내합니다. 원칙은 간단합니다. 실제로 쓰는 사이트맵을 하나로 정하고, 나머지는 끄거나 지웁니다.
- 지금 쓰는 SEO 플러그인의 사이트맵 설정 화면에서 사이트맵 보기 링크를 눌러 실제 주소를 확인합니다. Yoast SEO는 Yoast SEO > Settings > Site features의 Technical SEO 아래 XML sitemaps 토글에서 켜고 볼 수 있습니다.
- 사이트맵 기능이 있는 플러그인이 두 개 이상 켜져 있다면 하나만 남깁니다.
- 호스팅 파일 관리자나 FTP로 사이트 최상위 폴더에 sitemap.xml 같은 실제 파일이 남아 있는지 보고, 예전에 수동으로 올린 것이면 삭제합니다.
- 내도메인/robots.txt 를 열어 Sitemap: 줄이 실제로 쓰는 사이트맵 주소를 가리키는지 확인합니다.
- 서치 콘솔 Sitemaps 보고서에 예전 사이트맵이 제출되어 있다면 새 주소를 제출하고, 더 이상 쓰지 않는 주소는 보고서에서 삭제합니다.
robots.txt가 막는 것과 막지 못하는 것
구글 검색 센터는 robots.txt를 검색 결과에서 페이지를 숨기는 수단으로 쓰지 말라고 분명히 경고합니다. robots.txt로 막아도 다른 페이지에서 그 주소로 링크가 걸려 있으면, 구글은 방문하지 않고도 URL을 색인할 수 있습니다. 이때 검색 결과에는 설명 없이 주소만 보일 수 있습니다.
페이지를 검색 결과에서 빼고 싶다면 noindex를 씁니다. 여기서 중요한 함정이 있습니다. noindex가 작동하려면 크롤러가 그 페이지에 들어와서 noindex 표시를 읽어야 합니다. robots.txt로 같은 페이지를 막아 두면 크롤러는 noindex를 영영 확인하지 못하고, 페이지가 검색 결과에 계속 남을 수 있습니다.
또 robots.txt는 강제력이 없습니다. 구글봇처럼 잘 만들어진 크롤러는 규칙을 따르지만 따르지 않는 크롤러도 있습니다. 회원 전용 자료나 비공개 파일처럼 정말 숨겨야 하는 것은 비밀번호 보호 같은 다른 방법을 써야 합니다.
- 막을 수 있는 것: 규칙을 지키는 크롤러의 특정 경로 방문(크롤링)
- 막지 못하는 것: 외부 링크를 통한 URL 색인, 규칙을 무시하는 크롤러의 접근
- 검색 결과에서 빼려면: robots.txt 차단을 풀어 둔 상태에서 noindex 사용
- 완전히 감춰야 하면: 비밀번호 보호 또는 페이지 삭제
'검색 엔진 가시성' 체크박스부터 확인하세요
관리자 화면 설정 > 읽기 아래쪽에 있는 '검색 엔진 가시성' 항목에는 검색엔진이 이 사이트를 색인하지 않도록 요청하는 체크박스가 있습니다(한국어 번역 버전에 따라 문구가 조금 다를 수 있습니다). 사이트를 만드는 동안 켜 두었다가 공개 후에도 끄지 않는 경우가 꽤 많습니다.
워드프레스 문서에 따르면 이 옵션을 켜면 5.3 버전부터 모든 페이지의 head 안에 robots 메타 태그로 noindex, nofollow가 들어갑니다. 워드프레스 코어 개발 노트에 따르면 이때 기본 사이트맵도 꺼집니다. 반대로 이 옵션은 접속 자체를 막지는 않으며, 요청을 따를지는 검색엔진이 판단합니다.
- 알림판에서 설정 > 읽기로 이동합니다.
- '검색 엔진 가시성' 체크박스가 해제되어 있는지 확인합니다. 공개 운영 중이라면 체크가 없어야 합니다.
- 바꿨다면 변경 사항 저장을 누릅니다.
- 아무 글이나 연 뒤 페이지 소스 보기에서 name="robots" 를 검색해 noindex가 남아 있지 않은지 확인합니다. SEO 플러그인이 글·카테고리 단위로 noindex를 따로 넣을 수도 있으니 함께 봅니다.
robots.txt를 고치기 전에 알아둘 규칙과 흔한 실수
워드프레스는 사이트 최상위에 실제 robots.txt 파일이 없을 때 자동으로 내용을 만들어 보여 줍니다. 기본 내용은 관리자 폴더(/wp-admin/)만 막고 admin-ajax.php는 허용하는 짧은 규칙이며, 기본 사이트맵이 켜져 있으면 사이트맵 주소도 함께 들어갑니다. 대부분의 블로그는 이 정도로 충분합니다. 최상위 폴더에 실제 파일을 올리면 그 파일이 우선 보이므로, 직접 만들 때는 아래 예시처럼 짧게 유지하세요.
구글 문서 기준으로 robots.txt는 사이트 호스트의 최상위에 하나만 있어야 하고, UTF-8 텍스트여야 하며, 500KiB를 넘는 부분은 무시됩니다. https://example.com/robots.txt 의 규칙은 m.example.com 같은 하위 도메인이나 http 주소에는 적용되지 않습니다. Sitemap: 줄은 파일 어디에 넣어도 되고 여러 줄을 넣을 수 있습니다.
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Sitemap: https://example.com/sitemap_index.xml- 개발 중에 넣은 Disallow: / 를 공개 후에도 남겨 두는 실수. 사이트 전체 크롤링이 막힙니다
- 검색에서 빼려는 페이지를 robots.txt로 막고 noindex도 함께 거는 실수. noindex가 읽히지 않습니다
- Sitemap: 줄에 예전 플러그인의 사이트맵 주소나 다른 도메인 주소를 남겨 두는 실수
- 사이트맵에 priority·changefreq 값을 공들여 맞추는 것. 구글은 이 두 값을 무시하고, 정확할 때만 lastmod를 참고합니다
- 고친 직후 결과가 바로 바뀌길 기대하는 것. 구글은 robots.txt를 보통 최대 24시간 캐시합니다