작성일: 2010년 11월 16일 화요일

어제 “검색로봇 100배 활용하기(상)”을 통해서 ’은둔형 외톨이' 웹사이트의 실태를 한 가지 사례를 통해 살펴보았는데요, 사실 단순 실수이든 의도적이든 웹사이트의 검색 로봇 차단은 생각보다 많은 사이트들에서 일어나고 있습니다.

오늘은 간단한 방법으로 어떻게 검색 로봇이 웹페이지를 읽도록 허용하고 차단하는지 알아보겠습니다.

우선 검색엔진이 어떻게 동작하는지에 대해 간단히 설명해보겠습니다.

검색 엔진의 동작 방식

일반적인 검색 엔진이 웹에 존재하는 공개된 문서를 사용자에게 제공하기까지의 처리 순서는 다음과 같습니다. 아주 간략하게는 웹에 공개되어 있는 문서의 링크를 따라가며 문서를 수집(검색 용어로는 이 단계를 크롤(crawl)이라고 부름)하고, 문서에서 단어(토큰)를 추출하여 색인(인덱스)을 만든 다음 사용자가 검색어를 입력하였을 때 미리 만들어 둔 색인에서 관련된 문서를 찾아 제공하는 구조입니다.
검색 로봇이라고 불리는 웹 공개 문서 수집 소프트웨어는 검색 엔진의 첫 번째 단계에서 공개된 질 좋은 문서를 얻기 위해 웹 문서에 포함된 링크를 따라 다른 페이지를 찾아다닙니다. 그런데 웹 문서를 수집하기 전에 반드시 맨 먼저 확인하는 것이 있습니다. 바로 해당 사이트의 어떤 문서를 수집하지 말아야 하는지가 적힌 robots.txt파일입니다.

robots.txt의 내용은 검색 엔진이 지켜야 할 법적 강제 사항은 아니지만 웹 사이트를 관리하는 웹마스터와 검색엔진 사이의 약속으로 구글을 포함한 대부분의 건전한 검색엔진들은 이 약속을 이행하고 있습니다. 즉, 웹마스터가 검색 로봇을 부릴 수 있는 권리인 것입니다.


robots.txt 파일을 올바로 설정해야 하는 이유

robots.txt 파일을 올바로 설정해야 할 가장 큰 이유는 공개하지 말아야 할 문서의 범위를 검색 로봇에게 알리기 위함입니다. 초기의 웹은 정보의 공유와 홍보의 목적으로 만들어졌기 때문에 검색 엔진에 공개되어도 문제가 없는 것들이 대부분이었지만 웹이 발전하면서 실수로든 의도적으로든 웹에 공개되어서는 안될 정보들이 올라오고 이를 검색 로봇이 비의도적으로 수집을 하게 된 것입니다. robots.txt 는 검색 로봇에 수집하지 말아야 할 것을 알려주는 가장 기본적이며 간단한 약속입니다.

그러면 어떻게 robots.txt를 설정하는 것이 올바른 방법일까요? 정보 공유를 위해 홍보를 위해 정성들여 만든 문서를 문을 걸어두고 집안에만 감춰두는 ‘은둔형 외톨이’식이 좋을까요, 감춰두어야 할 비밀스러운 것까지 모두 내 보이는 ‘과다노출증’식이 좋을까요? 네, 감출 것은 적절하게 가리고 사람들에게 알려야 할 것은 적극적으로 알려야겠습니다.

자, 그럼 아주 간단하게 robots.txt 파일을 설정하는 방법을 알려드리겠습니다.


robots.txt 파일의 배치

robots.txt는 HTML 파일이 아닌 일반 텍스트 파일로 호스트의 root에 있어야 하며 반드시 'robots.txt' 파일명으로 저장되어야 합니다. 검색 로봇은 해당 호스트의 root에 있는 robots.txt 파일만을 체크하기 때문에 하위 디렉토리에 있는 파일은 유효하지 않습니다. 예를 들어 http://www.example.com/robots.txt는 유효한 위치이지만, http://www.example.com/mysite/robots.txt는 유효하지 않습니다.


