robots.txt의 User-agent 작성법: *와 Googlebot을 둘 다 쓰면
robots.txt에 ‘User-agent: *’ 그룹과 ‘User-agent: Googlebot’ 그룹을 둘 다 쓰면 Googlebot은 ‘*’의 규칙을 쓰지 않게 됩니다. 이것을 모르고 Googlebot용 그룹을 추가했다가 막아 두었던 페이지가 크롤링되기 시작하는 문제가 흔합니다. 이 글에서는 크롤러가 어느 그룹을 쓰는지 정해지는 방식, Googlebot-Image나 AdsBot-Google 같은 특별한 경우, 그룹 묶는 법과 잘못 쓰기 쉬운 점을 설명합니다.
그룹이란: User-agent 줄과 그 아래의 규칙
robots.txt는 ‘그룹’의 모음입니다. 하나 이상의 User-agent 줄로 시작하고 그 아래에 Allow·Disallow 규칙이 이어지는 덩어리가 하나의 그룹이 됩니다. 규칙 뒤에 다음 User-agent 줄이 나오는 곳부터 새 그룹입니다.
| 작성법 | 의미 |
|---|---|
| User-agent: * / Disallow: /tmp/ | 이름 그룹이 없는 모든 크롤러에 /tmp/를 막는다 |
| User-agent: GPTBot / User-agent: ClaudeBot / Disallow: / | GPTBot과 ClaudeBot 모두에 사이트 전체를 막는다 (하나의 그룹) |
| User-agent: Googlebot / Disallow: | Googlebot에는 아무것도 막지 않는다 (값이 빈 Disallow는 모두 허용) |
그룹 사이의 빈 줄은 읽기 쉽게 하기 위한 것으로, 없어도 동작합니다. Sitemap 줄은 어느 그룹에도 속하지 않으며 어디에 써도 모든 크롤러에 전달됩니다. User-agent 줄보다 앞에 쓴 Allow·Disallow는 어떤 크롤러에도 쓰이지 않으니 주의하세요.
크롤러가 쓰는 그룹은 하나뿐
크롤러는 robots.txt에서 ‘자기 이름이 적힌 그룹’을 찾고, 있으면 그 그룹의 규칙만 씁니다. 이름 그룹이 없을 때에만 ‘User-agent: *’ 그룹을 씁니다. 두 그룹의 규칙을 합치는 일은 없습니다.
- 1
예: *와 Googlebot이 둘 다 있을 때
‘User-agent: *’에 Disallow: /private/와 Disallow: /tmp/를, ‘User-agent: Googlebot’에 Disallow: /no-google/만 썼다고 합시다.
- 2
Googlebot의 판정
Googlebot은 자기 그룹만 쓰므로 /no-google/은 차단, /private/와 /tmp/는 허용이 됩니다. *로 막았다고 생각한 페이지가 크롤링되어 버립니다.
- 3
Bingbot의 판정
Bingbot 이름의 그룹은 없으므로 ‘*’를 씁니다. /private/와 /tmp/는 차단, /no-google/은 허용입니다.
- 4
고치는 법
Googlebot 그룹에도 Disallow: /private/와 Disallow: /tmp/를 추가합니다. Googlebot에 따로 처리가 필요 없다면 Googlebot 그룹 자체를 지우고 ‘*’만 남기는 것이 가장 간단합니다.
구글 크롤러의 특별한 처리
구글에는 용도별로 여러 크롤러가 있으며, 그룹을 고르는 방식이 조금씩 다릅니다.
| 크롤러 | 쓰는 그룹 |
|---|---|
| Googlebot | Googlebot 그룹 → 없으면 * |
| Googlebot-Image / -Video / -News | 자기 이름 그룹 → 없으면 Googlebot → 그것도 없으면 * |
| AdsBot-Google | 자기 이름 그룹만 (*는 무시) |
| Mediapartners-Google (AdSense) | 자기 이름 그룹만 (*는 무시) |
| Google-Extended | 자기 이름 그룹 (Gemini 등의 학습·답변 활용 여부만 정함) |
| Applebot (Apple) | Applebot 그룹 → 없으면 Googlebot 그룹을 따름 |
- 이미지 검색에 내보내고 싶지 않은 이미지 폴더가 있다면 ‘User-agent: Googlebot-Image’로 막습니다. 일반 구글 검색의 크롤링에는 영향이 없습니다.
- ‘User-agent: *’에 ‘Disallow: /’를 써도 AdsBot-Google은 멈추지 않습니다. 광고 랜딩 페이지의 품질 검사를 막고 싶을 때만 이름을 씁니다 (보통은 막을 필요가 없습니다).
- AdSense 크롤러를 막으면 광고 내용이 페이지와 잘 맞지 않게 되므로, AdSense를 쓰는 사이트에서는 막지 않는 것이 일반적입니다.
- ‘Googlebot-Images’(s가 붙은)처럼 존재하지 않는 이름을 쓰면 그 그룹은 어떤 크롤러에도 쓰이지 않습니다. 테스터는 이름의 오타도 알려 줍니다.
여러 크롤러를 묶기·같은 이름이 두 번 나올 때
같은 규칙을 여러 크롤러에 쓰고 싶을 때는 User-agent 줄을 이어서 쓰고 그 아래에 규칙을 한 번만 씁니다. AI 크롤러를 한꺼번에 막을 때 자주 쓰는 방법입니다.
같은 이름의 그룹이 robots.txt 안에 두 번 나오면 구글은 두 그룹의 규칙을 합쳐서 씁니다. 하지만 다른 크롤러도 똑같이 읽는다는 보장이 없고 나중에 볼 때 혼란의 원인이 되므로 한곳에 모아 두는 것을 권합니다.
- User-agent 값에는 이름만 씁니다. ‘Googlebot/2.1’이나 브라우저 UA 문자열 전체를 쓰면 앞부분의 이름만 쓰입니다.
- 이름의 대소문자는 구분하지 않습니다.
- 규칙이 한 줄도 없는 그룹의 크롤러는 ‘모두 허용’이 되며 ‘*’의 규칙도 쓰지 않습니다.
- 콜론은 반각 ‘:’로 씁니다. 전각 ‘:’이면 줄이 읽히지 않습니다.
AI 크롤러의 이름과 차단법은 robots.txt로 AI 크롤러 차단하기, 규칙 사이의 우선순위는 Allow와 Disallow의 우선순위에서 설명합니다.
자주 묻는 질문
- User-agent: *와 User-agent: Googlebot을 둘 다 쓰면 어떻게 되나요?
- Googlebot은 자기 이름 그룹의 규칙만 쓰고 ‘*’ 그룹의 규칙은 쓰지 않습니다. ‘*’로 막은 경로를 Googlebot에도 막고 싶다면 Googlebot 그룹에도 같은 Disallow를 쓰세요.
- Googlebot-Image만 차단할 수 있나요?
- 할 수 있습니다. ‘User-agent: Googlebot-Image’ 그룹에 Disallow를 쓰면 이미지 검색 크롤러만 막을 수 있습니다. 이름 그룹이 없으면 Googlebot-Image는 Googlebot 그룹을 따릅니다.
- User-agent: *로 AdsBot-Google도 막히나요?
- 막히지 않습니다. AdsBot-Google과 AdSense의 Mediapartners-Google은 ‘*’ 그룹을 무시하므로, 막고 싶다면 이름을 써야 합니다.
- 여러 User-agent에 같은 규칙을 쓰려면?
- User-agent 줄을 이어서 쓰고 그 아래에 규칙을 한 번만 씁니다. 예를 들어 ‘User-agent: GPTBot’, ‘User-agent: ClaudeBot’ 두 줄 뒤에 ‘Disallow: /’를 쓰면 둘 다 같은 규칙이 적용됩니다.
이 글에서 소개한 도구
함께 읽으면 좋은 글
robots.txt 확인 방법: 테스터가 없어진 뒤 차단을 알아보는 순서
Google Search Console에 있던 robots.txt 테스터는 2023년 12월에 제공이 끝나 지금은 ‘robots.txt 보고서’로 바뀌었습니다. 보고서에서는 ‘URL을 넣고 차단되는지 시험하기’를 할 수 없어서 ‘어디서 확인해야 하지?’ 하고 헤매는 사람이 늘었습니다. 이 글에서는 robots.txt를 두는 곳과 여는 법, Search Console 보고서와 URL 검사 도구로 알 수 있는 것·알 수 없는 것, 테스터로 URL별 판정을 확인하는 순서, 수정한 뒤 반영되기까지의 흐름을 정리합니다.
글 읽기 →robots.txt로 AI 크롤러 차단하기: GPTBot·ClaudeBot
내 사이트의 글이나 이미지가 AI 학습에 쓰이는 것을 원하지 않는 운영자가 늘고 있습니다. robots.txt에 AI 크롤러의 이름을 적으면 각 회사의 크롤러에 수집을 멈춰 달라고 알릴 수 있습니다. 다만 AI 크롤러에는 ‘학습용’, ‘AI 검색용’, ‘사용자 요청으로 여는 것’이 있어서 어느 것을 막느냐에 따라 영향이 크게 달라집니다. 이 글에서는 주요 AI 크롤러의 이름과 역할, 목적별 robots.txt 작성법, 차단할 때의 주의점을 정리합니다.
글 읽기 →robots.txt와 noindex의 차이: 검색 결과에서 지우는 올바른 방법
‘robots.txt로 막았는데 검색 결과에 나온다’, ‘Search Console에 robots.txt에 의해 차단되었지만 색인이 생성됨이라고 뜬다’. 이런 고민의 대부분은 robots.txt와 noindex의 역할을 헷갈린 데서 옵니다. 이 글에서는 크롤링과 색인의 차이, 검색 결과에서 지우고 싶을 때의 올바른 순서, robots.txt의 Noindex·Crawl-delay가 듣지 않는 이유, Search Console에서 자주 보는 메시지와 잘못 쓴 부분 고치는 법을 정리합니다.
글 읽기 →