robots.txt란? | robots.txt 파일이 작동하는 방식

robots.txt 파일에는 액세스할 수 있는 웹 페이지와 액세스할 수 없는 웹 페이지를 알려주는 봇에 대한 지침이 포함되어 있습니다. Robots.txt 파일은 Google과 같은 검색 엔진의 웹 크롤러와 가장 관련성이 큽니다.

학습 목표

이 글을 읽은 후에 다음을 할 수 있습니다:

  • robots.txt 파일이 무엇이며 어떤 역할을 하는지 알아보세요
  • 봇이 robots.txt 파일과 상호 작용하는 방식 이해하기
  • 로봇 제외 프로토콜 및 사이트맵을 포함하여 robots.txt 파일에 사용된 프로토콜 탐색

관련 콘텐츠


계속 알아보시겠어요?

인터넷에서 가장 인기 있는 인사이트를 한 달에 한 번 정리하는 Cloudflare의 월간 요약본 theNET를 구독하세요!

Cloudflare가 개인 데이터를 수집하고 처리하는 방법은 Cloudflare의 개인정보 취급방침을 참조하세요.

글 링크 복사

Cloudflare로 자격 증명 스터핑 및 콘텐츠 스크래핑 등의 봇 공격을 방어하세요

robots.txt란?

OSI 모델

robots.txt 파일은 에 대한 지침 세트입니다.이 파일은 대부분의 웹 사이트의 소스 파일에 포함되어 있습니다.Robots.txt 파일은 대부분 웹 크롤러와 같은 좋은 봇의 활동을 관리하기 위한 것입니다. 나쁜 봇은 지침을 따르지 않을 가능성이 높기 때문입니다.

robots.txt 파일은 체육관, 바, 커뮤니티 센터의 벽에 게시된 "행동 강령" 표지판과 같다고 생각하면 됩니다. 표지판 자체에는 나열된 규칙을 강요할 권한이 없지만, "좋은" 손님은 규칙에 따를 것이고 "나쁜" 손님은 규칙을 어기고 스스로 금지를 초래할 가능성이 있습니다.

봇은 웹 사이트 및 애플리케이션과 상호 작용하는 자동화된 컴퓨터 프로그램입니다.좋은 봇과 나쁜 봇이 있으며 좋은 봇의 한 유형으로 웹 크롤러 봇이 있습니다.이 봇은 웹 페이지를 "크롤링"하고 콘텐츠를 색인화하여 검색 엔진 결과에 표시할 수 있습니다.robots.txt 파일은 이러한 웹 크롤러의 활동을 관리하는 데 도움이 되므로 웹 사이트를 호스팅하는 웹 서버나 공개용이 아닌 색인 페이지를 호스팅하는 웹 서버에 무리를 주지 않습니다.

robots.txt 파일은 어떻게 작동할까요?

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 파일이 필요하다는 것입니다. 예를 들어 www.cloudflare.com에는 자체 파일이 있지만, 모든 Cloudflare 하위 도메인(blog.cloudflare.com, community.cloudflare.com 등)도 자체 파일을 필요로 합니다.

robots.txt 파일에는 어떤 프로토콜이 사용될까요?

네트워킹에서 프로토콜은 지침이나 명령을 제공하기 위한 형식입니다. Robots.txt 파일은 몇 가지 다른 프로토콜을 사용합니다. 주요 프로토콜은 로봇 제외 프로토콜이라고 불립니다. 이 프로토콜은 피해야 할 웹 페이지와 리소스를 봇에게 알려주는 방법입니다. 이 프로토콜에 대해 형식화된 지침은 robots.txt 파일에 포함되어 있습니다.

robots.txt 파일에 사용되는 다른 프로토콜은 Sitemap 프로토콜입니다. 이는 로봇 포함 프로토콜로 간주할 수 있습니다. Sitemap은 웹 크롤러가 크롤링할 수 있는 페이지를 보여줍니다. 이는 크롤러 봇이 중요한 페이지를 놓치지 않도록 하는 데 도움이 됩니다.

robots.txt 파일의 예

www.cloudflare.com의 robots.txt 파일은 다음과 같습니다.

OSI 모델

아래에서 이것이 의미하는 바를 분석해보겠습니다.

사용자 에이전트란 무엇일까요? '사용자 에이전트: *'의 의미는?

인터넷에서 활동하는 모든 사람이나 프로그램에는 "사용자 에이전트" 이름이나 할당된 이름이 있습니다. 인간 사용자의 경우 여기에는 브라우저 유형 및 운영 체제 버전과 같은 정보가 포함되지만, 개인 정보는 포함되지 않습니다. 이 이름은 웹 사이트에서 사용자 시스템과 호환되는 콘텐츠를 표시하는 데 도움이 됩니다. 봇의 경우, 사용자 에이전트는 (이론적으로) 웹 사이트 관리자가 사이트를 크롤링하는 봇의 종류를 알 수 있도록 도와줍니다.

robots.txt 파일에서 웹 사이트 관리자는 봇 사용자 에이전트에 대한 다양한 지침을 작성하여 특정 봇에 대하여 특정 지침을 제공할 수 있습니다. 예를 들어 관리자가 특정 페이지가 Google 검색 결과에 표시되기를 원하지만, Bing 검색에는 표시되지 않기를 원하는 경우 , robots.txt 파일에 "User-agent: Bingbot"이 앞에 오는 명령 세트와 "User-agent: Googlebot"이 앞에 오는 명령 세트 등 두 세트를 포함할 수 있습니다.

