작성일: 2011년 3월 11일 금요일

안녕하세요, 구글코리아 소프트웨어 엔지니어 이동휘입니다.

구글봇(Googlebot)이라 불리는 구글 크롤러가 robots.txt에서 상충하는 명령어들을 발견했을 때 어떻게 동작하는지 아시나요? 왜 robots.txt를 사용하여 크롤러를 막아도 검색결과에는 여전히 색인되어 있는지 궁금하시지 않았나요? 길가에 피는 꽃에도 다 이름이 있듯이, 구글 크롤러에도 제대로된 자기만의 이름이 있다는 것을 아셨나요? 이런 궁금증을 풀어 줄 제대로 된 문서가 드디어 한국어로 번역되었습니다.



'크롤링 및 인덱싱 제어하기'는 웹마스터 뿐만 아니라, 보안 담당자, 웹 방화벽 제작사 등에도 도움이 될 자세한 정보를 담고 있습니다. robots.txt와 더불어 robots 메타 태그 및 X-Robots-Tag HTTP 헤더 명령어를 어떻게 사용해야 하는지에 대한 내용도 포함하고 있습니다.

'크롤링 및 인덱싱 제어하기'와 관련하여 질문이 있으시면 구글 웹마스터 포럼에 올려주세요.


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


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


안녕하세요, 구글코리아 소프트웨어 엔지니어 이동휘 입니다.

오늘은 많은 웹사이트 담당자분들이 robots.txt(로봇제어파일)을 작성하면서 걱정하시는 문제를 짚어보려고 합니다. 때때로 대형 웹사이트 담당자분들이 robots.txt의 규칙과 내용을 비교적 잘 이해하고 있으면서도, 검색로봇이 접근하지 말아야 할 디렉토리의 목록을 robots.txt 에 입력하는 것이 오히려 악의적인 해커들에게 힌트를 주는 것이 아닌지 걱정을 하시거든요.

[제가 직접(!) 그려본 침입개념도입니다]

예를 들어, robots.txt 파일에 검색로봇을 차단할 디렉토리를 다음과 같이 지정한다고 가정합니다.
User-agent: *
Disallow: /admin
Disallow: /private_db

robots.txt는 홈페이지처럼 공개되어 있는 파일이므로 악의적인 해커는 우선 robots.txt파일을 쭈욱 읽어본 다음 회심의 미소를 지으며 /admin이나 /private_db 폴더부터 우선 공격한다는 이야기지요. (로봇제어파일의 소개는 이전 포스트를 참고하세요.)

이에 대하여 완벽하지는 않지만 해결책을 알려드리겠습니다.

1. Disallow와 Allow 조합

자, 그럼 첫 번째 해결책부터 들어갑니다. 모든 파일을 Disallow한 다음 공개할 디렉토리만 선택적으로 Allow하는 방법입니다. 이 방법은 Allow로 지정해야할 디렉토리가 많지 않을 때 유용합니다. 예를 들면 다음과 같습니다.

User-agent: *
Disallow: /
Allow: /index.html
Allow: /public

모든 검색로봇에 대해서 해당 사이트의 모든 파일을 차단(두번째 행)한 후, /index.html 파일과 /public 디렉토리를 허용한다는 뜻입니다. /public 디렉토리라고 했지만 사실 정확히 얘기하면 /public으로 시작하는 어떤 URL 경로도 허용합니다. 예를 들어, /public_db, /public/list.html 또는 /public?q=hello 도 모두 허용됩니다.

2. 디렉토리명의 일부만 사용

두 번째로는 차단할 디렉토리명의 일부만을 사용하는 방법입니다. 위의 예에서도 보셨지만 Disallow나 Allow 항목의 디렉토리명은 사실은 URL경로의 앞쪽만 일치하면 적용됩니다. 예를 들면,

User-agent: *
Disallow: /a
Disallow: /p

이렇게만 적어도 /admin 디렉토리와 /private_db 디렉토리의 내용 모두 차단됩니다. 이때 주의할 것은, /public 디렉토리도 /p로 시작하므로 이럴 경우는 좀 더 자세히 적어주는 것이 좋습니다. 다음과 같이요.

Disallow: /pri

아니면, Allow: /public 을 따로 추가해주어도 되겠지요.

3. 파일 확장자로 차단

추가적으로 한가지 더 알려드리자면 파일의 확장자만을 기준으로 차단이나 허용이 가능합니다. 예를 들어, 우리 사이트의 모든 PHP프로그램은 검색로봇이 접근하지 않도록 하려면 다음과 같이 하면 됩니다.

