검색로봇 및 robots.txt 설정

2014. 1. 10. 14:22일 이야기

* 검색로봇

각각의 검색사이트는 자체적인 검색로봇을 이용해 웹의 정보를 수집하고 있다.
 
하지만, 지나친 정보수집 과정으로 인하여, 트래픽증가를 유발하거나, 공개하고 싶지 않은 정보까지 무차별적으로 긁어가는 것이 문제점이다.
(어느날부터 방문자수가 늘어났다.. 그게 사람 때문일지, 봇 때문일지...)
 
이에 검색 로봇이 웹사이트에 접근하는것을 막고자 1994년에 관련 규약이 만들어졌지만, 어디까지나, 권고안일뿐 강제성은 없다. 하지만, 없는것보다는 있는 게 좋을 듯 싶다.
 
웹사이트 루트 디렉토리에 robots.txt 란 파일을 만들거나, meta 태그로 간단하게 설정할 수 있다.
 
구체적인 설정 방법은 http://www.robotstxt.org 를 참조하면 될 듯 싶다.
 
만약, 간단하게 robots.txt 값을 설정하려면, http://www.mcanerin.com/EN/search-engine/robots-txt.asp 참조.
아울러, robots.txt 가 잘 동작하는지 확인여부는 http://tool.motoricerca.info/robots-checker.phtml 참조.
 
현재까지 활동중인 검색로봇은 Robot Database 에 등록된것만 300개가 넘는다. 이들이 모두 규약을 지키는지는 알 수 없다. 심지어, 검색사이트간 정보 수집 불가 설정들을 보면, 그저 웃움만 나온다.
내 정보는 소중하고, 남의 정보는 불가 설정을 무시하며, 가져오는..
 
- http://blog.naver.com/robots.txt
- http://google.com/robots.txt 
 
구글의 경우 검색로봇이 웹사이트를 방문하여 자동으로 웹페이지를 수집하고 저장하게 되며, 저장 기간은 거의 영구적입니다. 따라서 인터넷을 통해 활동한 내역이 구글에 고스란히 노출될 수 있습니다. 그리고 노출된 이후에는 삭제가 결코 간단하지 않습니다. 특히 민감한 개인정보가 아닌 경우 삭제가 거부될 수 있습니다.

1. 구글에 노출된 웹페이지의 정보가 자신이 운영하는 사이트인 경우에는 직접 삭제 요청하셔야 합니다.
   특히 robots.txt 파일을 웹사이트의 루트 디렉토리에 올려두게 되면 더 효과적입니다.

1-1. 티스토리 블로그와 같은 경우, robots.txt 파일의 업로드가 불가능하므로 메타 태그를 웹페이지에 삽입하면 됩니다. 단, 완벽하지 않을 수 있습니다.

2. 네이버 등의 포털 사이트 운영자가 아니라 그냥 이용자에 불과한 경우, robots.txt 파일을 업로드할 수 없습니다. 이러한 경우 오로지 구글측에 삭제 요청해야 합니다.

구글에 삭제요청하는 방법은 구글의 웹마스터 도구에 가입한 후, 삭제를 원하는 웹페이지를 신청하면 됩니다. 구글 웹마스터 도구를 사용하시기 위해서는 구글 계정 가입이 필요합니다. 도움말은 아래와 같습니다.
http://www.google.com/support/webmasters/?hl=kr

끝으로 구글의 경우 바로 메일로 연락하실 수는 없습니다. 아울러 웹페이지 삭제 요청은 거부될 수도 있습니다.

참고하시기 바랍니다.

* 티스토리에서는 robots.txt 파일에 손을 댈수가 없다!!!
예를 들어 http://2proo.tistory.com 이 계정주소라고 하면 robots.txt 파일은 루트에 있어야 한다.
http://2proo.tistory.com/robots.txt 이어야한다는 것.

티스토리 유저는 저 루트에 접근할 수 없다. 루트 접근권한이 티스토리 유저에겐 없다!!!
업로드 해봐야 티스토리 유저가 올릴수 있는 곳은 스킨폴더밖에 없다.

티스토리에서 로봇에 관련한 검색을 좀 했었는데 구문과 쓰는 방법, 파일 올리는거, 이런건 정말 많이 있지만
정작 티스토리에선 사용 못한다는걸 알려주는곳이 없었다!!! (내가 못찾았을수도..)
티스토리는 robots.txt 파일을 못건드린다고!!! 왜 안되면 안된다고 말을 안해주는거야!!!
설치형 블로그에나 적용가능하단걸.. 그 기본적인걸 왜.. 몰랐을까 ㅡㅡ;

