robots.txt 작성법 — 문법·매칭 규칙·흔한 실수와 추천 예시
SEO Check 편집팀 · 2026-09-28 업데이트 · 7분 읽기
robots.txt는 사이트 루트(https://도메인/robots.txt)에 두는 텍스트 파일로, 검색엔진과 AI 크롤러에게 어느 경로를 방문해도 되고 어느 경로는 오지 말아야 하는지 알려 줍니다. 핵심은 세 가지입니다. 검색에 노출할 페이지와 CSS·JS는 막지 않고, 관리자·장바구니·내부 검색처럼 가치 없는 경로만 막으며, 마지막 줄에 사이트맵 주소를 적는 것입니다.
robots.txt는 무엇이고 어디에 두나요?
크롤러는 사이트를 방문하기 전에 가장 먼저 robots.txt를 읽고 그 규칙에 따라 움직입니다. 알아 둘 기본 사항은 다음과 같습니다.
- 위치는 호스트의 루트 하나뿐입니다.
https://www.example.co.kr/robots.txt만 인정되고/blog/robots.txt같은 하위 폴더 파일은 무시됩니다. - 호스트마다 따로 적용됩니다.
shop.example.co.kr같은 서브도메인은 자체 robots.txt가 필요하고, http와 https도 별개로 취급됩니다. - UTF-8 일반 텍스트로 저장합니다. 구글은 파일의 처음 500KiB까지만 읽고 나머지는 무시합니다.
- 보안 장치가 아닙니다. 누구나 열어 볼 수 있는 공개 파일이고 규칙을 지키는 것은 크롤러의 선택이므로, 비공개 경로는 로그인이나 접근 제어로 보호해야 합니다.
기본 문법: User-agent, Disallow, Allow, Sitemap
robots.txt는 User-agent 줄로 대상 크롤러를 지정하고, 그 아래에 규칙을 나열하는 그룹 단위로 작성합니다.
User-agent: *
Disallow: /admin/
Disallow: /cart/
Allow: /
User-agent: Yeti
Allow: /
Sitemap: https://www.example.co.kr/sitemap.xml
| 지시어 | 의미 | 참고 |
|---|---|---|
User-agent |
규칙을 적용할 크롤러 이름 | *는 모든 크롤러, 대소문자 구분 없음 |
Disallow |
방문하지 말아야 할 경로 | 값을 비우면(Disallow:) 전체 허용 |
Allow |
방문해도 되는 경로 | 막힌 폴더 안의 일부를 열 때 사용 |
Sitemap |
사이트맵의 절대 URL | 그룹과 무관, 여러 줄 가능 |
# 뒤의 내용은 주석으로 처리됩니다. 구글은 Crawl-delay를 지원하지 않으므로 넣어도 효과가 없습니다.
규칙은 어떤 순서로 적용되나요?
규칙은 위에서 아래로 읽히는 것이 아니라 구체성으로 결정됩니다. 구글이 따르는 표준(RFC 9309)의 동작은 다음과 같습니다.
- 그룹 선택: 크롤러는 자기 이름과 가장 구체적으로 일치하는 그룹 하나만 따릅니다.
User-agent: Googlebot그룹이 있으면 구글봇은User-agent: *그룹을 완전히 무시합니다. - 가장 긴 규칙 우선: URL과 일치하는 규칙 중 경로가 가장 긴 규칙이 이깁니다.
- 길이가 같으면 Allow 우선: 같은 길이의 Allow와 Disallow가 충돌하면 덜 제한적인 Allow가 적용됩니다.
- 와일드카드:
*는 0개 이상의 모든 문자,$는 URL의 끝을 뜻합니다. - 경로는 대소문자를 구분합니다.
Disallow: /Admin/은/admin/을 막지 못합니다.
| 규칙 | URL | 결과 |
|---|---|---|
Disallow: /blog |
/blog-news, /blog/a |
둘 다 차단 (앞부분 일치) |
Disallow: /blog/ |
/blog |
허용 (슬래시까지 일치해야 함) |
Disallow: /admin/ + Allow: /admin/notice/ |
/admin/notice/1 |
허용 (더 긴 Allow 우선) |
Disallow: /*.pdf$ |
/files/a.pdf |
차단 |
Disallow: /*.pdf$ |
/files/a.pdf?v=2 |
허용 ($ 뒤에 문자가 있음) |
Disallow: /*sort= |
/shop?color=red&sort=price |
차단 |
1번 때문에 자주 생기는 실수가 있습니다. 특정 봇 그룹을 새로 만들면 그 봇에는 * 그룹의 Disallow가 적용되지 않으므로, 막아야 할 경로를 해당 그룹에도 다시 적어야 합니다.
사이트를 망가뜨리는 흔한 실수
- 개발 서버의
Disallow: /를 그대로 배포: 사이트 전체가 크롤링 대상에서 빠지는 가장 치명적인 실수입니다. 배포 체크리스트에 robots.txt 확인을 넣어 두세요. - CSS·JS·이미지 경로 차단: 구글은 페이지를 브라우저처럼 렌더링해서 평가합니다.
/wp-includes/,/assets/,/_next/static/같은 경로를 막으면 레이아웃이 깨진 페이지로 인식되어 모바일 평가에 불리해집니다. - robots.txt 요청이 5xx 오류: 구글은 robots.txt가 서버 오류(5xx)나 429를 반환하면 사이트 전체가 차단된 것으로 보고 크롤링을 일시 중단합니다. 반면 404는 전체 허용으로 처리됩니다.
- noindex 페이지를 robots.txt로 함께 막기: 크롤러가 방문하지 못하면 noindex 태그도 읽지 못해, 검색 결과에서 사라지지 않고 주소만 남을 수 있습니다.
- HTML 페이지가 응답: 파일이 없는데 서버가 홈페이지 HTML을 200으로 돌려주면 규칙이 없는 것과 같습니다.
- 숨기고 싶은 경로를 나열: 공개 파일이므로 오히려 경로를 알려 주는 셈입니다.
그대로 써도 되는 추천 robots.txt 예시
대부분의 소상공인·기업 사이트는 아래 정도면 충분합니다. 경로는 실제 사이트 구조에 맞게 바꾸세요.
User-agent: *
Disallow: /admin/
Disallow: /cart/
Disallow: /checkout/
Disallow: /mypage/
Disallow: /search
Allow: /
Sitemap: https://www.example.co.kr/sitemap.xml
워드프레스라면 Disallow: /wp-admin/과 Allow: /wp-admin/admin-ajax.php를 넣고, /wp-content/와 /wp-includes/는 막지 않습니다. 구글·네이버(Yeti)·다음(Daumoa)·Bing은 * 그룹만으로 충분하므로 굳이 따로 적을 필요가 없습니다. ChatGPT·Claude·Perplexity 같은 AI 크롤러를 봇별로 다르게 다루는 방법은 AI 크롤러 관리 가이드에서 설명합니다.
robots.txt와 noindex, 무엇을 써야 하나요?
목적이 다릅니다. robots.txt는 크롤링(방문), noindex는 색인(검색 결과 노출) 을 제어합니다.
| 목적 | 사용할 도구 |
|---|---|
| 검색 결과에서 페이지를 빼고 싶다 | <meta name="robots" content="noindex"> 또는 X-Robots-Tag: noindex 헤더 |
| 수만 개의 필터·정렬 URL 방문을 줄이고 싶다 | robots.txt Disallow |
| PDF·이미지 파일을 색인에서 빼고 싶다 | X-Robots-Tag HTTP 헤더 |
| 중복 페이지를 대표 URL로 합치고 싶다 | canonical 태그 또는 301 리디렉션 |
이미 색인된 페이지를 빼려면 먼저 noindex를 달고 크롤링을 허용한 상태로 두어야 합니다. 검색 결과에서 사라진 것을 확인한 뒤에 robots.txt로 막는 순서가 안전합니다.
수정 후 확인 체크리스트
- 브라우저에서
/robots.txt를 열었을 때 텍스트가 200으로 보인다 - 운영 서버에
Disallow: /가 남아 있지 않다 - CSS·JS·이미지 경로가 막혀 있지 않다
-
Sitemap:줄에 https 절대 주소가 있다 (사이트맵 가이드 참고) - 구글 서치콘솔의 설정 → robots.txt 보고서에서 가져오기 오류가 없다
- 네이버 서치어드바이저의 robots.txt 검증 도구에서 Yeti 수집이 허용된다
기술 SEO 전반의 크롤링 관리는 저자의 전자책 PART 5. 기술적 SEO에서 더 자세히 다룹니다.
SEO Check에서는 이렇게 점검합니다
무료 SEO 진단을 실행하면 robots.txt를 구글과 같은 매칭 규칙(가장 긴 규칙 우선, 동률이면 Allow)으로 해석해 다음을 확인합니다.
- 파일 존재·응답: 200 텍스트로 제공되면 통과, 5xx는 심각 문제, 404나 HTML 응답은 개선 필요
- 문법: 해석할 수 없는 줄이 있는지, 500KB를 넘는지
- 검색엔진 허용: 구글·네이버(Yeti)·다음·Bing이 모두 홈페이지를 크롤링할 수 있어야 통과
- Sitemap 지시어:
Sitemap:줄이 있으면 통과 - CSS·JS 차단: 렌더링에 필요한 리소스 경로가 막혀 있는지
- AI 크롤러 정책: AI 검색 크롤러 허용 여부와 학습 크롤러 차단 현황
- noindex 신호: robots 메타 태그와
X-Robots-Tag헤더가 색인을 막고 있는지
문제가 발견되면 사이트 주소에 맞춘 추천 robots.txt 예시도 함께 보여 드립니다.
자주 묻는 질문
robots.txt가 없으면 어떻게 되나요?
robots.txt로 막으면 검색 결과에서 사라지나요?
수정한 robots.txt는 언제 반영되나요?
네이버 검색 로봇은 어떤 이름으로 지정하나요?
Crawl-delay를 넣으면 구글 크롤링 속도가 줄어드나요?
이 항목, 내 사이트는 어떨까요?
무료 간편진단으로 robots.txt를 포함한 핵심 항목을 1분 만에 확인하세요.