메뉴 건너뛰기


Projects > Web Agent

[robots.txt]이용 검색로봇 차단 가이드

2013.11.25 16:14

푸우 조회 수:4620


다음 글의 출처는 http://bklove.info/?p=209 입니다.


이전 글에서 "인기있는 블로그"를 만드는 방법에 대해서 한번 이야기를 한적이 있는데요,  이번에는 그 반대인 "인기없는 블로그"만드는 비법에 대해서 알려드립니다.

[배가 부른 검색포털]
사실 웹은 이미 너무 많은 정보로 인해서 원하는 정보를 발견하기가 더 어려워지고 있습니다. 어딘가에 있을 듯 하지만, 도무지 찾을 수 없는 정보들.. 특히 현대사회를 "정보"가 "돈"이 되는 사회라고 하지만, 역설적으로 "돈"에 의해서 "정보"의 우선순위가 바뀌고 있는 요즘은 더욱 그렇습니다. 요즘 네이버, 다음 같은 국내 포털들에게서 검색을 이용해서 최상위의 자리를 차지하는 방법은 포털들의 키워드 광고 대행사이면서... 야후에 인수된 야후의 자회사 '오버추어'를 통해서 등록하는 방법이 유일하게 되었습니다. (아.. 구글은 자신들의 검색광고 회사가 있습니다.)

이런 가정을 해볼까요? 당신이 블로그/홈페이지를 제작해서, 내용을 올리고, 관리를 하고, 사람들을 좀 더 쉽게 접근하게 하기 위해서 검색엔진에 등록을 하기를 원한다고 해봅시다. 인터넷의 초기에는 주로 검색포털들이 카테고리 형식으로 되어 있었고, 웹을 돌아다니며 검색을 하는 검색로봇(*로봇은 기계가 아닌 프로그램의 일종입니다)의 성능이 그다지 우수하지 못한탓에, 검색엔진을 제공하는 회사(포털)들이 검색엔진에 사람들의 사이트를 쉽게 등록해주었습니다. 그렇게 해서 검색엔진의 자료를 늘리고자 했던 것이죠. 

어느 순간 홈페이지가 급격히 늘어나고, 포털들의 경쟁속에서 몇몇 기업들이 웹업계의 대기업으로 성장했고, 나머지는 시장에서 경쟁력을 잃고 사라졌습니다. 검색포털들로서는 더이상 웹사이트를 더 많이 등록시키기 위해 경쟁을 하지 않아도 되는 상황이 되었고, 오히려 등록을 원하는 사람들이 경쟁을 해야하는 처지가 되었습니다. 결국 키워드 광고 시장이 급격히 성장하게 되었죠. 이제 돈을 내지 않고 검색엔진에 등록하는 것은 비상업적인 사이트에 제한되었고, 그나마도 등록하기도 쉽지 않습니다. 등록을 해도 시간이 아주아주 오래걸리거나, 이것저것 제한 상황때문에 등록이 쉽지 않습니다. 상업적인 사이트의 경우 유명 포털에 등록하는 비용이 백만원을 훌쩍 넘습니다. 키워드 광고가 아닌 단순히 사이트를 등록하는데 드는 비용이 그 정도 입니다.


[낭비되는 우리의 트래픽]
하지만 사실 여기는 약간 우리의 기분을 상하게 만드는 다른 문제가 있습니다. 이제 웹의 검색은 카테고리 방식보다는 로봇이 검색해서 자료를 찾아주는 방식이 우세하게 되었습니다. 이를테면 어떤 이름과 주제에 블로그 자체를 등록하는 것보다, 거기에 등록되어 있는 내용을 통해서 검색 결과에 노출되는게 더 우선시 되고 있는 것입니다. 흔히 사용했던 주제어와 이름을 통한 검색방식은 사이트의 내용 전체를 담을 수 없기 때문입니다. (*물론 당신이 물건을 팔거나 특정 주제어만 관련된 사이트 운영자라면 이야기가 좀 다릅니다. 여기선 당신이 블로거라고 가정하고 말씀드리는 겁니다)

