
robots.txt란? 검색엔진 크롤링 설정·검증 방법 총정리
robots.txt 설정의 적용 범위와 기본 문법, 목적별 예시, 배포 후 검증 방법을 정리했습니다. 크롤링 차단과 색인 제외, 비공개 보호의 차이도 함께 확인할 수 있습니다.
Hyuk · · 4분 · 영어
robots.txt 설정은 검색로봇이 사이트의 어떤 URL을 요청할 수 있는지 조절하는 작업입니다. 다만 크롤링을 제한할 뿐 색인 제외나 개인정보 보호까지 보장하지는 않습니다. 따라서 목적에 맞는 방법을 선택하고, 배포한 뒤에는 파일 내용뿐 아니라 실제 HTTP 응답과 검색엔진의 수집 결과까지 확인해야 합니다.
robots.txt 설정으로 제어할 수 있는 범위
robots.txt는 검색로봇을 위한 ‘URL 접근 안내문’에 가깝습니다. Disallow로 특정 URL의 크롤링을 막더라도 외부 링크를 통해 주소가 발견되면 검색 결과에 URL만 표시될 수 있어요.
색인까지 막으려면 검색로봇이 페이지에 접근해 robots 메타 태그나 HTTP 헤더의 noindex를 읽을 수 있어야 합니다. 비공개 정보는 로그인이나 서버 접근 제어로 보호해야 합니다.
| 목적 | 알맞은 방법 |
|---|---|
| 크롤링 차단 | robots.txt의 Disallow |
| 색인 제외 | robots 메타 태그 또는 X-Robots-Tag: noindex |
| 비공개 정보 보호 | 로그인·인증·서버 접근 제어 |
| 검색 결과에서 URL 삭제 | noindex, 404·410 응답, 검색엔진 삭제 도구 |
robots.txt는 누구나 열람할 수 있습니다. 관리자 페이지나 개인정보가 담긴 경로를 보호하는 보안 수단으로 사용하면 안 됩니다.
robots.txt 파일 위치와 기본 문법
파일은 사이트 루트의 소문자 경로인 /robots.txt에 배치합니다. UTF-8로 작성하고 text/plain 형식으로 제공해야 해요.
규칙은 프로토콜·호스트·포트의 조합별로 적용됩니다. 예를 들어 https://example.com/robots.txt의 규칙은 다음 주소에 자동으로 적용되지 않습니다.
http://example.comhttps://www.example.com- 다른 서브도메인
- 다른 포트를 사용하는 주소
가장 기본적인 robots.txt 설정은 다음과 같습니다.
User-agent: *
Disallow: /search/
Allow: /search/help/
Sitemap: https://example.com/sitemap.xml| 문법 | 역할 |
|---|---|
User-agent | 규칙을 적용할 검색로봇을 지정합니다. *는 전용 그룹이 없는 모든 로봇을 뜻합니다. |
Disallow | 요청을 막을 경로를 지정합니다. |
Allow | 차단된 경로 안에서 허용할 예외를 지정합니다. |
Sitemap | 사이트맵의 절대 URL을 안내합니다. |
* | 0개 이상의 임의 문자와 일치합니다. |
$ | URL의 끝과 일치합니다. |
경로는 대소문자를 구분합니다. 따라서 /Private/와 /private/는 서로 다른 경로로 처리됩니다.
목적별 robots.txt 설정 예시
아래 예시에서 필요한 설정 블록만 골라 사용하면 됩니다.
# 전체 허용
User-agent: *
Disallow:
# 전체 차단
User-agent: *
Disallow: /
# 디렉터리와 PDF 차단
User-agent: *
Disallow: /search/
Disallow: /*.pdf$
# 차단 경로 안의 일부 허용
User-agent: *
Disallow: /temp/
Allow: /temp/public/
# 검색로봇별 지정
User-agent: Googlebot
Disallow: /google-only/
User-agent: Yeti
Disallow: /naver-only/설정할 때 주의할 규칙
- 운영 사이트에
Disallow: /를 배포하면 주요 페이지까지 크롤링되지 않으므로 특히 주의해야 합니다. - 규칙이 충돌하면 작성 순서가 아니라 더 긴 경로가 우선합니다.
- 경로 길이가 같으면
Allow규칙이 우선합니다. - 특정 검색로봇의 그룹은
User-agent: *그룹과 자동으로 합쳐지지 않습니다. 공통 규칙이 필요하면 각 그룹에 반복해서 적어야 합니다. - Google은 robots.txt의
noindex와crawl-delay를 지원하지 않습니다.
robots.txt 설정 배포 후 검증 방법
파일을 올린 것만으로 작업을 끝내지 말고 다음 순서로 검증하세요.
- 브라우저에서
https://example.com/robots.txt를 열어 일반 텍스트가 표시되는지 확인합니다. curl -i https://example.com/robots.txt를 실행해200 OK,Content-Type: text/plain, 불필요한 리디렉션 여부를 점검합니다.- 주요 페이지와 차단 경로,
Allow예외, 쿼리 문자열이 포함된 URL을 검색로봇별로 테스트합니다. - CSS·JavaScript·이미지처럼 페이지 렌더링에 필요한 리소스가 실수로 차단되지 않았는지 살펴봅니다.
- Google Search Console과 네이버 서치어드바이저에서 수집된 robots.txt 내용, 구문 오류, 대표 URL의 차단 여부를 확인합니다.
- 서버 로그를 통해
/robots.txt요청과 대상 URL의 접근량 변화를 점검합니다.
HTTP 응답과 캐시에서 확인할 사항
403 응답은 안전한 차단 방법이 아닙니다. 검색엔진이 robots.txt 규칙이 없는 상태로 해석할 수 있기 때문입니다. 5xx 오류도 크롤링 중단이나 이전 정상 파일의 재사용을 일으킬 수 있으므로 정상 운영 중에는 200 응답을 유지해야 합니다.
운영 배포 후 수집량이 갑자기 줄었다면 개발 환경에서 사용하던 Disallow: /가 함께 배포되지 않았는지 먼저 확인하세요.
robots.txt 설정을 수정해도 검색엔진 캐시 때문에 결과가 바로 바뀌지 않을 수 있습니다. Google은 일반적으로 robots.txt를 최대 24시간 캐시하므로 최신 수집 시점을 확인한 뒤 필요하면 재수집을 요청하는 것이 좋습니다.
마지막으로 색인 제외가 목적이라면 크롤링을 허용한 상태에서 페이지의 robots 메타 태그 또는 HTTP 헤더에 noindex를 적용해야 합니다. robots.txt 설정과 색인 제어, 접근 보안은 역할이 서로 다르다는 점을 구분해 사용하세요.
관련 글
댓글
Giscus를 연결하면 댓글이 열립니다.