본문 바로가기
SEO·GEO 용어사전

robots.txt

마지막 업데이트
선호 출처로 추가

robots.txt는 검색로봇에 크롤링을 허용하거나 제한할 경로를 알리는 공개 파일입니다. 이 규칙을 따르는 검색로봇의 크롤링 범위를 조정할 수 있습니다. URL을 검색결과에서 삭제하거나 비공개 페이지의 접근을 막으려면 별도 설정이 필요합니다.

robots.txt는 어디에 두나요?

robots.txt는 도메인 주소 바로 뒤인 루트 경로에 둡니다. https://example.com에 적용할 파일의 주소는 https://example.com/robots.txt입니다.

https://example.com/robots.txt

검색로봇은 사이트를 방문할 때 robots.txt에서 자신에게 적용되는 규칙을 확인합니다. 접근을 제한하는 규칙이 없다면 일반적으로 해당 URL을 크롤링할 수 있다고 판단합니다.

robots.txt는 호스트별로 적용됩니다. 웹사이트와 쇼핑몰이 서로 다른 서브도메인을 쓴다면 각각의 파일을 확인해야 합니다.

확인할 사이트적용되는 robots.txt
https://www.example.comhttps://www.example.com/robots.txt
https://shop.example.comhttps://shop.example.com/robots.txt

HTTP와 HTTPS, 호스트, 포트가 다르면 각각 별도의 robots.txt가 적용됩니다. 따라서 실제 페이지가 열리는 주소를 기준으로 파일을 찾아야 합니다.

브라우저에서 연 robots.txt 파일의 User-agent, Allow, Sitemap 규칙
robots.txt는 도메인의 루트에서 열리며, 검색로봇 대상과 접근 범위를 일반 텍스트로 안내합니다.

국제 표준인 RFC 9309는 robots.txt 규칙을 검색로봇이 따라야 할 기준으로 정리합니다. Googlebot과 네이버 Yeti 같은 주요 검색로봇은 이 규칙을 따르지만 모든 자동화 봇이 반드시 준수하는 것은 아닙니다.

User-agent, Allow, Disallow 규칙 읽기

아래 규칙은 /admin/의 크롤링을 제한하되 /admin/help/는 예외로 허용합니다. User-agent: *는 더 구체적으로 일치하는 그룹이 없는 검색로봇에 적용되며, Sitemap에는 사이트맵 주소를 적습니다.

User-agent: *
Disallow: /admin/
Allow: /admin/help/

Sitemap: https://example.com/sitemap.xml
항목의미
User-agent규칙을 적용할 검색로봇을 지정합니다. 해당 로봇을 따로 지정한 그룹이 없으면 * 그룹을 따릅니다.
Disallow접근을 제한할 경로를 적습니다.
Allow차단 범위 안에서 예외적으로 허용할 경로를 적습니다.
Sitemap사이트맵의 전체 URL을 알려 줍니다.

Disallow 뒤에 /만 적으면 사이트 전체가 차단 범위에 들어갑니다.

Disallow: /

이 규칙은 해당 사용자 에이전트 그룹에 적용됩니다. 다른 그룹을 따르거나 robots.txt를 무시하는 봇의 접근까지 막지는 못합니다. 테스트 중에 설정한 전체 차단 규칙을 운영 사이트에 그대로 두면 새 글 수집과 기존 페이지 재수집이 모두 제한될 수 있습니다.

경로는 대소문자를 구분합니다. Google은 여러 규칙이 일치하면 더 긴 경로의 규칙을 적용하고, 길이가 같은 허용 규칙과 차단 규칙이 충돌하면 Allow를 우선합니다. 위 예제에서 /admin/help/를 수집할 수 있는 이유도 /admin/보다 구체적인 허용 규칙이 있기 때문입니다.

차단할 경로가 없다면 Allow: /로 전체 경로의 크롤링을 허용할 수 있습니다.

User-agent: *
Allow: /

빈 Disallow:를 사용해 차단할 경로가 없다고 표시해도 결과는 같습니다.

User-agent: *
Disallow:

Google은 경로가 비어 있는 Allow:와 Disallow:를 무시합니다. 위의 빈 Disallow: 예제는 다른 차단 규칙이 없기 때문에 전체 크롤링을 허용하는 결과가 됩니다.

