크롤러와 인덱서의 제어

크롤러와 인덱서의 제어

사이트 운영자가 크롤러와 인덱서를 제어하는 지시를 내려, 검색결과에 표시된다고 해도 검색자에게 있어 큰 가치를 제공하지 않는 페이지나 파일에 대해 사전에 검색결과에 표시되지 않도록 할 수 있습니다. 이것은 검색자의 체험을 방해하지 않는 것은 물론, 검색엔진으로부터 저평가를 받지 않도록 하기 위한 대책입니다.


크롤러과 인덱서를 제어하는 이유

크롤러의 제어란, 특정 URL을 크롤러로부터 차단하거나 또는 크롤해도 검색결과에 표시되지 않게 하는 등 사이트 내 콘텐츠를 검색엔진이 어떻게 처리 해야 하는가의 지시를 명시적으로 행하는 것을 말합니다. 현재의 크롤러는 상당히 높은 크롤 능력을 가지고 있고 검색 대상으로써 Index를 할지 말지를 별개로 지정해 공개 되고 있는 대부분의 URL을 크롤할 수 있습니다. 이것이 SEO에 있어서 불리하게 작용하는 케이스가 있어, 그것을 위한 처리라는 의미로서 크롤러의 제어에는 중요한 의미를 가지고 있습니다. 대부분의 사이트에는 많든 적든 검색 유저에 대해서 그다지 가치를 제공하지 않는 페이지가 존재합니다. 이러한 페이지에 대해서 크롤러의 제어를 하지 않을 경우, 검색엔진은 「사이트 내에 내용이 빈약한 페이지가 존재한다」또는「콘텐츠에 중복이 있다」라고 사이트를 저평가 할 가능성이 있습니다.

  • 완성 전의 Stub(place holder)
  • 템플릿부를 제외하면 홍보밖에 없는 페이지
  • 템플릿부를 제외하면 다른 사이트에서 인용한 것 밖에 없는 페이지
  • 행정구역별(시.읍.면)등의 페이지로 내용이 비어있거나 거의 없는 페이지

위와 같은 페이지는 검색결과에 표시되는 일도 없고, 설령 표시된다 하더라도 검색자에게 가치를 제공하지 않습니다. 게다가 그 존재 자체가 사이트의 평가를 저하시키는 원인이 되기도 합니다. 크롤러로부터 차단할 필요가 있는 페이지입니다. 또, 블로그 등의 CMS를 이용하고 있는 경우에 자동 생성 된 다음과 같은 페이지에 대해서도, 사이트 전체의 Crawl나 Link popularity의 재분배라는 의미에서는 필요하지만, 그 페이지 자체가 검색결과에 표시 될 필요가 없을지도 모릅니다.

  • 날짜 archive 페이지
  • 태깅에 의한 분류를 하고 있는 경우의 태그페이지

위와 같은 페이지에 대해서는 Crawl할지, 검색 대상에 포함하지 않을지 등을 먼저 결정함으로써, 검색 유저에게 보다 좋은 경험을 할 수 있게 할지도 모릅니다. 또, 중복 콘텐츠나 내용이 빈약한 페이지 등의 마이너스 평가를 조금이라도 줄일 수 있는 가능성도 있습니다.

제어하는 방법의 종류와 적절한 사용

크롤러와 인덱서의 제어에 이용 할 수 있는 방법에는 다음의 3종류가 있고, 각각 이용 할 수 있는 기능이 다르기 때문에, 목적에 맞게 적절히 사용하면 좋을 것 입니다.

  • robots.txt 에 의한 제어
    디렉토리나 파일, 또는 파일의 종류 등에 대해서, Crawl 자체를 거부하고 싶은 경우에 사용합니다.
  • meta요소Robots 및 X-Robots-Tag 에 의한 제어
    meta요소 Robots 및 X-Robots-Tag 에 의한 제어에서는, 단순히 Crawl의 거부 뿐 만 아니라 보다 세밀한 지시가 가능합니다. 이런 특성을 이용해 주로「Crawl는 허가하지만 검색결과에는 표시하지 않는다」와 같은 경우에 사용합니다.
  • Microformats 에 의한 제어
    Microformats(구체적으로는 a요소 rel=”nofollow”)에서는, 링크 한 곳의 Link popularity평가를 주고 받음에 있어, 링크를 개별적으로 나눠 거부 할 수 있습니다. 주로 「이 링크에는 Link popularity 평가를 계승시키지 않는다」 또는 「이 링크는 신뢰 할 수 없다」 와 같은 경우에 사용합니다.
    아래에서는, 각각의 상세한 사용법에 대해 설명합니다.