다만 이 계기로.. html 태그 내부에 meta 태그를 이용해서

 Meta Tag

 문서 수집

 링크수집

 <meta name="Robots" content="ALL">

 O

 <meta name="Robots" content="index,follow">

이 문서 수집 O

링크된 문서 수집 O 

 <meta name="Robots" content="noindex,follow">

이 문서 수집 X 

링크된 문서 수집 O

 <meta name="Robots" content="index,nofollow">

이 문서 수집 O

링크된 문서 수집 X

 <meta name="Robots" content="noindex,nofollow">

이 문서 수집 X

링크된 문서 수집 X

이런식으로도 검색엔진 로봇 제어가 가능하다는걸 배웠다.. 어휴...;;;

robots.txt 설정

일부 Naver 고객센터 인용 
로봇 배제 표준이란 말 그대로 웹 문서를 수집해 가는 로봇을 배제한다는 뜻입니다.
로봇의 배제와 관련된 내용을 적어 놓은 robots.txt 파일을 사이트의 최상위 주소(서버 루트 디렉토리 예:www.naver.com/robots.txt)에 저장하면 됩니다. (robots.txt를 서브디렉토리에 저장할 경우에는 효력이 없다는 사실에 주의)  예를 들어, www.yourhost/~mypage 밑에 robots.txt가 있어도 이는 아무런 효력을 갖지 못합니다.
로봇은 오직 루트 디렉토리의 robots.txt만을 참조할 뿐입니다.
로봇의 접근을 어디까지 허용할 것이냐에 따라 robots.txt에 들어가는 내용은 달라집니다.
(robot.txt가 아닌 복수형인 robots.txt 임에 주의해주세요.) 

robots.txt 저장 방법 안내
1. 홈페이지 전체가 모든 검색엔진에 노출되는 것을 원하지 않을 때 
 코드:
 User-agent: *
 Disallow: /

2. 홈페이지 전체가 모든 검색엔진에 노출되기를 원할 때 
 코드:
 User-agent: *
 Disallow:
 
(Ex1과 비교했을 때 “/”가 빠져 있습니다. robots.txt를 작성하지 않으면 모두 검색허용으로 간주됩니다.) 
 
3. 홈페이지 디렉토리의 일부만 검색엔진에 노출하고 싶을 때 
 코드:
 User-agent: *
 Disallow: /my_photo/
 Disallow: /my_diary/
(이렇게 작성하면 로봇은 my_photo, my_diary라는 폴더에 속한 웹문서에 접근할 수 없습니다.) 
 
4. 홈페이지 전체가 검색되길 원하지만 특정 검색엔진을 거부하고 싶을 때 
 코드:
 User-agent: EvilRobot
 Disallow: /

위의 예에서는 “EvilRobot”이라는 이름을 가진 로봇만을 배제하게 됩니다.
('네이버'에 대해서 막고 싶다면 NaverBot을 User-agent로 설정해주시면 됩니다. Naverbot은 네이버 로봇의 이름입니다.) 
 
5. 홈페이지 전체가 검색되길 원하지만 특정 검색엔진에게만 노출되기를 원할 때 
 코드:
 User-agent: NaverBot
 Disallow:
 User-agent: *
 Disallow: /
(이 경우 NaverBot만이 웹문서를 수집해갈 수 있습니다.) 