User-agent: *
Disallow: /*.php

/public/program.php, /filename.php?q=hello 등의 .php 확장자를 가진 페이지로의 접근이 차단됩니다. 와일드카드 문자 ‘*’는 그 자리에 아무 문자가 없을 수도 있고 임의의 어떤 문자열이 올 수도 있습니다.

자, 완벽하지는 않지만 그럴듯한 해결책이 되겠는지요? robots.txt의 규칙과 구글 검색로봇의 원리에 대해서 더 궁금하신 분은 이전 포스트들과 다음의 사이트를 참고하세요.
Controlling Crawling and Indexing: http://code.google.com/web/controlcrawlindex (영어 문서입니다. 한국어 문서는 현재 작업 중에 있으니 조금만 기다려주세요~)

마지막으로 꼭 말씀을 드려야 할 것이 있는 데, 해커를 얕잡아 보지 마십시오. 단지 robots.txt파일에 써 있는 내용을 통해 디렉토리명을 아는 정도로 위험해질 시스템이라면 robots.txt파일과 관계없이 이미 악의적 공격자의 먹이감이 될 수 있습니다. 컴퓨터 세계에서는 방어자보다 공격자가 훨씬 유리하며 보이지 않는 악의적 해커는 단순한 힌트 한 두개가 없다고 절대로 포기하지 않거든요.

즉, robots.txt는 정상적인 검색로봇과 웹마스터가 소통하는 창구일 뿐 개인정보 보호나 시스템 보안과는 연결고리가 크지 않습니다.

다음 번에는 robots.txt로 차단하였는데 검색엔진에 색인이 되는 희한한 현상에 대해서 알려 드리겠습니다.

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

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


웹 사용자라면 검색 결과에서는 그럴 듯한 페이지로 보였는데 막상 들어가보면 엉뚱한 내용일 때 느끼는 실망감을 잘 알고 있을 것입니다. 저희는 구글 알고리즘을 통해 이러한 페이지를 가급적 많이 걸러질 수 있도록 최선을 다하고 있지만, 간혹 스팸성 사이트가 검색 결과에 포함되어 나오는 경우도 있습니다. 이러한 문제를 발견했을 때 여러분들이 많은 신고를 해주시는 점에 대해 깊이 감사 드리고 있습니다. 이러한 신고로 검색 결과가 향상되고 훌륭한 콘텐츠를 적절하게 처리하는데 도움이 되고 있습니다. 원활한 스팸 신고는 저희에게 중요합니다. 다음은 여러분들께서 보내시는 스팸 신고의 효과를 보다 극대화하기 위한 방법입니다.

왜 구글에 스팸을 신고하나?

구글의 검색 품질 팀은 웹마스터에게 공정한 경쟁의 장을 제공하고, 자체적인 스팸 제거에 도움을 얻기 위해 스팸 신고를 활용하고 있습니다. 스팸 신고는 검색 결과의 품질을 더욱 향상시키기 위한 기반이 되고 있습니다. 스팸 신고를 위한 크롬 확장기능과 같은 새로운 툴을 통해 사람들이 스팸 신고를 더 많이 하고 있지만, 스팸 신고를 처리하기 위해 필요한 자원을 가장 유용하게 사용할 수 있도록 적절하게 배분해야 합니다.

스팸 신고는 검색 결과에 나오는 스팸성 사이트의 영향력이 얼마나 중요한지에 따라 처리 순서를 결정합니다. 이는 영향력이 큰 사이트를 적시에 처리하기 위한 방법입니다. 예를 들어 저희는 월간 검색 노출은 많지 않지만 검색 결과의 첫 번째나 두 번째 페이지에 정기적으로 랭킹되는 사이트를 우선적으로 조사할 가능성이 많습니다. 사용자가 거의 본적이 없는 페이지의 스팸 신고는 영향력이 큰 페이지나 사이트에 비해 검토 가능성이 다소 낮을 수 밖에 없습니다. 일반적으로 스팸 신고를 이용해 알고리즘을 향상시키고 있으며, 이를 통해 이러한 특정 사이트를 인식하고 처리하는 것은 물론 유사한 사이트를 보호할 수 있습니다. 일부의 경우 추가로 사이트를 검색 결과에서 즉시 제거 또는 필요한 조치를 취할 수도 있습니다.

어떤 사이트를 신고해야 하나?

알고리즘이 미처 파악하지 못한 스팸성 사이트가 신고되길 바라지만, 스팸이 아닌 사이트를 신고하는 것 또한 시간 낭비입니다. 스팸 신고 양식으로 신고된 사이트들은 스팸성 내용만이 검토됩니다. 스팸이 아닌 다른 이유로 인해 조치가 필요하다고 생각되는 사이트들은 다른 적절한 채널을 통해 신고되어야 합니다. 예를 들어, 자신의 페이지에서 삭제한 콘텐츠가 다른 사이트에 버젓이 나온다면 URL 제거 툴을 사용해야 합니다. 멀웨어가 있는 사이트는 멀웨어 신고 양식을 이용합니다. 유료 결제 링크가 숨어있는 사이트에 대해서는 유료 링크 신고 양식을 사용하시기 바랍니다. 페이지의 스팸성 링크의 신고를 원한다면 링크 스팸 신고하기를 읽어주시기 바랍니다. 다른 사이트가 자신의 사이트 내용을 도용한 경우에는 별도의 저작권 프로세스가 있습니다. 자세한 내용은 구글의 공식 문서 페이지를 참조해주세요. 일반적으로 기술적인 문제가 있는 사이트나, 파킹된 도메인은 해당 문제가 자체적으로 해결되기 때문에 구글에 별도로 신고할 필요는 없습니다.

상위 도메인에서 다른 도메인으로 주소가 바뀌는 합법적인 사이트도 마찬가지입니다. 예를 들어 example.de가 example.com/de로 주소가 바뀌는 경우입니다. 제시된 콘텐츠가 스팸이 아니라면, 하나의 도메인에서 다른 도메인으로 주소를 바꾸는 기술은 구글 웹마스터 가이드라인에 위배되지 않습니다.

그림처럼 말이되지 않는 내용의 사이트는 스팸 사이트일 가능성이 높다.

자신의 스팸 신고가 눈에 띄도록 하기 위한 최고의 방안은 문제의 사이트를 잘 살펴본 뒤 구글 웹마스터 가이드라인와 비교해 보는 것입니다. 예를 들어 다음과 같은 상황은 스팸신고 양식을 통해 사이트를 신고해야 하는 타당한 이유입니다.
  • 캐시 버전의 콘텐츠가 원래 버전의 콘텐츠와 현저히 다르다. (종종 키워드만 있는 경우)
  • 주제에서 벗어나거나 상업적 내용만 있는 전혀 다른 도메인으로 리디렉팅 된다.
  • 해당 사이트가 전혀 말이 안되는 자동 생성 또는 키워드만으로 구성된 콘텐츠로 채워져 있다.
위와 같은 것들은 스팸성 사이트일 가능성이 높은 기법들의 몇 가지 사례입니다. 이러한 사이트들을 스팸 신고 양식을 통해 신고하시면 됩니다. 의심이 가는 사이트가 있다면 도움말을 통해 다른 사용자나 구글 가이드와 논의하시기 바랍니다.

스팸 신고에 포함시켜야 하는 사항은?

어떤 스팸 신고는 다른 신고보다 이해하기가 더 쉽습니다. 분명하고 이해하기 쉬운 신고서를 작성하면 저희가 문제를 분석하고 적절한 조치를 취하기가 수월해집니다. 스팸 신고서 작성 요령은 다음과 같습니다.
  • (도메인 명뿐만 아니라) 스팸을 본 페이지의 URL명을 제출한다. 이를 통해 해당 페이지의 문제를 쉽게 확인할 수 있다.
  • 체크박스를 이용해 문제점을 분명히 명시한다. 모든 박스를 체크하지 않는다. 그렇지 않으면 검토할 확률이 낮아진다.
  • 페이지의 일부가 스팸성 기술을 사용한다면 (예를 들어 위장(cloaking) 기법을 사용하거나 정상 페이지에 텍스트를 숨기거나 할 경우) 자신이 경험한 스팸이 어떤 것인지를 간략하게 설명한다. 페이지 콘텐츠가 아닌 스팸성 백링크 사이트를 신고하는 경우 그 내용을 언급한다.
이러한 요령을 숙지하면 스팸 신고가 보다 생산적이고 명확해져 이들 사이트 분석을 수월하게 할 수 있습니다.

신고 후 달라지는 것은?

저희는 (누군가의 맘에 들지 않은 사이트가 아니라, 실제 스팸성 사이트라는 점을 확인해야 하기 때문에) 신고를 통해 받게 된 피드백을 검토한 후, 시간이 지나면 알고리즘이 업데이트 됩니다. 새로운 변화는 검색 결과에서 볼 수 있습니다. 구글 알고리즘은 이미 스팸 기술들을 적절히 처리하고 있습니다. 예를 들어 여러분께서 신고한 숨겨진 텍스트나 링크 교환이 이미 걸러지고 있는지도 모릅니다. 따라서 동일한 스팸 신고를 반복해서 할 필요는 없습니다. 신고 후 달라진 점이 신고자에게는 당장 보이지 않아도 저희가 스팸 신고를 실제로 검토하고 적절한 조치를 취한다는 점을 기억해 주세요.

여러분의 도움으로 검색결과의 품질과 공정성이 향상되기를 바랍니다. 스팸 신고에 감사 드리며 앞으로도 지속적인 신고 부탁드립니다. 관련 문의는 도움말을 이용해주시기 바랍니다.

작성자: 검색 품질 전략가 캐스퍼 스지만스키(Kaspar Szymanski), 웹마스터 트렌드 애널리스트 존 뮬러(John Muller)

작성일: 2010년 1월 22일 금요일

안녕하세요 웹마스터 여러분,

구글에서는 웹마스터분들에게 도움이 되고 재미도 있는 아이디어를 구상하다 구글 웹마스터 토론방에 자주 올라오는 주제 위주로 퀴즈를 만들어 보았습니다. 어떤 질문들과 답변들이 현재 여러분들이 갖고 계시는 궁금증들을 적절히 해소시켜 드리고 새로운 정보를 드릴 수 있을까 고민해 보았습니다. 퀴즈를 푸실 때 다음 몇 가지를 기억해 두세요:

퀴즈를 푸실 수 있는 기간은 지금부터 한국시간으로 2010년 1월 27일 자정까지입니다.
퀴즈에 나오는 문제들은 모든 웹마스터 관련 이슈를 커버하지는 않으며 단순히 여러분들의 관련 지식을 테스트 해 보실 수 있는 재밌는 기회입니다. 개별 사이트에 관한 토론은 예전처럼 포럼에서 이루어지게 됩니다.

이 퀴즈는 구글 문서도구를 사용해 만들어졌습니다. 때문에 결과를 바로 보실 수는 없으나, 최고점수 획득자 명단과 답변을 추후 블로그 포스팅을 통해 올려드릴 예정입니다. 퀴즈를 다 푸신 후 나중에 답변을 맞춰볼 수 있도록 반드시 저장이나 프린트를 해 놓으시기 바랍니다!
다시 한 번 말씀드리지만 단순히 재미를 위한 이벤트입니다 ^^

그럼 이제 퀴즈에 도전해보세요!

작성자: 검색품질팀


안녕하세요, 웹마스터 여러분

정상적인 사이트를 방문할 경우에도 은행 보안프로그램 등의 추가 소프트웨어를 설치해야 할 때가 있습니다. 대부분의 이런 경우는 웹브라우저의 기본 기능 외에 특정형식의 문서열람 등 추가적인 기능이 필요할 때입니다. 그러나 이런 소프트웨어의 설치를 필수로 설정해 놓을 경우에는 어떤 설치방법을 채택하느냐가 매우 중요합니다. 부적절한 설치방법은 해당 사이트가 악성코드를 설치하려 한다고 인식될 수 있으며, 이 경우 구글의 악성코드 탐지기에 잡히게 되어 구글검색결과 내 해당 페이지들에 "이 사이트는 컴퓨터에 문제를 야기할 수 있습니다"와 같은 경고 메세지가 뜨게 됩니다.

사이트 방문자가 꼭 설치해야 할 소프트웨어가 있다면, 먼저 사용자에게 왜 추가적인 프로그램을 설치해야하는지에 대한 설명이 필요합니다. 사용자가 사이트를 방문시 적절하지 못한 대처 사례두 가지와 올바른 절차에 대해 설명해 드리겠습니다:

Bad: 사용자가 소프트웨어 설치 동의하는 절차 없이 프로그램이 자동으로 다운로드 및 설치된다.

Bad: 소프트웨어에 대한 충분한 정보제공 없이 사용자의 설치 동의를 유도하는 팝업창을 띄운다. (표준 ActiveX 설치 안내창도 사용자의 프로그램에 대한 충분한 사전지식없이 설치유도를 하기 때문에 이에 해당됩니다.)

Good: 해당 사이트를 사용하기 위해 왜 추가적인 소프트웨어가 필요한지 자세히 설명해 놓은 페이지로 사용자를 보낸다. 이 페이지에서 사용자는 해당 프로그램을 설치할지 말 것인지 정한 후 설치실행을 할 수가 있다.

현재 사이트가 적절하지 못한 소프트웨어 설치방법으로 인해 검색결과에서 악성코드 경고 메세지가 뜨고 있는지요? 제일 좋은 해결방법은 사용자들이 해당 프로그램을 설치해야 하는 이유를 좀 더 자세하게 설명하고 원하지 않을 경우 설치를 취소할 수 있는 설치방법으로 변경하시는 것입니다. 이 절차를 끝낸 후 구글 웹마스터도구에서 악성코드 검토신청을 하시면 좀 더 신속하게 검색결과에서 경고메세지를 제거하실 수 있습니다.

작성자: 웹마스터 트렌드 분석가 조나단 사이먼 (Jonathan Simon)