robots.txt
robots.txt는 사이트 루트(예: https://example.com/robots.txt)에 두어 크롤러가 어떤 URL에 접근(크롤)할 수 있는지 지시하는 텍스트 파일입니다. 색인을 막는 수단이 아니라 크롤 트래픽을 관리하는 용도이며, 페이지를 검색결과에서 빼려면 noindex나 비밀번호 보호를 써야 합니다.
- robots.txt는 사이트 루트에 위치해 크롤러의 접근(크롤)을 허용하거나 차단하도록 지시하는 UTF-8 텍스트 파일입니다.
- 크롤 트래픽 관리가 목적이며, 색인 차단 수단이 아닙니다. 구글은 "웹페이지를 구글에서 빼두는 메커니즘이 아니다"라고 명시합니다.
- 다른 사이트가 차단된 URL로 링크하면 해당 페이지가 설명 없이 검색결과에 노출될 수 있습니다.
- 핵심 지시어는 User-agent, Disallow, Allow, Sitemap이며, 경로 매칭은 "가장 긴 일치(longest match)" 규칙을 따릅니다.
- 2022년 9월 RFC 9309로 표준화되었고, 접근 권한 제어 수단이 아니므로 보안 용도로 사용하지 않습니다.
정의
robots.txt는 웹사이트 루트(예: https://www.example.com/robots.txt)에 두어, 검색엔진 크롤러가 사이트의 어떤 URL에 접근(크롤)할 수 있는지를 지시하는 텍스트 파일입니다. 구글 검색 센트럴은 robots.txt를 "크롤러에게 접근 가능한 URL을 알려주는 파일"로 정의하며, 그 주된 목적은 색인 차단이 아니라 크롤 트래픽을 관리하는 것이라고 설명합니다.
가장 흔한 오해는 robots.txt가 페이지를 검색결과에서 숨겨준다고 생각하는 것입니다. 구글은 "robots.txt는 웹페이지를 구글에서 제외하기 위한 메커니즘이 아니다"라고 분명히 밝힙니다. 다른 사이트가 차단된 URL로 링크하면, 크롤이 막혀 있어도 그 URL이 설명 없이 검색결과에 나타날 수 있습니다. 따라서 색인을 막는 일은 noindex나 비밀번호 보호가 담당하고, robots.txt는 크롤 단계의 접근을 지시하는 별개의 도구입니다.
작동 방식
크롤러는 사이트를 크롤하기 전에 루트의 robots.txt를 먼저 읽고, 자신의 이름(User-agent)에 해당하는 규칙 그룹을 찾아 따릅니다. RFC 9309에 따르면 파일은 반드시 서비스 루트 레벨에 위치해야 하고, UTF-8로 인코딩되며 미디어 타입은 text/plain입니다. 하위 디렉터리에는 둘 수 없고, 사이트당 하나만 존재합니다.
경로 규칙이 충돌할 때는 "가장 긴 일치(longest match)" 원칙이 적용되어, 더 구체적인(문자 수가 많은) 규칙이 우선합니다. 또한 robots.txt는 강제력이 보장되지 않습니다. 크롤러마다 해석이 다를 수 있고, 악의적 봇은 무시할 수 있습니다.
주요 지시어
| 지시어 | 역할 | 필수 여부 |
|---|---|---|
| User-agent | 규칙을 적용할 크롤러 이름을 지정. *는 명시되지 않은 모든 크롤러에 적용 | 필수 |
| Disallow | 크롤을 막을 경로를 지정. 루트 기준 상대 경로이며 /로 시작 | 그룹당 Allow/Disallow 중 최소 1개 |
| Allow | 차단된 영역 안에서 예외적으로 허용할 경로를 지정 | 그룹당 Allow/Disallow 중 최소 1개 |
| Sitemap | 사이트맵 위치를 알림. 반드시 완전한 절대 URL 사용 | 선택(여러 개 가능) |
코드 예시
# Googlebot에게만 적용되는 규칙
User-agent: Googlebot
Disallow: /nogooglebot/
# 그 외 모든 크롤러에게 적용
User-agent: *
Allow: /
# 사이트맵 위치(완전한 절대 URL)
Sitemap: https://www.example.com/sitemap.xml경로는 /로 시작하고 디렉터리는 /로 끝나며, 경로 매칭은 대소문자를 구분합니다. *(와일드카드)와 $(패턴 끝 표시)를 지원하고, #으로 시작하는 줄은 주석으로 처리됩니다. 별도로 차단하지 않은 경로는 기본적으로 모두 허용됩니다.
흔한 오해
- 색인 차단으로 오해 — robots.txt는 크롤을 막을 뿐, 색인 제거를 보장하지 않습니다. 외부 링크가 있으면 차단된 URL도 검색결과에 노출될 수 있다고 구글이 안내합니다. 색인 제외에는 noindex를 사용합니다.
- 보안 수단으로 오해 — RFC 9309는 "이 규칙들은 접근 권한 부여의 한 형태가 아니다"라고 명시합니다. 민감 정보는 서버 단 비밀번호 보호로 다뤄야 합니다.
- noindex와 robots.txt 동시 사용 — 크롤이 차단되면 크롤러가 페이지의 noindex 태그 자체를 읽지 못하므로, noindex로 색인을 빼려면 해당 페이지의 크롤은 막지 않아야 합니다.