로봇 프로토콜

검색엔진로그 2011. 3. 7. 23:51


인터넷을 돌아다니며 사이트 정보를 수집하는 크롤러는 자신이 관심 있는 모든 웹문서들을 수집한다. 
하지만 사이트 호스트 입장에서는, 보호하고 싶은 자료들도 있을 텐데... 크롤러를 대비해서 모든 문서를 별도로
관리하기란 여간 번거로운 일이 아니다.  호스트는 로봇배제파일과 로봇프로토콜을 사용하여 크롤러(로봇 )에게
노출하고, 숨길 페이지들을 명시해 줄 수 있다.  그럼 로봇배체 파일과 로봇 프로토콜에 대해서 알아보자


1. 로봇 배제파일과 로봇 프로토콜이란?

특정 웹크롤러에게 사이트 내 수집대상에서 제외할 페이지를  명시한 파일을 로봇배제 파일이라고 한다. 

이 로봇 파일은 해당 웹사이트의 루트 위치에 robots.txt 라는 이름으로 존재하며, 이 파일이 따르는 프로토콜을

로봇 프로토콜이라고 한다.  크롤러가 반드시 이 프로토콜을 따르도록 하는 규제는 없으며, 양심적인 크롤러라면

이 프로토콜을 따를 것이다. 프로토콜은 크롤러의 종류를 명시하는 User-agen 항목과 사이트 내 수집을 배제할 

페이지 패턴을 나타내는 Disallow 로 구성된다. 



2. 로봇 프토토콜  

User-agent: *<= 크롤러의 이름, *는 모든 크롤러에 해당함    

Disallow: /<= 수집배제할 페이지 패턴, 모든 페이지에 대한 수집을 금함


위 로봇 프로토콜은 모든 크롤러의 모든 페이지 접근을 제한하고 있다. 

User-agent: *

Disallow: /

User-agent: Googlebot

Disallow: /cgi-bin/

Disallow: /privatedir/


 

위 로봇 프로토콜은 Googlebot  크롤러만 수집을 허용하며, 명시한 2개의 패턴을 갖는 자원으로의 접근들은 제한한다.

로봇 프로토콜은  표준은 아니지만  구글 크롤러만 인식할 수 있는 Allow 항목을 지원한다. 

User-agent: *

Disallow: /

User-agent: Googlebot

Allow: /

 구글 크롤러만 수집을 허용하는 로봇 프로토콜이다. Allow 항목은 표준이 아니기 때문에, 반드시 필요한 경우가 아니면

사용하지 않는 것이 좋다. 



  3. 로봇 메타태그

웹호스트가 robots.txt 파일의 업로드를 허용하지 않는데도, 특정 페이지의 수집을 허용하고 싶지 않을 때,  robots.txt 대신에

로봇 메타태그를 사용할 수 있다. 로봇 메타태그는 일반적인 html의  메타태그와 유사하게 HEAD 섹션에 기술된다. 


 

(no)index는 크롤러에게 페이지 인덱싱을 허용할 지 말지를 결정한다.   noindex 또는 index 값을 갖을 수 있다. 

(no)follow는 크롤러에게 페이지 상에 존재하는 링크를 따라가서 수집하게 할지 말지를 결정한다.  nofollow 또는 follow 값을 갖는다.


<meta name="robots" content="noindex,follow" />
 인덱싱과 링크를 통한 이동을 허용하지 않는다.



<meta name="robots" content="noindex,follow" />
 인덱싱을 허용하지 않지만, 링크를 타고 가는 것을 허용한다. 



<meta name="robots" content="index,nofollow" />
 인덱싱을 허용하지만, 링크를 크롤하지 못하게 한다. 

  

<meta name="robots" content="none">
 noindex, nofollow 와 동일함 

 

 

4. 몇가지 잘 알려진 로봇 식별자들

ip는 검색엔진들이 사용하는 주소이며, 로봇 식별자는 웹사이트 방문시 전송하는 로봇의 이름이다. 일반적으로 로봇의 이름에 버전이 붙는다. n은 여러가지 수가 올 수 있음을 의미한다. 

홈페이지로봇 식별자IP address
www.google.com Googlebot c<nn>.googlebot.com
www.naver.com dloader(NaverRobot) / dumrobo 211.218.151.209
www.daum.net RaBot 210.183.28.46
... ... ...