robots.txt에 의한 제어

검색엔진의 대부분은 로봇 배제 프로토콜(REP:Robots Exclusion Protocol)에 대응하고 있고, robots.txt 에 의한 크롤러 제어가 가능합니다. robots.txt 의 주요 역할은 Crawl을 거부하는 디렉토리나 파일을 지정해 검색엔진에 전달하는 것입니다. 사이트의 루트 디렉토리에 「robots.txt」라는 이름의 텍스트파일을 설치해, Crawl하기 싫은 디렉토리나 파일을 지정 함으로써, Crawl의 순환을 제한 할 수 있습니다. Google등 일부 검색엔진에서는, robots.txt로 정규표현을 사용 한 세세한 제어도 가능합니다.

User-agent: *
Disallow: /cgi-bin/
User-Agent: Googlebot
Disallow: /tmp/
User-Agent: BaiduImagespider
Disallow: *.png$

위는, 모든 크롤러의 cgi-bin디렉토리에 대한 Crawl를 거부하고, 추가로 Googlebot에는 tmp디렉토리에 대한 순환을 거부하고, BaiduImagespider에는 PNG파일에 대한 순환을 거부하는 경우의 기록 예 입니다. 위처럼, robots.txt에 대한 지정은 크롤러의 유저에이전트명과 그 크롤러에 대한 지시의 셋트로 구성됩니다. 보다 자세한 사항은 다음을 참고하면 좋습니다.

  • robots.txt 파일을 사용 해서 페이지를 블록, 또는 삭제한다 – Google웹마스터 툴 헬프
  • robots.txt란? – 인포메이션 센터 – Yahoo! 검색
  • robots.txt 해석 툴

더욱이, robots.txt로 Crawl를 거부하고 있는 페이지라도, 다른 페이지로부터의 링크를 받고 있는 경우에는 URL이 검색결과에 표시 되기도 합니다. 이러한 것을 방지하고 싶다면, meta요소 Robots 및 X-Robots-Tag를 이용해 robots.txt를 사용하지 않는 방법도 있습니다. 하지만, 원래 「존재를 알리고 싶지 않은 파일이나 디렉토리」 는 웹 상의 공개되는 영역에 반드시 업로드 해야 하는 것은 아닙니다. 여기서 중요한 것은 어디까지나 「사람이 보는 것은 상관없지만, 크롤러나 인덱서의 동작은 제어하고 싶다」는 경우의 이야기라는 것에 주의해 주시기 바랍니다.

meta요소Robots 및 X-Robots-Tag 에 의한 제어

앞서 말한, robots.txt 에 의한 제어는 기본적으로 크롤러의 거부만 할 수 있는 것에 반해 meta 요소 Robots 및 X-Robots-Tag 를 사용한 제어에서는 그것과 함께 「Crawl는 허가하지만, 검색결과에는 표시하지 않는다」라는 설정이 가능해집니다. 이것을 이용하여 지정한 페이지의 Link popularity의 평가는 링크된 곳으로 계승시키면서, 그 페이지 자체는 검색결과에 표시 하지 않는다는 제어가 가능합니다. 블로그에서의 날짜 archive 페이지나 태그 페이지처럼, Crawl해서 링크도 찾고 싶지만 검색결과에 표시되어도 별 의미가 없는 URL에 대해서는 이 meta요소Robots 또는 X-Robots-Tag 로 제어하는 것이 좋을 것입니다. meta 요소 Robots 과 X-Robots-Tag 는 완전히 같은 기능을 제공하지만, 각각의 지정방법이 다릅니다.

  • meta요소 Robots 의 지정
    html문서의 head요소 내에 meta요소로서 작성합니다.
  • X-Robots-Tag 의 지정
    .htaccess 나 httpd.conf 로 디렉티브를 설정해, HTTP Response header 안에 크롤러로의 지시를 포함합니다. HTML뿐 아니라, 어떤 파일이라도 대상설정이 가능하기 때문에, PDF 나 SWF(Flash파일), PPT(파워 포인트)와 같은 링크정보를 포함한 파일 타입으로도 이용할 수 있습니다.