그래서 검색포털들의 로봇은 꾸준히 웹을 돌아다니면서 정보를 찾고, 분류하는 작업을 하게 되는데요. 그렇게 웹을 돌아다니는 로봇 때문에 많은 블로그 사용자들의 트래픽이 필요 이상으로 낭비되고 있는게 문제입니다. 물론 이런 로봇들의 활동을 부분적으로 차단할 수 있는 방법이 있습니다. 하지만, 이해할 수 없는 점은 이런 로봇들의 활동을 허용하는게 기본으로 설정되어 있는 것이고, 사용자들이 별도의 작업을 통해서만이 차단할 수 있는 웹의 특성입니다.


트래픽이 상관없는 서비스형 블로거의 경우에는 사실 비용상의 문제점은 없습니다. 반면 태터툴즈같은 설치형 블로그 사용자의 경우에는 이야기가 좀 다르죠. 개인적인 용도로 꾸며지는 사이트의 경우 대부분 웹호스팅을 이용해서 꾸미게 마련이고, 이 경우 웹호스팅 용량도 그렇지만, 트래픽 제한폭 때문에 사이트가 접속이 안되는 경우가 발생합니다. 특히 이미지가 주류를 이루는 한국의 사이트에서 보통 디카로 찍은 사진을 크기를 줄여서 올린다고 하더라도 수백KB가 될터이고, 몇장만 올리면 MB에 이릅니다. 백명만 그 사진을 봐도 금새 용량이 백MB가 넘는다는 결론입니다.

여기서 생각할 수 있는 것은 사실 웹은 다른 사람에게 보이기 위한 공간이라는 것입니다. 혼자서만 보기 위해서라면 그냥 워드프로세서를 이용해서 문서를 작성하는게 현명한 일이겠죠. 그러니 다른 사람들이 많이 방문해서, 용량이 초과된다면 그리 나쁜일만도 아니라 생각됩니다. 하지만 그게 다른 사람이 아니라면? 그게 그냥 검색로봇이라면 어떨까요? (문서 파일은 용량이 그다지 크지 않지만, 요즘 대부분 포털들은 이미지 검색을 지원하고 있습니다. 초기의 포털들의 로봇은 이미지는 배제하고 단순히 텍스트만을 검색 목표로 삼았었죠.)

실제로 제 웹의 경우 검색로봇의 방문수는 평균 30%이상이고, 많은 경우 50%에 육박합니다.
그중에 당신의 사이트를 홍보하는 역할을 하게 될 로봇도 있지만, 그렇지 않는 경우도 있습니다. 아래의 캡쳐이미지는 제 블로그의 검색로봇 방문을 표시한 것인데요. 외국의 특정 사이트중에서는 제 블로그가 검색된다고 하더라도, 실제 방문으로 이어질 가능성은 거의 없습니다. 국내에서 서비스 중인 사이트 중에서도 당신의 사용패턴에 따라서 모든 로봇의 방문을 허용하지 않을 수도 있겠죠.


955.jpg

[검색로봇을 막는 방법 robots.txt]
그래서 필요한 파일이 robots.txt라는 조그마한 텍스트 파일입니다. 정리하면 robots.txt파일을 생성해야 하는 이유는 크게 두가지입니다. 트래픽을 조절할 수 있다는 것과 다른 사람에게 알리고 싶지 않는 정보를 보호하기 위해서 입니다. 이 파일의 역할을 당신의 블로그를 방문하는 로봇들에게 사이트를 검색하게 허용할 것인지, 허용한다면 어떤 로봇에게, 어떤 디렉토리를 허용할지를 담고 있는 파일입니다.

윈도우의 경우 메모장을 이용해서 생성하면 되는데요, 파일은 반드시 계정의 최상위(root) 디렉토리에 있어야 합니다. 이를테면 제 사이트 http://bklove.info/ 라면 http://bklove.info/robots.txt 에 위치해야 합니다. http://bklove.info/temp/robots.txt 라면 제대로 작동하지 않습니다.

