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

robots.txt

마지막 업데이트

robots.txt는 규칙을 따르는 검색로봇에 사이트의 크롤링 허용 범위를 알리는 공개 파일입니다. 검색로봇의 크롤링 요청을 조정하지만 웹페이지 URL을 검색결과에서 숨기거나 비공개 정보를 보호하지는 않습니다.

이 글은 Google 검색 센터와 네이버 서치어드바이저의 공식 안내, 국제 표준 RFC 9309를 기준으로 작성했습니다. Ahrefs, Semrush, Search Engine Land의 실무 자료도 참고했습니다.

검색로봇 접근 범위의 설정

robots.txt는 사이트의 가장 위쪽인 루트 경로에 둡니다. 루트는 도메인 주소 바로 뒤를 뜻합니다. 도메인이 https://example.com이라면 파일 주소는 아래와 같습니다.

https://example.com/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/ 폴더 접근을 제한하고 사이트맵 위치를 알려 줍니다.

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

Sitemap: https://example.com/sitemap.xml
항목의미
User-agent규칙을 적용할 검색로봇을 지정합니다. *는 더 구체적으로 일치하는 그룹이 없는 규칙 준수 크롤러가 사용하는 기본 그룹입니다.
Disallow접근을 제한할 경로를 적습니다.
Allow차단 범위 안에서 예외적으로 허용할 경로를 적습니다.
Sitemap사이트맵의 전체 URL을 알려 줍니다.

가장 주의할 규칙은 아래 한 줄입니다.

Disallow: /

슬래시 하나는 해당 사용자 에이전트 그룹에 사이트 전체를 크롤링하지 말라고 요청합니다. 이 규칙을 따르지 않는 봇이나 별도 그룹이 있는 제품까지 물리적으로 막는 것은 아닙니다. 테스트 환경에서 사용한 규칙이 운영 사이트에 그대로 배포되면 새 글뿐 아니라 기존 페이지의 재수집도 막힐 수 있습니다.

경로 규칙은 대소문자를 구분합니다. 여러 규칙이 맞으면 일반적으로 더 길고 구체적인 경로가 우선하며, 길이가 같으면 Allow가 우선합니다. 실제 URL을 규칙에 대입해 결과를 확인하세요.

반대로 전체 접근을 허용하려고 복잡한 규칙을 만들 필요는 없습니다. 차단할 경로가 없다면 아래처럼 모든 검색로봇의 접근을 명시적으로 허용할 수 있습니다.

User-agent: *
Allow: /

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

User-agent: *
Disallow:

Allow:는 전체 허용 의도를 명확하게 전달하지 않으므로 권장 예시로 사용하지 않습니다.

문법보다 중요한 것은 차단 범위입니다. 필요하지 않은 페이지를 막으려다 검색에 필요한 페이지까지 막는 경우가 있기 때문입니다.

robots.txt를 쓰는 상황

모든 사이트에 복잡한 robots.txt가 필요한 것은 아닙니다. 중요한 페이지가 내부 링크로 잘 연결되어 있고 막을 경로가 없다면 기본 허용 상태로도 충분할 수 있습니다.

다음과 같은 상황에서는 설정을 검토합니다.

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

그렇다고 robots.txt를 크롤링 문제의 만능 해결책으로 사용해서는 안 됩니다. 검색에 필요한 페이지까지 넓게 차단하면 새 콘텐츠 발견과 변경 사항 반영이 늦어질 수 있습니다.

특히 JavaScript와 CSS는 단순한 장식 파일로만 보면 안 됩니다. 검색로봇이 페이지의 화면과 내용을 이해하는 데 필요한 리소스를 막으면 본문을 제대로 해석하지 못할 수 있습니다.

robots.txt가 할 수 없는 일도 있습니다. 검색 제외와 비공개 보호는 다른 설정이 맡습니다.

크롤링 제한, 색인 제외, 접근 보호의 구분

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

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

검색에서 제외하려고 noindex를 함께 넣는 것도 해결책이 아닙니다. Google의 noindex 안내에 따르면 robots.txt가 먼저 접근을 막으면 검색로봇은 페이지 안의 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이 영향을 받는지 목록을 먼저 확인하는 편이 안전합니다. 한 줄을 고친 뒤에는 파일이 저장됐다는 사실만 보지 말고 검색로봇이 새 규칙을 읽었는지도 확인해야 합니다.

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

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

먼저 브라우저에서 도메인 뒤에 /robots.txt를 붙여 직접 엽니다.

확인할 항목은 네 가지입니다.

  1. 파일이 루트 경로에서 열리는가?
  2. HTML 화면이 아니라 일반 텍스트가 표시되는가?
  3. 사이트 전체 차단이나 예상하지 못한 경로가 있는가?
  4. 사이트맵 주소가 현재 도메인과 일치하는가?

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

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

AI 검색로봇도 목적별 사용자 에이전트와 robots.txt 정책을 둘 수 있습니다. Googlebot은 일반 검색과 Google 검색의 AI 기능에 쓰입니다. Google-Extended는 Google 검색 노출과 순위에 영향을 주지 않는 별도 제어 토큰입니다. OpenAI는 검색용 OAI-SearchBot과 학습용 GPTBot, 사용자 요청용 ChatGPT-User를 구분합니다. Anthropic도 Claude-SearchBot, ClaudeBot, Claude-User를 나눕니다. Naver는 별도 AI 크롤러를 공개하지 않았습니다. 같은 회사의 봇도 역할과 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: 차단 범위 안에서 접근을 허용할 예외 경로를 지정하는 규칙

robots.txt는 검색로봇이 어디까지 방문할지 정하는 파일입니다. 검색 제외와 보안, 대표 URL 지정까지 한 파일에서 해결하려고 하면 설정이 충돌하기 쉽습니다.

파일을 수정할 때는 차단할 경로보다 검색에 필요한 페이지가 함께 막히지 않는지를 먼저 확인하세요.

참고 문서