meta요소 Robots 의 지정

최종적인 출력이 (X)HTML문서가 되는 URL이라면, 그것이 정적이든 동적이든 meta요소Robots에 의한 지정이 적절합니다. 이것은 head요소 내에 meta요소를 추가하는 것뿐이기 때문에 상당히 간단합니다. 구체적으로는 다음과 같이 작성할 수 있습니다.

<meta name=”robots” content=”noindex,follow” />

위는 「검색결과에 표시하지 않고, 링크는 찾게 한다」라는 의미의 지정입니다. 이 외의 지정 할 수 있는 항목에 대해서는 뒤에서 다시 논하겠습니다.

X-Robots-Tag의 설정

X-Robots-Tag 는 서버 측의 설정으로, HTTP Response header 안에 크롤러나 인덱서에 지시하는 방법을 포함해서, 최종적인 출력이 (X)HTML문서가 아닌 종류의 파일형식에 대해서 유용합니다. 이것은.htaccess나 httpd.conf로 디렉티브를 설정해서 지정합니다.

<FilesMatch “\.(swf|pdf|ppt|doc)$”>
Header set X-Robots-Tag “index,nofollow”
</FilesMatch>

위는 Flash파일, PDF파일, PPT파일, DOC파일에 대해서 「검색결과에는 표시하지만 링크는 찾지 않는다」라는 지정의 예입니다. 이 nofollow 지정은 링크한 곳에, 평가를 계승하지 않는 것을 지시하는 것이기 때문에, 스팸 사이트 등에 대해서 링크를 포함해 언급하는 파일(HTML이 아닌 파일)을 Web 상에서 공개할 때는 이와 같은 지정이 유용할지도 모릅니다. 위처럼 X-Robots-Tag 가 지정된 파일에 액세스 할 때, 로봇을 포함한 유저 에이전트에 대해서 서버로부터 받는 HTTP Response header에는 지정된 내용에 따라 다음과 같은 행이 추가됩니다.

X-Robots-Tag: noindex,nofollow

HTTP Response header의 내용은 이 사이트에서 공개하고 있는HTTP Response header 정보분석 툴 로 확인 할 수 있습니다. 샘플로는 X-Robots-Tag를 지정한 비어있는 텍스트 파일 을 놔둬봤습니다. 이것에 대해서 아래의 「분석」 버튼을 눌러서 확인 해 주시길 바랍니다(결과는 새 윈도우 창에서 열립니다). 이 테스트로 사용한 것은 단순히 비어있는 텍스트 파일이지만, 서버 상에서 주고 받을 때에는 크롤러와 인덱서를 제어하기 위한 정보가 Response header에 추가되어 있습니다. Header정보의 마지막에 다음과 같은 행이 추가 되어 있는 것을 확인 할 수 있을 것입니다.

X-Robots-Tag: noindex,nofollow,noarchive,nosnippet

이것은, 이 파일의 인덱서를 허가 하지 않고, 링크를 찾는 것을 허가 하지 않고, Cash하는 것을 허가 하지 않고, Snippet를 표시하는 것을 허가 하지 않는다라는 지시입니다. 이처럼, 디렉티브에는 복수의 종류가 있고, 그것들은 조합해서 사용하는 것도 가능합니다.

meta요소 Robots 및 X-Robots-Tag 로 이용 할 수 있는 디렉티브