간단한 robots.txt 작성 규칙

robots.txt 파일에서 가장 중요한 규칙 두 가지가 User-agent와 Disallow입니다. 먼저 User-agent는 해당 규칙이 어떤 검색 로봇을 대상으로 하는 것인지 규정합니다. 참고로, 대부분의 검색 로봇은 고유의 이름을 가지고 있습니다. 예를 들어, 구글의 웹 검색 로봇의 이름은 Googlebot입니다. 그 다음으로 Disallow에는 어떤 디렉토리 또는 파일을 검색 로봇이 읽지 못하도록 할 것인지를 알려줍니다.

http://www.example.com/ 사이트의 간단한 예는 다음과 같습니다.
User-agent: *
Disallow: /private/

이렇게 하면 모든 검색 로봇에게 http://www.example.com/private/ 하위의 문서들은 수집하지 않도록 합니다.

다른 곳은 공개하되 예를 들어, /admin/ 과 /bbs/ 이하의 모든 파일을 로봇으로부터
차단하려면 다음과 같이 하시면 됩니다.
User-agent: *
Disallow: /admin/
Disallow: /bbs/

이런식으로 더 차단하고 싶은 디렉토리를 추가하실 수 있습니다.


robots.txt 파일을 사용하여 전체 웹사이트를 크롤 허용 또는 차단하기

드문 경우이긴 하지만 웹 사이트 내의 모든 정보를 공개하지 않겠다면 다음과 같이 설정하십시오.
User-agent: *
Disallow: /

또, 웹 사이트 내의 모든 문서가 공개가능한 것이라면 다음과 같이 설정하십시오.
User-agent: *
Disallow:

Disallow란이 공백임을 꼭 주의하십시오. 모든 검색 로봇에 수집을 허가한다는 뜻입니다.

robots.txt 파일 설정 여부 확인

가장 간단한 방법은 웹브라우저에서 확인하는 것입니다. http://robot_example.co.kr 을 예로 들겠습니다. robots.txt파일을 robot_example.co.kr 서버의 루트에 제대로 위치시키셨다면, 인터넷 익스플로러 또는 구글 크롬 등의 웹브라우저에서 다음의 URL을 입력해보세요. http://robot_example.co.kr/robots.txt (robots.txt의 철자를 확인하세요.)

robots.txt파일에 입력했던 내용이 잘 보이면 제대로 설정된 것입니다.

더 확실하게 확인하려면 구글 웹마스터 도구를 사용하세요. 구글 웹마스터 도구에서 웹사이트를 등록하고 ’사이트 구성' -> ‘크롤러 액세스' 페이지에 방문하면 실제로 어떤 페이지들이 허용되고 차단되는지 테스트해보실 수 있습니다. 자세한 내용은 아래에 링크된 문서를 참고하세요.
http://www.google.com/support/webmasters/bin/answer.py?hl=kr&answer=156449


robots.txt에 대한 더 자세한 정보

robots.txt에 대한 좀 더 자세한 정보를 원하시면 다음의 링크를 참고하세요.

robots.txt 파일을 사용하여 페이지 차단 또는 삭제
http://www.google.com/support/webmasters/bin/answer.py?hl=kr&answer=156449

구글 검색에 웹사이트를 알리는 방법
http://www.google.com/support/webmasters/bin/answer.py?hl=kr&answer=34397

웹사이트가 구글에 색인되어 있는지 확인하는 방법
http://www.google.com/support/webmasters/bin/answer.py?hl=kr&answer=35256

* 웹마스터를 위한 검색이야기의 다른 시리즈를 보시려면 여기를 눌러주세요.

작성자: 구글코리아 소프트웨어 엔지니어 이동휘