파일의 내용은 크게 세 부분으로 나뉩니다.
주석(#), 로봇의 이름을 적는 부분(User-agent) , 방문을 허용하지 않을 디렉토리를 적는 부분(Disallow)으로 구분됩니다.
User-agent: * 
Disallow: /
위처럼 적으면 모든 로봇에서 모든 디렉토리에 대한 검색을 불가능하게 하겠다는 뜻을 담고 있습니다. [*]는 User-agent에서만 사용가능한데 [모든 로봇]이라는 뜻을 지니고 있습니다. Disallow의 [/]는 디렉토리에 있는 모든 폴더를 나타내는 것이구요.

만약 특정 디렉토리를 차단하게 하려면 다음과 같이 적어주면 됩니다.
User-agent: *
Disallow: /blog
위는 모든 로봇[*]에게 [blog]디렉토리 아래에 있는 부분에 대해서는 접근을 차단한다는 내용을 담고 있습니다. 

그렇다면 특정 로봇을 차단하는 방법은 어떤게 있을까요? 이를테면 사이트에서 네이버의 로봇이 활동하게 하지 못하는 방법은 다음과 같습니다.
User-agent: Cowbot
Disallow: /
Cowbot은 네이버 로봇의 이름입니다. 위처럼 작성해주시면 네이버 로봇의 경우 검색을 하지 못하게 됩니다.

조금 복잡하게 구글과 네이버는 허용하고, 그외에는 모두 차단하는 방법은 다음과 같습니다.
User-agent: Cowbot
Disallow:

User-agent: Googlebot
Disallow:

User-agent: *
Disallow: /

Disallow에 아무적도 적지 않으면 모두 허용한다는 의미가 되기 때문이죠.
/blog와 /blog/는 조금 다릅니다.
/blog의 경우는 /blog/a.htm와 /blog.htm에 대해서 불가능한 것이고
/blog/의 경우는 /blog/a.htm에 대해서만 불가능 합니다.
즉 /blog는 디렉토리와 파일까지도 포함하고, /blog/는 디렉토리만을 의미하거든요.


앞서 트래픽을 아끼기 위해서 이미지 로봇을 차단하는 방법은 다음과 같습니다. 참고로 원래는 Disallow항목에 *표시를 넣을 수 없습니다. 이 명령어는 구글과 MSN등에서만 통용되구요. 파일명 뒤에 반드시 $표시를 해주셔야 합니다. 즉 모든 검색엔진에서 통용되지는 않습니다.
User-agent: Googlebot-Image
Disallow: /*.gif$
Disallow: /*.jpg$
위 문장은 구글의 이미지를 검색하는 로봇에게 gif와 jpg로 된 이미지를 모두 검색하지 않도록 하는 명령어입니다.

참고로 주석문을 작성하기 위해서는 앞에 #를 적어주시면 됩니다. 로봇의 이름은 개별 검색사이트를 방문하셔서 아셔야 합니다. 주로 쓰는 로봇의 이름만 알려드리면...
구글: Googlebot
구글 이미지 : googlebot-image
네이버 : cowbot
야후 : Slurp
야후 이미지 : Yahoo-MMCrawler
엠파스봇 : empas
MSN : MSNBot
첫눈: 1Noonbot 1.0


차단했을 경우에, 즉시 삭제되는 것은 아니지만 시간이 지나면 검색포털에서의 검색 결과 역시 삭제된다는 사실을 염두에 두셔야 합니다.


* Crawl-Delay 항목을 지정하시면 검색엔진의 방문을 지연시킬 수 있습니다. 기본단위는 초단위입니다. 아래의 명령어 역시 위의 *.jpg$처럼 야후, MSN에서만 작동됩니다.
User-agent: Slurp
Crawl-delay: 20

이렇게 하시면, 모든 검색로봇의 방문을 허용하되 5초동안은 다시 방문을 하지 않도록 지정하게 됩니다.


** http://www.mcanerin.com/EN/search-engine/robots-txt.asp 이곳에 가시면.. 비록 외국 사이트긴 하지만.. robots.txt를 제작해줍니다. ^^!! 고르기만 하면 자동으로 파일을 생성해주죠. 가져와서 메모장에 붙여놓고 저장후 FTP로 올리면 됩니다.

*** 
http://tool.motoricerca.info/robots-checker.phtml 이곳은 만들어진 robots.txt파일이 잘 작성되었는지 검사해주는 사이트입니다.

**** 끝으로 제가 사용하고 있는 robots.txt는 http://bklove.info/robots.txt 여기서 확인이 가능합니다. 야후의 경우 시간을 지연시키는 명령어를 사용했고, 구글과 구글이미지, MSN의 경우 이미지와 PDF, ZIP, PPT파일에 대한 검색을 차단했습니다.