이용할 수 있는 디렉티브의 복수나 의미는, meta요소Robots 및 X-Robots-Tag 로 공통입니다. 중요부분을 아래에 표시합니다.

  • noindex
    검색결과에 표시하지 않는다
  • nofollow
    링크를 찾지 않는다
  • noarchive
    검색결과에 Cash 페이지로의 링크를 표시하지 않는다
  • nosnippet
    검색결과에 설명문을 표시하지 않는다
  • noodp
    검색결과의 타이틀이나 설명문에 ODP정보를 사용 하지 않는다
  • noydir
    검색결과의 타이틀이나 설명문에 Yahoo! 정보를 사용하지 않는다

Microformats 에 의한 제어

HTML문서에서 a요소와 href족성(属性)을 사용해 링크 할 때, a요소에 rel족성을 이용한 rel=”nofollow” 라는 Microformats 을 추가함으로써, 링크 한 곳에 Link popularity의 평가(link juice)를 계승하지 않도록 지시 할 수 있습니다. 이 Microformats 가 의미하는 것은 다음과 같습니다.

  • 링크 한 곳에 Link popularity이 평가를 계승하지 않는다.
  • 링크 한 곳의 웹 페이지 Crawl 및 Index를 추천하지 않는다.
  • 링크 한 곳은 신뢰 할 수 있는 페이지가 아니다.

자신의 사이트에서 스팸 사이트에 언급할 때나, 트랙백 스팸, 코멘트 스팸을 방지하고 싶은 경우에 사용합니다. 작성은 다음과 같습니다.

<a href=”http://www.example.com/” rel=”nofollow”>スパムサイト</a>

어디까지나 이것은 링크한 곳에서 링크된 곳으로의 Link popularity의 평가가 계승되는 것을 방지하고, 또는 링크 한 곳과 링크 된 곳의 관계를 거부하는 것으로, 링크 된 곳의 Crawl나 Index에 영향을 주는 것은 아닙니다. 이 때문에, 링크된 곳의 페이지나 파일도 자신이 관리하고 있는 것으로, 그 크롤러나 인덱서를 제어하고 싶다면 지금까지 설명해 온 다른 방법(robots.txt 나 meta요소Robots、X-Robots-Tag)으로 제어할 필요가 있습니다. 또, 전에는 이것을 자신이 관리하는 사이트 내에서 Link popularity의 재분배를 조작하는 의도로 사용하는 것(PageRank Sculpting라고 불렀습니다)이 부분적으로 보였지만, 이것은 현재로써는 의미가 없습니다(아마도 처음부터 의미가 없었을 것입니다)

이 기사의 정리

크롤러나 인덱서를 제어하는 방법에는 몇 가지 종류가 있고, 각각 이용 할 수 있는 기능에 차이가 있기 때문에, 목적에 맞게 나눠서 사용 할 수 있습니다. 그 적절한 사용이란 다음과 같은 것들입니다.

  • robots.txt
    디렉토리나 파일의 Crawl 및 Index를 거부 할 경우에 사용한다(SEO시점에서는 많이 사용하지 않는 것이 바람직하다)
  • meta Robots
    HTML로 입력 된 페이지로, 그 페이지는 검색결과에 표시하지 않고, 링크의 평가는 계승하는 경우에 사용한다

예 : <meta name=”robots” content=”noindex,follow” />

  • X-Robots-Tag
    HTML이외의 형식으로 링크정보를 포함한 파일에 대해서, 그 파일은 검색결과에 표시하지 않고, 링크의 평가는 계승하는 경우에 사용한다(예1). 또는, 그 파일은 검색결과에 표시하지만, 그 파일로부터의 링크의 평가는 계승하지 않는 경우에 사용한다(예2)

예1: X-Robots-Tag: noindex,follow
예2: X-Robots-Tag: index,nofollow
| Microformats rel=”nofollow”

Comments

comments


1 thought on “크롤러와 인덱서의 제어”

답글 남기기

이메일 주소는 공개되지 않습니다.

2 × 4 =