방문자가 많아서 축적된 모든 글을 열람해서 트래픽이 많은 것이 아닙니다.
이건 너무 당연한건데 트래픽관리를 하고 싶어하면서 이부분을 잘 이해 못하는 경우가 있는 듯 하여 굳이 게시글로 하나 작성해봅니다.
저희들의 웹사이트 문서가 검색자에게 제공이 되려면 검색엔진이 사이트 내의 문서를 수집해 가야 합니다.
- 그런데 여기서 많이 오해하시는 부분이 처음에 한번 가져가면 그것으로 계속 제공할 것이라 생각하는대 절대 오해입니다.
- 보통 1일 이내의 간격으로 사이트를 계속 반복적으로 방문해서 모든 문서는 아니더라도 나름의 로직을 가지고 반복해서 수집해서 변경내용을 수정하고 다시 색인합니다.
- 검색엔진(네이버,구글) 의 검색결과에 "저장된 페이지" 라는 것이 없는 경우는 색인 저장이 안된 문서입니다.
- 이 저장된 페이지의 수집,저장된 날짜를 보시면 검색엔진이 잘 와서 가져가는 경우는 최신 날짜로 계속 갱신이 됩니다.
따라서 문서가 1만단위 정도 수량이 된다면 기본적인 네이버,카카오,구글,빙 그리고 기타 검색엔진들이 매일 와서 계속 수집하는 것으로만으로도 트래픽의 대부분이 발생됩니다.
문서가 굉장히 많은 사이트이면서 문서가 밖으로 노출되지 않아도 되는 사이트라면 봇을 막으면 매일 발생하는 트래픽의 상당부분을 절감 할 수 있습니다. 하지만 웹에 공개한 사이트의 경우 대부분 검색엔진에 노출되길 바라기 때문에 이 트래픽은 감수를 해야합니다.
이 트래픽 양이 문서양과 절대적으로 비례합니다. 트래픽 컨트롤을 하려고 할때 이 기본으로 깔고 가는 트래픽양을 염두해햐 합니다.
다 아시는 이야기일 수 있지만 글로 작성해 봤습니다.
구글, 네이버, 빙 봇이 대부분의 트래픽을 잡아먹지만, 검색엔진과 무관하게 트래픽만 잡아먹는 잡봇(?)들도 많습니다. AhrefsBot, BLEXBot, DotBot, SemrushBot 이런 놈들은 가차없이 차단해 버려도 됩니다. robots.txt로 막아도 계속 들어오기 때문에 그냥 User-Agent를 차단해 버리는 게 좋습니다. 러시아 검색엔진에 노출될 필요가 없다면 Yandex도 차단하시고요.
어설픈 파싱 시도를 막으려면 curl, wget, PHP 등의 User-Agent를 차단하는 것도 도움이 되지만, 사이트 내부적으로 돌아가는 웹크론이나 비동기 요청(예: 푸시앱)까지 막힐 수도 있으니 주의해야 합니다. 웹크론에 curl을 사용한다면 wget은 막아도 됩니다. 단, 파싱 로봇도 User-Agent를 얼마든지 바꿀 수 있으므로 완벽하지는 않습니다. 파싱을 시도하는 IP 주소나 대역을 막는 것이 더 확실합니다.
SNS에 공유했을 때 제대로 나오도록 하려면 카카오나 페이스북 봇은 차단하지 말아야 합니다.