위의 예에서 Cloudflare에서는 robots.txt 파일에 "User-agent: *"를 포함했습니다. 별표는 "와일드 카드" 사용자 에이전트를 나타내며, 이는 지침이 특정 봇이 아닌 모든 봇에 적용됨을 의미합니다.

일반적인 검색 엔진 봇 사용자 에이전트 이름은 다음과 같습니다.

Google:

  • Googlebot
  • Googlebot-Image(이미지용)
  • Googlebot-News (뉴스용)
  • Googlebot-Video(동영상용)

Bing

  • Bingbot
  • MSNBot-Media(이미지 및 비디오용)

Baidu

  • Baiduspider

robots.txt 파일에서 '허용 안 함(Disallow)' 명령은 어떻게 작동할까요?

Disallow 명령은 로봇 제외 프로토콜에서 가장 일반적입니다. 이 명령은 명령 뒤에 오는 웹 페이지 또는 웹 페이지 집합에 액세스하지 않도록 봇에 지시합니다. 허용되지 않는 페이지가 반드시 "숨겨진" 것은 아닙니다. 일반 Google 또는 Bing 사용자에게 유용하지 않으므로 표시되지 않는 것뿐입니다. 대부분의 경우, 웹 사이트 사용자는 어디에서 찾을 수 있는지 알면 여전히 이러한 페이지로 이동할 수 있습니다.

Disallow 명령은 여러 가지 방법으로 사용할 수 있으며 그 중 몇 가지가 위의 예에 표시되어 있습니다.

하나의 파일(즉, 하나의 특정 웹 페이지) 차단

예를 들어 Cloudflare에서 봇이 "봇이란?"이라는 글을 크롤링하지 못하도록 차단하려는 경우, 이 명령은 다음과 같이 작성됩니다.

Disallow: /learning/bots/what-is-a-bot/

"disallow" 명령 뒤에는, 홈페이지 뒤에 오는 웹 페이지 URL의 부분(이 경우 "www.cloudflare.com")이 포함되어 있습니다. 이 명령을 사용하면 좋은 봇은 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 프로토콜이 robots.txt에 포함된 이유는?

Sitemap 프로토콜은 봇이 웹 사이트 크롤링에 포함할 내용을 알도록 도와줍니다.

sitemap은 다음과 같은 XML 파일입니다.

sitemap의 예

sitemap은 웹 사이트의 모든 페이지를 기계로 읽을 수 있는 목록입니다. Sitemap 프로토콜을 통해 이러한 sitemap에 대한 링크를 robots.txt 파일에 포함할 수 있습니다. 형식은 "Sitemaps:" 다음에 XML 파일의 웹 주소가 옵니다. 위의 Cloudflare robots.txt 파일에서 몇 가지 예를 볼 수 있습니다.

Sitemap 프로토콜은 웹 스파이더 봇이 웹 사이트를 크롤링할 때 아무것도 놓치지 않도록 하는 데 도움이 되지만, 봇은 여전히 일반적인 크롤링 프로세스를 따릅니다. Sitemap은 크롤러 봇이 웹 페이지의 우선순위를 다르게 지정하도록 강제하지 않습니다.

robots.txt는 봇 관리와 어떤 관련이 있을까요?

봇 관리는 웹 사이트나 애플리케이션을 계속 가동하고 실행하는 데 필수적입니다. 좋은 봇 활동도 원본 서버에 부담을 주어 웹 자산을 느리게 하거나 다운시킬 수 있기 때문입니다.잘 구성된 robots.txt 파일은 SEO에 대하여 최적화된 웹 사이트를 유지하고 좋은 봇 활동을 제어합니다.

그러나 robots.txt 파일은 악의적 봇 트래픽을 관리하는 데 별로 도움이 되지 않습니다.Cloudflare Bot Management 또는 슈퍼 봇 차단 모드와 같은 봇 관리 솔루션은 웹 크롤러와 같은 필수 봇에 영향을 주지 않고 악의적인 봇 활동을 억제하는 데 도움이 될 수 있습니다.

Robots.txt 이스터 에그

때때로 robots.txt 파일에는 이스터 에그가 포함되어 있습니다. 이 파일은 사용자가 거의 볼 수 없다는 것을 알고 있기 때문에 개발자가 포함시킨 유머러스한 메시지입니다.예를 들어, YouTube robots.txt 파일에서는 "모든 인간을 전멸시킨 90년대 중반의 로봇 봉기 이후 먼 미래(2000년)에 생성됨"이라고 읽을 수 있습니다.Cloudflare robots.txt 파일에서는 "안녕, 로봇, 잘 부탁해."라고 요청합니다.


#  ._____________________________________. 
 # | .__________________________________. |==| 
 # | | .................. | | | 
 # | | ::[ 안녕, 로봇 ]: | | | 
 # | | ::::[ 잘 부탁해 ]:: | | | 
 # | | ::::::::::::::::: | | | 
 # | | ::::::::::::::::: | | | 
 # | | ::::::::::::::::: | | | 
 # | | ::::::::::::::::: | | ,| 
 # | !________________________________! |(c| 
 # !_______________________! __ ! 
 # / \ 
 # / [][][][][][][][][][][][][] \ 
 # / [][][][][][][][][][][][][][] \ 
 #( [][][][][____________][][][][ ] ) 
 # \ ------------------------------ / 
 # \_________________________________________/

Google에는 "humans.txt"도 있습니다.파일: https://www.google.com/humans.txt