사이트나 블로그의 크롤 어뷰징을 줄일 수 있는 몇가지 방법을 소개한다.
일단 일반적인 구글이나 야후 크롤러의 성향을 말해보자면…
크롤러들은 사이트가 바뀌었다고 생각하면 일단 자주 방문을 하게 되고 이전 방문때와 비교했을때 별다르게 바뀐점이 없다는 판단을 하면 방문 횟수를 적절하게 줄여나간다.
그래서 본인의 블로그 스킨을 바꾸었을때 굉장히 많은 트래픽이 몰려서 트래픽 초과를 당한적이 좀 있었다. 물론 지금은 이전보다 트래픽이 훨씬 감소 되었다.
그래서 당장 트래픽이 상승했다고 robots.txt를 엄격하게 제한해버린다든지 크롤러의 IP를 차단하는건 너무 성급한 행동이다.
위와 같은 극단적인 방법을 행하기 전에 해볼만한 방법에 대해서 소개를 해보겠다.
일단 야후!의 크롤러인 Slurp은 robots.txt를 엄수한다는걸 말씀드린다. 물론 당연한 말이지만 위 룰을 충실히 지키고 있지 않는 여타 다른 크롤러들이 많기 때문에 말씀드리는거다.
가장 손쉬운 방법인 robots.txt를 사용한 방법으로 크롤을 해봤자 정보가 없는 경로에 대한 크롤링을 막음으로서 트래픽을 줄일 수 있다.
robots.txt에서 disallow를 하면 된다.
User-agent: Slurp
Disallow: /cgi-bin/
다 막고 싶다면
User-agent: Slurp
Disallow: *
하지만 위와 같이 해버리면 검색에 노출되는 횟수가 점차 줄어들다 시간이 지나면 아예 나타나지 않을것이다.
본인의 블로그의 robots.txt는 아래와 같다.
User-agent: *
Disallow: /attach/
Disallow: /skin/
Disallow: /image/
Disallow: /guestbook/
Disallow: /archive/
이런 기본적인 옵션 말고 이런 다양한 옵션을 지원하고 있으니 참고 해서 고치면 된다.
위의 방법은 일반적인이고 가장 간단한 방법이다.
다른 방법을 소개하자면….
Gzipped Files : apache 같은 웹서버에서 mod_gzip 을 이용해 html 페이지를 압축해서 보내줄 수 있다. 대부분의 브라우저와 야후 크롤러는 request를 보내면서 헤더에 Accept-Encoding: gzip, x-gzip 옵션을 줘서 보내는데 만일 웹서버가 위 옵션을 인식해서 압축된 페이지를 보내준다면 상당히 많은 bandwidth의 낭비를 줄일 수 있을것이다. 텍스트의 압축률은 상당해서 평균 약 75%를 절약을 할수 있다고 알려지고 있다.
ps. 내 블로그에서 이 플러그인이 있는지 찾아 봤는데 없더라..Header를 분석해보면 기본적으로 적용은 안된거 같은데 …쩝 어디 텍스트 큐브용 플러그인 있으면 알려주세요?
If-Modified-Since : 요 옵션을 지원하는 페이지가 한국에는 거의 없다는것을 오래전에 알았지만 옵션을 웹서버에 사용할 경우 Yahoo!나 구글의 방문을 효과적으로 줄일 수 있다.
위 옵션을 header에 넣어서 리턴을 할 경우 웹 크롤러는 자신이 이전에 크롤한 데이터와 이번에 크롤할 테이터가 다른점이 있는지 response 헤더만 보고 확인을 하게 된다. 다시말해서 위 옵션을 추가해서 request를 던져 웹페이지가 변경되지 않았다고 하면 response에서 본문은 따라오지 않는다. 다만 리턴 코드가 304가 된다. 만일 변경이 되었다면 200코드와 본문이 따라온다.
Crawl-Delay: 이 옵션은 robots.txt에 추가되는 옵션이다.
이걸 정해줌으로 인해 Slurp의 크롤속도를 조절 할 수 있는데…
예를 들면
User-agent: Slurp
Crawl-Delay: 10
위와 같이 정해주면 크롤 Term이 10초 이상으로 정해진다.
위 값은 자신의 site의 페이지 갯수를 감안해 적절하게 조절해주면 정확한 크롤링 주기를 조절할 수 있을것이다.
Yahoo!의 Slurp가 너무 자주 사이트를 방문한다면 이렇게 해보시죠? by from __future__ import dream is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.