robots.txt를 쓰는 상황

막을 경로가 없다면 복잡한 규칙을 만들 필요는 없습니다. URL이 지나치게 많이 생성되거나 불필요한 크롤링이 서버에 부담을 줄 때 차단을 검토합니다.

  • 검색 가치가 없는 필터와 매개변수 URL이 매우 많이 생성됩니다. 매개변수 URL은 주소 뒤에 ?sort=popular처럼 조건이 붙은 형태입니다.
  • 특정 크롤러의 요청으로 서버 부담이 커집니다.
  • 관리자용 경로처럼 검색로봇이 방문할 필요가 없는 영역이 있습니다.
  • 개발 중인 경로를 검색로봇이 반복해서 요청합니다.

JavaScript와 CSS도 페이지 해석에 필요한 리소스입니다. 이를 차단하면 검색로봇이 본문이나 화면 구성을 제대로 파악하지 못할 수 있습니다.

검색결과에서 삭제하거나 비공개로 만들 수 있나요?

원하는 결과사용할 방법
검색로봇이 특정 경로에 방문하지 않게 함robots.txt
페이지를 검색결과에서 제외함noindex
사용자가 페이지를 열지 못하게 함로그인, 비밀번호, 권한 설정
중복 URL 가운데 대표 URL을 알림캐노니컬 태그

robots.txt로 막은 페이지가 검색결과에서 반드시 사라지는 것은 아닙니다. 다른 사이트나 페이지에서 해당 URL로 연결하면 검색엔진은 주소의 존재를 알 수 있기 때문입니다. 이 경우 본문은 읽지 못하더라도 URL만 검색결과에 남을 수 있습니다.

robots.txt로 차단한 페이지에 noindex를 추가해도 검색 제외 지시가 전달되지 않을 수 있습니다. Google의 noindex 안내에 따르면 검색로봇이 페이지에 접근할 수 있어야 그 안의 noindex를 읽을 수 있습니다.

robots.txt는 누구나 열어 볼 수 있는 공개 파일입니다. 여기에 적은 경로도 사용자가 직접 접속할 수 있으므로 고객 정보나 사내 문서는 로그인과 접근 권한으로 보호해야 합니다.

robots.txt에서 자주 생기는 실수

  1. 사이트 전체를 실수로 차단하는 경우. Disallow: /가 운영 환경에 남아 있는지 확인합니다.
  2. 파일을 잘못된 위치에 두는 경우. /folder/robots.txt가 아니라 각 호스트의 루트 경로에 있어야 합니다.
  3. HTML 페이지로 반환하는 경우. robots.txt는 일반 텍스트로 열리고 정상 응답을 반환해야 합니다.
  4. 필요한 JavaScript와 CSS까지 막는 경우. 차단된 리소스가 페이지 본문과 화면 구성에 필요한지 확인합니다.
  5. 경로의 범위를 너무 넓게 잡는 경우. 비슷한 이름의 공개 페이지까지 함께 차단되지 않는지 실제 URL로 테스트합니다.
  6. 다른 주소 환경의 파일을 확인하는 경우. www, 서브도메인, HTTP와 HTTPS 환경을 구분해 현재 페이지에 적용되는 파일을 봅니다.

수정 전에는 차단할 URL과 계속 허용할 URL을 각각 규칙에 대입해 봅니다. 수정 후에는 검색로봇이 새 파일을 읽었는지 점검합니다. 파일을 저장해도 검색로봇이 이전 파일을 캐시하고 있다면 새 규칙이 바로 적용되지 않을 수 있습니다.

robots.txt의 Allow와 Disallow 규칙을 세 개의 실제 URL에 적용한 결과
같은 robots.txt 안에서도 경로 규칙에 따라 URL별 접근 결과가 달라질 수 있습니다.

구글과 네이버에서 robots.txt를 확인하는 법

브라우저에서 도메인 뒤에 /robots.txt를 붙여 파일을 열고 아래 항목을 점검합니다.

  1. 파일이 루트 경로에서 열리는가?
  2. 일반 텍스트로 반환되는가?
  3. 사이트 전체나 의도하지 않은 경로를 차단하는 규칙이 있는가?
  4. 사이트맵 주소가 올바르고 실제로 열리는가?