“robots.txt”를 작성하는 것과 유사한 방법으로 HTML문서의 (HEAD)와 (/HEAD)태그 사이에
(META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW")라는 메타태그를 추가하면 로봇은 웹 문서를 가져갈 수 없습니다. 이 방법은 다소 번거롭기는 하지만 문서 하나하나에 대해 정확하게 명시를 해주기 때문에 가장 확실하게 로봇의 접근을 막을 수 있는 방법입니다.

로봇 배제에 대한 보다 자세한 내용은 http://www.robotstxt.org 에서 확인할 수 있습니다.
robots.txt를 서버에 저장하고 로봇이 직접 방문하지 않는 경우라고 하더라도 본인의 홈페이지 중 일부 내용 혹은 링크 값이 NAVER 웹 문서 검색 결과에 나타나는 경우가 있을 수 있습니다. 이는 다른 웹 문서들이나 사이트들이 해당 웹 문서를 링크한 경우, 그 링크에 제시된 설명에 의해서 자동적으로 생성되는 것으로, 해당 웹 사이트의 robots.txt의 존재유무나 로봇의 동작과는 무관할 수 있습니다. 

* User-agent : 수집하는 주체의 범위를 정합니다. *으로 설정할 경우 모든 봇의 접근이 격리됩니다.
  naver의 경우 봇 이름은 Naverbot입니다.
  User-agent : * '와 같은 꼴로 사용합니다.
* Allow : 뜻 그대로 허락할 디렉토리를 설정합니다.
* Disallow : 뜻 그대로 불허할 디렉토리를 설정합니다.
  Disallow: 뒤에 아무것도 표시하지 않을 경우에도, 모든 접근을 허락한다는 뜻이 되므로 유의하세요.
  만약 모든 디렉토리의 접근을 막고 싶다면 'Disallow: /'와 같이 쓰면 됩니다. 

다른 포탈은 모르겠지만 현 한국에서 가장 많이 데이터를 긁어가는 포탈은 네이버 입니다.
하지만 네이버에서도 로봇은 거의 다 막아 놓고 있습니다.
 
http://blog.naver.com/robots.txt
http://cafe.naver.com/robots.txt
http://kin.naver.com/robots.txt
http://news.naver.com/robots.txt
 
엄청나게 긁어가는 포탈들의 횡포와 자기 컨텐츠를 지키려는 사람들의 조정자가 될수 있는것이 robots.txt입니다.
문론 robots.txt로 다 막을 수는 없습니다. robots.txt를 무시하는 로봇도 많습니다. 하지만 대부분은 제어가 가능 할것입니다.

<META NAME="robots" CONTENT="noindex">
 
검색 엔진을 제어하기 위해 해야만 하는 가장 기초적인 작업은 내부적이든 외부적이든 상관없이 'ROBOT' 네임 속성을 지닌 메타태그와 'INDEX' 또는 'NO INDEX' 그리고 'FOLLOW'나 'NO FOLLOW' 등을 포함하는 콘텐츠 속성을 지닌 메타태그를 작성하는 것이다. 이 간단한 태그는 검색엔진에게 웹페이지와 관련해 어떤 일을 해야 하는지 알려준다.
내/외부 검색엔진 모두 페이지 작업에 관한 한 이 메타태그 지침을 준수한다.

<META NAME="robots" CONTENT="noindex">
'INDEX'는 검색 엔진이 만드는 인덱스 내에 페이지를 포함시키도록 허용한다는 뜻이다.
이와 반대로 'NO INDEX'는 인덱스 내에 페이지를 포함하지 않도록 검색엔진에 지시한다.
검색엔진이 사용자 검색 결과를 찾기 위해 사용하는 것은 바로 이 인덱스다.
만약 이 페이지가 인덱스에 덧붙여지지 않으면 검색을 통해 발견되지 않을 것이다.

ROBOT 메타태그에 대해 NO INDEX 설정을 활용할만한 좋은 사례는 바로 전자상거래 웹사이트에서
단기 판매 제품을 보유하고 있을 때다. 사용자들이 주문을 검토할 수 있도록 제품을 카탈로그 내에 유지하고 싶겠지만 불특정 다수의 누군가가 이 제품을 맞닥뜨리긴 원하지 않을 것이다.
단기 특판 제품이 아닌, 카탈로그 내 제품은 대부분 INDEX 설정을 갖게 된다.
'FOLLOW'는 검색엔진이 반드시 페이지 내의 링크를 따라가야 한다는 것을 의미하며 'NO FOLLOW'는 검색엔진이 페이지에서 발견되는 링크를 따라가지 않도록 지시한다. 'NO FOLLOW' 설정은 예를 들어 토론 포럼을 인덱스 작업하고 있는데 내부 검색엔진이 통제를 떠나 게시물 내에 있을 수 있는 다른 사이트로의 링크를 인덱스 작업하는 것처럼 따라가지 않았으면 하는 링크를 참조하지 않도록 해준다.
이 경우 인덱싱되는 콘텐츠들은 검색엔진이 페이지 자체를 인덱스로 만들지는 않지만 제공된 링크를 따라가기 위해
'NO INDEX'나 'FOLLOW' 등의 설정을 가질 공산이 크다.