robots.txt 파일은 봇 행동에 대한 웹 사이트의 선호도를 나열합니다. 이는 봇에게 액세스해야 하는 웹 페이지와 액세스해서는 안 되는 웹 페이지를 알려줍니다. robots.txt 파일은 웹 크롤러와 가장 관련성이 큽니다.
이 글을 읽은 후에 다음을 할 수 있습니다:
관련 콘텐츠
인터넷에서 가장 인기 있는 인사이트를 한 달에 한 번 정리하는 Cloudflare의 월간 요약본 theNET를 구독하세요!
글 링크 복사
robots.txt 파일은 봇에 대한 지침 모음입니다. 이 파일은 대부분의 웹 사이트의 소스 파일에 포함되어 있습니다. robots.txt 파일은 웹 크롤러와 같은 봇의 활동을 관리하기 위한 것이지만, 모든 봇이 지침을 따르는 것은 아닙니다.
robots.txt 파일은 체육관, 바, 커뮤니티 센터의 벽에 게시된 "행동 강령" 표지판과 같다고 생각하면 됩니다. 표지판 자체에는 나열된 규칙을 강요할 권한이 없지만, "좋은" 손님은 규칙에 따를 것이고 "나쁜" 손님은 규칙을 어기고 스스로 금지를 초래할 가능성이 있습니다.
봇은 웹 사이트 및 애플리케이션과 상호 작용하는 자동화된 컴퓨터 프로그램입니다. 봇 중에는 웹 크롤러 봇이라는 유형이 있습니다. 이 봇은 웹 페이지를 '크롤링'하고 콘텐츠를 색인화하여 검색 엔진 결과에 표시할 수 있습니다. robots.txt 파일은 이러한 웹 크롤러의 활동을 관리하는 데 도움이 되므로 웹 사이트를 호스팅하는 웹 서버나 공개용이 아닌 색인 페이지를 호스팅하는 웹 서버에 무리를 주지 않습니다. robots.txt 파일은 AI 크롤러 봇의 활동을 관리하는 데 도움이 될 수 있으며, 이는 때때로 기존 웹 크롤러 봇보다 웹 서버에 훨씬 더 많은 부담을 줄 수 있습니다.
robots.txt 파일은 HTML 마크업 코드가 없는 텍스트 파일입니다(따라서 .txtextension임).robots.txt 파일은 웹 사이트의 다른 파일과 마찬가지로 웹 서버에서 호스팅됩니다.실제로 특정 웹 사이트의 robots.txt 파일은 일반적으로 홈페이지의 전체 URL을 입력한 다음 /robots.txt를 추가하면 확인할 수 있습니다.https://www.cloudflare.com/robots.txt처럼요.이 파일은 사이트의 다른 곳과 연결되어 있지 않으므로 사용자가 이 파일을 우연히 발견할 가능성은 없지만, 대부분의 웹 크롤러 봇은 사이트의 나머지 부분을 크롤링하기 전에 먼저 이 파일을 찾습니다.
robots.txt 파일은 봇에 대한 지침을 제공하지만, 실제로 지침을 시행할 수는 없습니다. 웹 크롤러, 뉴스 피드 봇 등 일부 봇은 도메인의 다른 페이지를 보기 전에 먼저 robots.txt 파일을 방문하려고 시도하고 지침을 따를 수 있습니다. 다른 봇은 robots.txt 파일을 무시하거나 robots.txt 파일을 처리해서 금지된 웹 페이지를 찾습니다.
robots.txt를 준수하는 웹 크롤러 봇은 robots.txt 파일의 가장 구체적인 지침 집합에 따릅니다. 파일에 모순되는 명령이 있는 경우 봇은 보다 세분화된 명령에 따릅니다.
한 가지 중요한 점은 모든 하위 도메인에는 자체 robots.txt 파일이 필요하다는 것입니다. 예를 들어 www.cloudflare.com에는 자체 파일이 있지만, 모든 Cloudflare 하위 도메인(blog.cloudflare.com, community.cloudflare.com 등)도 자체 파일을 필요로 합니다.
네트워킹에서 프로토콜은 지침이나 명령을 제공하기 위한 형식입니다. Robots.txt 파일은 몇 가지 다른 프로토콜을 사용합니다. 주요 프로토콜은 로봇 제외 프로토콜이라고 불립니다. 이 프로토콜은 피해야 할 웹 페이지와 리소스를 봇에게 알려주는 방법입니다. 이 프로토콜에 대해 형식화된 지침은 robots.txt 파일에 포함되어 있습니다.
robots.txt 파일에 사용되는 다른 프로토콜은 Sitemap 프로토콜입니다. 이는 로봇 포함 프로토콜로 간주할 수 있습니다. Sitemap은 웹 크롤러가 크롤링할 수 있는 페이지를 보여줍니다. 이는 크롤러 봇이 중요한 페이지를 놓치지 않도록 하는 데 도움이 됩니다.
여기 www.cloudflare.com의 robots.txt 파일의 오래된 버전이 있습니다.
아래에서 이것이 의미하는 바를 분석해보겠습니다.
인터넷에서 활동하는 모든 사람이나 프로그램에는 "사용자 에이전트" 이름이나 할당된 이름이 있습니다. 인간 사용자의 경우 여기에는 브라우저 유형 및 운영 체제 버전과 같은 정보가 포함되지만, 개인 정보는 포함되지 않습니다. 이 이름은 웹 사이트에서 사용자 시스템과 호환되는 콘텐츠를 표시하는 데 도움이 됩니다. 봇의 경우, 사용자 에이전트는 (이론적으로) 웹 사이트 관리자가 사이트를 크롤링하는 봇의 종류를 알 수 있도록 도와줍니다.
robots.txt 파일에서 웹 사이트 관리자는 봇 사용자 에이전트에 대한 다양한 지침을 작성하여 특정 봇에 대하여 특정 지침을 제공할 수 있습니다. 예를 들어 관리자가 특정 페이지가 Google 검색 결과에 표시되기를 원하지만, Bing 검색에는 표시되지 않기를 원하는 경우 , robots.txt 파일에 "User-agent: Bingbot"이 앞에 오는 명령 세트와 "User-agent: Googlebot"이 앞에 오는 명령 세트 등 두 세트를 포함할 수 있습니다.
위의 예에서 Cloudflare에서는 robots.txt 파일에 'User-agent: *'를 포함했습니다. 별표는 '와일드 카드' 사용자 에이전트를 나타내며, 이는 지침이 특정 봇이 아닌 모든 봇에 적용됨을 의미합니다.
일반적인 검색 엔진 봇 사용자 에이전트 이름은 다음과 같습니다.
Google:
Bing
Baidu
Disallow 명령은 로봇 제외 프로토콜에서 가장 일반적입니다. 이 명령은 명령 뒤에 오는 웹 페이지 또는 웹 페이지 집합에 액세스하지 않도록 봇에 지시합니다. 허용되지 않는 페이지가 반드시 '숨겨진' 것은 아닙니다. 일반 Google 또는 Bing 사용자에게 유용하지 않으므로 표시되지 않는 것뿐입니다. 대부분의 경우, 웹 사이트 사용자는 어디에서 찾을 수 있는지 알면 여전히 이러한 페이지로 이동할 수 있습니다.
Disallow 명령은 여러 가지 방법으로 사용할 수 있으며 그 중 몇 가지가 위의 예에 표시되어 있습니다.
예를 들어 Cloudflare에서 봇이 "봇이란?"이라는 글을 크롤링하지 못하도록 차단하려는 경우, 이 명령은 다음과 같이 작성됩니다.
Disallow: /learning/bots/what-is-a-bot/
'disallow' 명령 뒤에는, 홈페이지 뒤에 오는 웹 페이지 URL의 부분(이 경우 "www.cloudflare.com")이 포함되어 있습니다. 이 명령을 사용하면 robots.txt 지침을 준수하는 봇은 https://www.cloudflare.com/learning/bots/what-is-a-bot/에 액세스하지 않으며, 따라서 해당 페이지가 일반적인 검색 엔진 결과에 표시되지 않을 수 있습니다.
때로는 모든 페이지를 개별적으로 나열하는 대신 한 번에 여러 페이지를 차단하는 것이 더 효율적입니다. 페이지들이 웹 사이트의 동일한 섹션에 모두 있는 경우 robots.txt 파일에서 해당 항목이 포함된 디렉터리를 차단할 수 있습니다.
위의 예는 다음과 같습니다.
Disallow: /__mesa/
이는 __mesa 디렉터리에 포함된 모든 페이지는 크롤링하면 안 된다는 것을 의미합니다.
이러한 명령은 다음과 같은 모습입니다.
Disallow:
이는 봇에게 허용되지 않는 것이 없으므로 전체 웹 사이트를 탐색할 수 있음을 알려줍니다.
Disallow: /
여기서 '/'는 웹 사이트 계층 구조의 '루트' 또는 다른 모든 페이지가 분기되는 페이지를 나타내므로 홈페이지와 링크된 모든 페이지가 포함됩니다. 이 명령을 사용하면 검색 엔진 봇이 웹 사이트를 전혀 크롤링하지 못할 수 있습니다.
Allow: 예상할 수 있는 바와 같이, 'Allow' 명령으로는 봇에게 특정 웹 페이지 또는 디렉터리에 액세스할 권한이 부여됩니다. 이 명령은 봇이 하나의 특정 웹 페이지에 도달하도록 허용하고 파일의 나머지 웹 페이지는 허용하지 않도록 하는 웹 사이트의 기본 설정을 나타냅니다. 모든 검색 엔진에서 이 명령이 인식되는 것은 아닙니다.
크롤링 지연(Crawl-delay): Crawl-delay 명령은 검색 엔진 스파이더 봇 때문에 서버에 과도한 부담을 가해지지 않도록 하기 위한 것입니다.이 명령을 사용하여 관리자는 봇이 각 요청 사이에 대기해야 하는 시간을 밀리초 단위로 지정할 수 있습니다.다음은 8밀리초를 기다리는 Crawl-delay 명령의 예입니다.
Crawl-delay: 8
다른 검색 엔진은 인식하는 경우가 많지만, Google에서는 이 명령이 인식되지 못합니다. Google의 경우 관리자는 Google Search Console에서 웹 사이트의 크롤링 빈도를 변경할 수 있습니다.
Sitemap 프로토콜은 봇이 웹 사이트 크롤링에 포함할 내용을 알도록 도와줍니다.
sitemap은 다음과 같은 XML 파일입니다.
sitemap은 웹 사이트의 모든 페이지를 기계로 읽을 수 있는 목록입니다. Sitemap 프로토콜을 통해 이러한 sitemap에 대한 링크를 robots.txt 파일에 포함할 수 있습니다. 형식은 "Sitemaps:" 다음에 XML 파일의 웹 주소가 옵니다. 위의 Cloudflare robots.txt 파일에서 몇 가지 예를 볼 수 있습니다.
Sitemap 프로토콜은 웹 스파이더 봇이 웹 사이트를 크롤링할 때 아무것도 놓치지 않도록 하는 데 도움이 되지만, 봇은 여전히 일반적인 크롤링 프로세스를 따릅니다. Sitemap은 크롤러 봇이 웹 페이지의 우선순위를 다르게 지정하도록 강제하지 않습니다.
봇 관리는 웹 사이트나 애플리케이션을 계속 가동하고 실행하는 데 필수적입니다. 좋은 봇 활동도 원본 서버에 부담을 주어 웹 자산을 느리게 하거나 다운시킬 수 있기 때문입니다. 잘 구성된 robots.txt 파일은 SEO에 대하여 최적화된 웹 사이트를 유지하고 정상적인 봇 활동을 제어합니다. robots.txt 파일은 악성 봇 트래픽을 관리하는 데 별로 도움이 되지 않습니다.
robots.txt의 중요성에도 불구하고, 2025년 Cloudflare의 조사에서 robots.txt 파일이 있는 곳은 전체 웹 사이트 상위 10,000개 중 37%에 불과했습니다. 이는 많은 웹 사이트, 아마도 대다수가 이 도구를 사용하지 않는다는 것을 의미합니다. 이러한 웹 사이트, 특히 원본 콘텐츠가 AI 학습에 사용되는 것을 원하지 않는 웹 사이트를 지원하기 위해 Cloudflare에서는 '관리형 robots.txt'를 제공합니다. 이는 웹 사이트를 대신하여 robots.txt 파일을 생성하거나 원하는 설정으로 업데이트하는 서비스입니다. 관리형 robots.txt에 대해 자세히 알아보세요.
때때로 robots.txt 파일에는 이스터 에그가 포함되어 있습니다. 이 파일은 사용자가 거의 볼 수 없다는 것을 알고 있기 때문에 개발자가 포함시킨 유머러스한 메시지입니다.예를 들어, YouTube robots.txt 파일에서는 "모든 인간을 전멸시킨 90년대 중반의 로봇 봉기 이후 먼 미래(2000년)에 생성됨"이라고 읽을 수 있습니다.Cloudflare robots.txt 파일에서는 "안녕, 로봇, 잘 부탁해."라고 요청합니다.
# ._____________________________________.
# | .__________________________________. |==|
# | | .................. | | |
# | | ::[ 안녕, 로봇 ]: | | |
# | | ::::[ 잘 부탁해 ]:: | | |
# | | ::::::::::::::::: | | |
# | | ::::::::::::::::: | | |
# | | ::::::::::::::::: | | |
# | | ::::::::::::::::: | | ,|
# | !________________________________! |(c|
# !_______________________! __ !
# / \
# / [][][][][][][][][][][][][] \
# / [][][][][][][][][][][][][][] \
#( [][][][][____________][][][][ ] )
# \ ------------------------------ /
# \_________________________________________/
Google에는 "humans.txt"도 있습니다.파일: https://www.google.com/humans.txt
robots.txt 파일은 웹 사이트의 소스 파일에 위치한 봇 행동에 대한 웹 사이트의 선호 목록입니다. 이 파일은 검색 엔진 웹 크롤러와 같은 좋은 봇에게 웹 사이트의 접근 가능한 부분과 피해야 할 부분에 대한 지침을 제공하여 트래픽을 관리하고 인덱싱을 제어하는 데 도움이 됩니다. 이 파일에는 AI 크롤러에 대한 규칙을 나열할 수도 있습니다.
웹 크롤러는 검색 엔진을 위해 웹 페이지를 방문하고 색인화하여 사용자가 검색 결과를 통해 콘텐츠를 찾을 수 있도록 돕는 자동화된 봇입니다.
로봇 제외 프로토콜은 robots.txt 파일의 지침 형식입니다. 이 프로토콜은 웹 크롤러에게 웹 사이트에서 접근하거나 크롤링하지 말아야 할 웹 페이지나 리소스를 지시합니다.
'User-agent'는 robots.txt 파일에서 지침이 적용될 봇 또는 봇 그룹을 지정합니다. 'User-agent: *'는 이 규칙이 모든 봇에 적용된다는 것을 의미합니다.
Disallow 명령은 봇에게 웹 사이트의 특정 페이지나 디렉터리를 크롤링하지 말라고 지시합니다. 예를 들어, 'Disallow: /private/'는 봇에게 'private' 디렉터리에 접근하지 말라고 지시합니다.
Sitemaps 프로토콜을 사용하면 웹 사이트 소유자는 robots.txt에 자신의 sitemap XML 파일에 대한 링크를 포함할 수 있으므로, 봇이 크롤링해야 할 페이지를 찾는 데 도움이 됩니다.
좋은 봇은 robots.txt 지침을 따를 가능성이 높으며 유용한 서비스를 제공합니다. 예를 들어, 검색 엔진 웹 크롤러는 검색을 위해 콘텐츠를 색인할 때 일반적으로 robots.txt 규칙을 준수합니다. 나쁜 봇은 robots.txt를 무시하는 경우가 많고 콘텐츠를 스크래핑하거나 웹 사이트를 공격하거나 웹 사이트의 비용을 증가시키는 과도한 요청을 보낼 수 있습니다.
Crawl-delay 명령은 서버에 과부하가 걸리지 않도록 요청 간 대기 시간을 봇에게 알려줍니다. 모든 봇이 이 명령을 따르는 것은 아닙니다. 예를 들어 Googlebot은 그렇지 않지만, Google에서는 웹 사이트 관리자가 Google Search Console을 통해 유사한 규칙을 설정할 수 있도록 허용합니다.
잘 구성된 robots.txt 파일은 검색 엔진 크롤러 봇에 색인할 페이지를 알려 SEO를 개선할 수 있으며, 불필요하거나 중복된 콘텐츠가 색인화되지 않도록 방지하는 데 도움이 됩니다. 또한 robots.txt는 웹 크롤러가 사이트맵을 통해 색인화해야 하는 모든 페이지를 찾는 데 도움이 될 수 있습니다.