Google Search Console의 URL 검사에서는 개별 URL을 Google이 가져올 수 있는지 확인할 수 있습니다. 〈robots.txt에 의해 차단됨〉 또는 〈robots.txt에 의해 차단되었으나 색인 생성됨〉 상태가 보이면 해당 URL에 적용되는 규칙부터 찾습니다.

네이버 서치어드바이저에서는 robots.txt 수집과 검증 기능을 제공합니다. 파일을 수정한 뒤 네이버 검색로봇이 정상적으로 읽는지, 공개할 페이지가 차단되지 않았는지 확인하세요.

AI 봇은 목적에 맞게 지정해야 합니다

같은 회사의 봇도 검색, 모델 학습, 사용자 요청에 따라 역할이 다릅니다. 학습에 쓰이는 크롤링만 제한하려면 검색용 봇까지 한꺼번에 차단하지 않도록 대상을 구별해야 합니다.

  • Google: Googlebot이 일반 검색과 Google 검색의 AI 기능을 담당합니다. Google-Extended는 Gemini 모델 학습과 일부 서비스의 답변 근거 제공에 콘텐츠를 이용할지 제어하는 토큰이며, Google 검색 노출과 순위에는 영향을 주지 않습니다.
  • OpenAI: OAI-SearchBot은 검색, GPTBot은 모델 학습, ChatGPT-User는 사용자 요청에 따른 페이지 방문을 담당합니다.
  • Anthropic: Claude-SearchBot은 검색, ClaudeBot은 모델 학습, Claude-User는 사용자 요청에 따른 페이지 방문을 담당합니다.

사용자 요청에 따른 방문에는 자동 크롤링과 다른 정책이 적용될 수 있습니다. OpenAI는 ChatGPT-User의 방문에 robots.txt 규칙이 적용되지 않을 수 있다고 안내합니다. 서비스별 공식 문서에서 봇의 역할과 차단 정책을 확인한 뒤 규칙을 작성합니다.

자주 묻는 질문

robots.txt 파일이 없으면 검색이 안 되나요?

아닙니다. 차단 파일이 없으면 주요 검색로봇은 일반적으로 사이트 접근을 허용된 것으로 처리합니다. 다만 사이트맵 위치를 알리거나 특정 경로를 제한하려면 파일을 만들 수 있습니다.

robots.txt로 페이지를 검색에서 삭제할 수 있나요?

페이지 검색 제외를 보장하지 않습니다. 검색결과에서 제외하려면 검색로봇이 페이지에 접근할 수 있게 한 뒤 noindex를 사용하거나, 페이지 삭제와 접근 보호 등 목적에 맞는 방법을 선택해야 합니다.

robots.txt에 사이트맵을 꼭 적어야 하나요?

필수는 아닙니다. Google Search Console이나 네이버 서치어드바이저에 직접 제출할 수도 있습니다. 다만 robots.txt에 전체 사이트맵 URL을 적으면 검색로봇이 위치를 확인하는 데 도움이 됩니다.

모든 AI 봇을 한 번에 차단해도 되나요?

학습을 막으려는지, AI 검색결과에도 나타나지 않으려는지에 따라 선택이 달라집니다. 학습용 봇만 차단할 수 있는 서비스도 있으므로, 회사 이름만 보고 모든 봇에 같은 규칙을 적용하기보다 공식 문서에 나온 역할별로 결정합니다.

robots.txt를 수정하면 바로 반영되나요?

검색로봇이 파일을 다시 가져와야 새 규칙이 적용됩니다. 반영 시점은 검색엔진과 사이트 상태에 따라 다르므로 수정 직후에는 공식 검사 도구로 현재 상태를 확인하세요.

함께 알아두면 좋은 용어

  • 크롤링: 검색로봇이 URL을 발견하고 페이지 내용을 가져오는 과정
  • noindex: 페이지를 검색 색인에서 제외하라는 지시
  • 사이트맵: 검색엔진에 알리고 싶은 URL 목록을 제공하는 파일
  • 사용자 에이전트: 서버에 요청을 보내는 브라우저나 검색로봇을 식별하는 이름
  • Disallow: robots.txt에서 접근을 제한할 경로를 지정하는 규칙
  • Allow: 차단 범위 안에서 접근을 허용할 예외 경로를 지정하는 규칙

참고 문서