Robots.txt 파일 생성기 — 개념과 생성 방법 완벽 가이드
robots.txt 파일의 역할, 크롤 규칙 작동 방식, 그리고 코드 없이 올바른 robots.txt를 생성하는 방법을 알아보세요.
인터넷상의 모든 웹사이트는 Googlebot, Bingbot, AI 크롤러 등 수십 종의 봇의 방문을 받습니다. robots.txt 파일은 이러한 봇에게 어떤 페이지를 색인해도 되는지, 그리고 하면 안 되는지를 알려주는 수단입니다. 올바르게 설정하면 검색 결과에 노출되는 콘텐츠를 제어할 수 있습니다. 잘못 설정하면 실수로 사이트 전체를 Google에서 차단하는 사태가 발생할 수 있습니다.
robots.txt 파일이란?
robots.txt 파일은 웹사이트 루트에 위치하는 일반 텍스트 파일로, 웹 크롤러에게 어떤 페이지나 섹션을 크롤해야 하는지, 건너뛰어야 하는지를 지시합니다. 사실상 모든 주요 크롤러가 준수하는 비공식 표준인 Robots Exclusion Protocol을 따릅니다.
Googlebot이 사이트를 방문할 때 가장 먼저 요청하는 URL은 다음과 같습니다:
https://yourdomain.com/robots.txt
파일이 존재하면 봇은 규칙을 읽고 그에 따라 크롤 방식을 조정합니다. 파일이 없으면 봇은 모든 것이 크롤 가능하다고 간주합니다.
중요: robots.txt는 지시 사항이지 보안 수단이 아닙니다. 규칙을 준수하는 봇에게 크롤하지 말아야 할 곳을 알려주는 것이며, 접근 자체를 차단하지는 않습니다. 악성 봇과 스크레이퍼는 이를 완전히 무시할 수 있습니다. 민감한 콘텐츠를 숨기기 위해 robots.txt에 의존하지 마세요.
robots.txt 파일 구조
robots.txt 파일은 하나 이상의 레코드로 구성됩니다. 각 레코드는 다음으로 이루어집니다:
User-agent줄 — 규칙이 적용되는 봇 지정- 하나 이상의
Disallow또는Allow줄 — 크롤 규칙 - 선택 사항인
Crawl-delay지시어 - 선택 사항인
Sitemap지시어 (파일 레벨)
User-agent: Googlebot
Disallow: /admin/
Allow: /admin/public/
User-agent: *
Disallow: /private/
Crawl-delay: 10
Sitemap: https://yourdomain.com/sitemap.xml
주요 지시어 설명
| 지시어 | 역할 |
|---|---|
User-agent |
이후 규칙이 적용될 크롤러를 지정합니다. *는 모든 봇을 의미합니다. |
Disallow |
지정된 경로의 크롤을 차단합니다. |
Allow |
차단된 상위 디렉터리 내에서도 특정 경로를 명시적으로 허용합니다. |
Crawl-delay |
봇에게 요청 사이에 N초 대기를 요청합니다 (Google은 미지원). |
Sitemap |
크롤러에게 XML 사이트맵 위치를 알려줍니다. |
User-agent 값 — 어떤 봇에게 말하는 건가요?
각 크롤러는 고유한 user-agent 문자열을 가집니다. 가장 중요한 것들은 다음과 같습니다:
| User-agent | 크롤러 | 검색 엔진 |
|---|---|---|
* |
모든 크롤러 | — |
Googlebot |
Google 웹 크롤러 | Google Search |
Googlebot-Image |
Google 이미지 크롤러 | Google Images |
Googlebot-Video |
Google 동영상 크롤러 | Google Video |
Bingbot |
Microsoft Bing 크롤러 | Bing Search |
Slurp |
Yahoo! 크롤러 | Yahoo Search |
DuckDuckBot |
DuckDuckGo 크롤러 | DuckDuckGo |
Baiduspider |
Baidu 크롤러 | Baidu Search |
YandexBot |
Yandex 크롤러 | Yandex Search |
GPTBot |
OpenAI 학습 크롤러 | ChatGPT |
ClaudeBot |
Anthropic 학습 크롤러 | Claude |
CCBot |
Common Crawl 봇 | 다양한 AI 데이터셋 |
규칙은 user-agent별로 적용됩니다. 봇이 특정 user-agent 레코드와 일치하면 해당 규칙이 적용됩니다. 특정 레코드가 없으면 *(와일드카드) 규칙이 적용됩니다.
Disallow와 Allow — 경로 매칭 방식
Disallow
Disallow: /path/는 해당 경로와 그 하위의 모든 것을 차단합니다.
Disallow: /admin/ # /admin/, /admin/users, /admin/login 등을 차단
Disallow: /private.html # 해당 파일만 정확히 차단
Disallow: / # 사이트 전체를 차단
Disallow: # 빈 값 = 모든 것 허용 (제한 없음)
Allow
Allow는 더 구체적인 경로에 대해 Disallow를 재정의합니다. 더 구체적인 규칙이 우선합니다.
User-agent: Googlebot
Disallow: /products/
Allow: /products/featured/ # 위의 Disallow에도 불구하고 Googlebot은 /products/featured/를 크롤할 수 있음
와일드카드
대부분의 크롤러(Google 포함)는 두 가지 와일드카드 문자를 지원합니다:
| 패턴 | 의미 | 예시 |
|---|---|---|
* |
임의의 문자 시퀀스와 일치 | Disallow: /*.pdf$ |
$ |
URL의 끝과 일치 | Disallow: /*.pdf$ — .pdf로 끝나는 URL 차단 |
Disallow: /*? # 쿼리 문자열이 있는 모든 URL 차단
Disallow: /*.pdf$ # 모든 PDF 파일 차단
Disallow: /tag/*/page/ # 페이지네이션된 태그 아카이브 페이지 차단
자주 쓰이는 robots.txt 패턴
모든 것 허용 (기본 동작)
User-agent: *
Disallow:
빈 Disallow는 아무런 제한이 없음을 의미합니다. robots.txt가 없는 것과 동일하지만, 나중에 규칙을 추가할 수 있도록 파일 자체를 미리 만들어 두는 것이 좋은 관행입니다.
사이트 전체 차단 (예: 스테이징 환경)
User-agent: *
Disallow: /
개발, 스테이징, 또는 미리보기 환경이 색인되지 않도록 할 때 사용하세요.
특정 디렉터리 차단
User-agent: *
Disallow: /admin/
Disallow: /wp-admin/
Disallow: /wp-login.php
Disallow: /checkout/
Disallow: /cart/
Disallow: /account/
AI 학습 크롤러 차단
User-agent: GPTBot
Disallow: /
User-agent: ClaudeBot
Disallow: /
User-agent: CCBot
Disallow: /
User-agent: Google-Extended
Disallow: /
이커머스 사이트 — 색인 불필요 페이지 차단
User-agent: *
Disallow: /cart/
Disallow: /checkout/
Disallow: /account/
Disallow: /wishlist/
Disallow: /*?sort=
Disallow: /*?filter=
Disallow: /*?ref=
Allow: /products/
Allow: /collections/
Sitemap: https://yourdomain.com/sitemap.xml
WordPress 사이트
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow: /wp-login.php
Disallow: /wp-includes/
Disallow: /?s=
Disallow: /search/
Disallow: /trackback/
Sitemap: https://yourdomain.com/sitemap.xml
코드 없이 robots.txt 파일 생성하기
robots.txt를 직접 작성하면 오류가 생기기 쉽습니다 — 오타 하나로 허용하려던 페이지가 차단될 수 있습니다. 저희 Robots.txt Generator를 사용하면:
- 대상 봇 선택
- 간단한 양식으로 허용 및 차단 규칙 추가
- 필요 시 크롤 딜레이 설정
- 사이트맵 URL 추가
- 완성된 파일 즉시 복사 또는 다운로드
생성 후에는 Robots.txt Tester를 사용해 배포 전에 규칙이 의도대로 작동하는지 확인하세요.
robots.txt 파일을 어디에 배치해야 하나요?
파일은 반드시 도메인 루트에 위치해야 합니다:
https://yourdomain.com/robots.txt ✓ 올바름
https://yourdomain.com/robots/robots.txt ✗ 잘못됨
https://subdomain.yourdomain.com/robots.txt ✓ 올바름 (서브도메인의 경우)
각 서브도메인에는 자체 robots.txt가 필요합니다. www.yourdomain.com/robots.txt의 파일은 blog.yourdomain.com에 적용되지 않습니다.
robots.txt 배포 방법
정적 사이트 (HTML): 웹 서버의 공개 디렉터리 루트(/public_html/, /dist/, /public/ 등)에 robots.txt를 업로드하세요.
WordPress: WordPress 설치 루트에 배치하세요. 많은 SEO 플러그인(Yoast, RankMath)이 관리자 패널을 통해 자동으로 관리해 줍니다.
Next.js: /public 폴더에 robots.txt를 배치하거나, 프로그래밍 방식 생성을 위해 /app의 robots.js 파일을 사용하세요 (Next.js 13+).
Vercel / Netlify: /public에 배치하면 배포 시 루트에서 자동으로 서빙됩니다.
robots.txt와 SEO — 꼭 올바르게 설정해야 할 것들
CSS와 JavaScript를 차단하지 마세요
예전에는 크롤 예산을 절약하기 위해 /wp-content/나 /assets/를 차단하는 관행이 있었습니다. 이는 역효과를 낳습니다: Google은 페이지를 이해하기 위해 렌더링이 필요하며, CSS/JS를 차단하면 이것이 불가능해집니다. 진정으로 색인을 원하지 않는 것만 차단하세요.
robots.txt는 색인을 막지 않습니다 — noindex가 막습니다
Disallow는 Google이 URL을 크롤하는 것을 막습니다. 다른 사이트가 해당 URL로 링크하고 있다면 Google이 색인하는 것을 막지는 못합니다. 색인을 방지하려면 페이지 자체에 noindex 메타 태그나 X-Robots-Tag HTTP 헤더를 사용하세요.
사이트맵 선언
robots.txt에 항상 사이트맵 URL을 포함하세요 — 크롤러가 사이트맵을 찾을 수 있도록 하는 가장 확실한 방법입니다:
Sitemap: https://yourdomain.com/sitemap.xml
Sitemap: https://yourdomain.com/sitemap-images.xml
여러 사이트맵을 나열할 수 있습니다.
크롤 예산
대규모 사이트(수천 페이지)는 robots.txt 최적화의 효과를 가장 크게 볼 수 있습니다. 저가치 페이지(필터된 URL, 내부 검색 결과, 중복된 얇은 콘텐츠)를 차단하면 Google이 실제로 중요한 페이지에 크롤 예산을 집중하는 데 도움이 됩니다.
robots.txt 파일 유효성 검사
파일을 생성한 후 배포 전에 반드시 검증하세요:
- Robots.txt Tester — 파일을 붙여넣고 특정 URL을 테스트해 허용/차단 동작을 확인
- Google Search Console — 크롤 통계 보고서에서 Google의 크롤 방식을 확인; URL 검사 도구로 특정 페이지 차단 여부 확인
- 직접 확인 — 배포 후
https://yourdomain.com/robots.txt에 접속해 파일이 정상적으로 서빙되는지 확인
자주 묻는 질문
Google은 항상 robots.txt를 따르나요?
Google은 크롤링에 있어 Disallow 지시어를 준수합니다. 그러나 다른 사이트에서 해당 URL로 링크하는 경우, 차단된 URL도 여전히 색인될 수 있습니다 — Disallow는 크롤을 막을 뿐 색인 항목 생성을 막지 않습니다. 색인을 방지하려면 페이지 자체에 noindex를 사용하세요.
같은 봇에 대해 여러 User-agent 블록을 설정할 수 있나요? 아닙니다. 각 user-agent는 하나의 블록에만 등장해야 합니다. 동일한 봇에 대해 여러 블록에 충돌하는 규칙이 있으면 동작이 정의되지 않습니다. 특정 user-agent에 대한 모든 규칙을 하나의 레코드에 통합하세요.
robots.txt에 구문 오류가 있으면 어떻게 되나요? 대부분의 크롤러는 잘못된 규칙을 무시하거나 오류 지점에서 파싱을 중단합니다. Google은 일반적으로 오류 이전까지 파싱에 성공한 규칙을 계속 적용합니다. 배포 전에 파일을 반드시 테스트하세요.
Googlebot-Image를 차단해야 하나요? 이미지가 Google Images 결과에 노출되는 것을 원하지 않을 때만 차단하세요. 사진을 판매하거나 이미지 중심 사이트를 운영한다면 Googlebot-Image를 차단하면 트래픽이 크게 줄어들 수 있습니다.
크롤러는 얼마나 자주 robots.txt를 다시 읽나요? Google은 일반적으로 robots.txt를 최대 24시간 동안 캐시합니다. 파일을 업데이트한 후 변경 사항이 Google의 크롤 동작에 반영되기까지 최대 하루가 걸릴 수 있습니다.
robots.txt가 페이지 속도나 Core Web Vitals에 영향을 주나요? 아닙니다. robots.txt는 크롤 동작에만 영향을 미치며, 실제 사용자에게 페이지가 로드되거나 성능이 발휘되는 방식과는 무관합니다.
robots.txt 파일 크기 및 제한
- Google은 최대 500 KB 크기의 robots.txt 파일을 지원합니다
- 500 KB를 초과하는 파일은 잘립니다 — 해당 크기를 초과하는 규칙은 무시됩니다
- 규칙 수에 대한 공식 제한은 없지만, 파일을 체계적이고 간결하게 유지하세요
- UTF-8 인코딩을 권장합니다; ASCII도 사용 가능합니다
관련 도구
- Robots.txt Generator — 양식 기반 인터페이스로 robots.txt 파일 생성
- Robots.txt Tester — 규칙 유효성 검사 및 특정 URL 테스트
- Sitemap Generator — robots.txt와 함께 사용할 XML 사이트맵 생성
- Meta Tag Generator — 페이지용 SEO 메타 태그 생성