robots.txt를 통해 검색엔진 접근을 제한하는 방법

Name  
   achor ( Hit: 11591 Vote: 14 )
Homepage      http://empire.achor.net
Category      Seach

robots.txt는 검색의 한계를 설정하는 파일입니다.

최근 한국 구글에서는 자체적으로 주민등록번호를 필터링 하여 검색되지 않도록 조치를 하기도 했지만
admin 페이지 등 원치 않는 정보까지도 검색되어 문제가 되는 일은 종종 있어 왔습니다.

또한 과거 한국의 네이버나 중국의 바이두가 일본 웹검색 시장에 진출하며 과도한 크롤링으로 문제를 야기한 적도 있듯이
검색엔진의 잦은 크롤링은 서버의 성능 저하를 가져올 뿐더러 게시물의 과도한 조회수, 추천수 등과 같은 컨텐츠의 변형을 일으킬 수도 있습니다.

robots.txt를 통하여 이러한 부분을 보완할 수 있는 것이지요.



robots.txt는 반드시 도메인의 root에 존재해야 합니다.
하위 디렉토리에 있다면 검색엔진이 인식하지 못합니다.
http://empire.achor.net/robots.txt 처럼 도메인 바로 뒤에서 연결이 가능해야 합니다.


robots.txt의 기본적인 문법은,

User-agent: 로 검색엔진을 지정하고, Disallow: 와 Allow: 로 한계를 설정합니다.

* 는 길이 제한 없는 와이드카드이며,
$는 URL의 종결을 의미합니다.

예를 들자면,

User-agent: *
Disallow: /

위와 같이 표현된 robots.txt는 모든 검색엔진에 대하여 / 이하를 Disallow 하라란 의미입니다.
즉 해당 도메인에 대하여 모든 검색이 차단되겠지요.

반대의 경우는

User-agent: *
Allow: /

라고 표현할 수 있겠네요.


조금 더 옵션을 넣어보자면,

User-agent: Googlebot
Disallow: /*.jpg$
User-agent: *
Allow: /

위의 예는 Googlebot에 대하여 jpg 파일들은 검색하지 말고, 그 외 다른 검색엔진들은 모든 검색을 허용한다는 의미가 되겠습니다.



User-agent: *
Allow: /_*/
Disallow: /*test*.html
Disallow: /*?session
Allow: /*?$

그 외에도 *와 $를 넣어서 다양하게 구성할 수 있습니다.

또한

Allow: /test 는 test로 시작하는 디렉토리 뿐만 아니라 test.html 등까지도 검색에서 배제되지만
Allow: /test/ 는 test 디렉토리만 배제되는 차이가 있습니다.


주의해야 할 점은
(1) User-agent, Allow, Disallow와 : 사이엔 공백이 없어야 하고,
(2) :와 검색엔진명, 혹은 디렉토리와는 공백이 존재해야 합니다.
(3) robots.txt는 상위 라인부터 차례로 설정해 감으로, 반드시 더 적은 영역을 위에서 정의해야 합니다.

User-agent :* 같이 사용한다면 인식되지 않을 수 있고,
Allow: / 이후 Disallow: /test 를 해선 안 되고, Disallow: /test 이후 Allow: / 로 해야 하는 것이지요.


그 외 크롤링의 빈도를 설정하는 Crawl-delay와 같은 명령어도 있는데
google 등에서는 적용되지 않습니다.
또한 Sitemap를 통해 sitemap 파일의 위치를 지정해 줄 수도 있습니다.


검색엔진은 잘 아시는 google이나 naver 뿐만 아니라 상당히 다양하게 있는데,
주요한 검색엔진 로봇의 이름은 다음과 같습니다.


Google: googlebot
Yahoo: yahoo-slurp
MSN: msnbot
Ask/Teoma: teoma
DMOZ: robozilla
Alexa/Wayback: ia_archiver
Baidu: baiduspider
Naver: naverbot, yeti

Google Image: googlebot-image
Google Mobile: googlebot-mobile
Yahoo MM: yahoo-mmcrawler
Yahoo Blogs: yahoo-blogs/v3.9
MSN PicSearch: psbot


그 외 자세한 검색엔진 로봇 명칭은 아래 URL을 통해 확인 가능합니다.

http://www.invision-graphics.com/robotstxt_generator.html
http://www.robotstxt.org/db.html
http://www.user-agents.org/



예상하시다시피 robots.txt는 Disallow를 통해 때론 악의적인 사람들에 의해 악용될 수도 있습니다.

이를테면

User-agent: *
Disallow: /admin/
Allow: /

라고 했을 때 도메인 하부에 admin 페이지가 있다는 것은 쉽게 예측 가능하겠습니다.

이를 방지하기 위한 방법으로는,
(1) admin 페이지 자체에서 접속 가능한 IP를 지정한다거나
(2) /aaa/admin/ 같은 하부 디렉토리를 이용하고, Disallow는 /aaa/에 대하여 설정하는 방법,
(3) 그리고 meta tag를 통해 개별 페이지에서 검색을 제한하는 방법 등이 있습니다.

내용이 이미 충분히 길어졌기에
(3) meta tag를 통해 개별 페이지에서의 검색을 제한하는 방법은 다음에 살펴보겠습니다.

- achor

본문 내용은 4,930일 전의 글로 현재의 관점과 다를 수 있습니다.

Post: https://achor.net/board/blog/4
Trackback: https://achor.net/tb/blog/4
RSS: https://achor.net/rss/blog

Share 밴드공유 Naver Blog Share Button



achor Empire
meta tag를 활용한 검색엔진 접근을 제한하는 방법
지난 robots.txt를 통해 검색엔진 접근을 제한하는 방법 http://empire.achor.net/blog/4 에 이은 2번째. robots.txt의 Disallow 설정을 통해 접근하지 말았으면 하는 디렉토리를 오히려 명시해야 해서 이를 악의적인 사람들이 악용할 수 있는 딜레마가 있었는데 그 대안 중 한 가지가 바로 이번에 설명하려는 meta tag를 통한 검색엔진 제한 설정법입니다. 용법은 간단합니다. head tag 내에 name...
 2011-05-31 23:41:11    



Tag

- SEO: 중복되는 링크를 위해 canonical link를 사용하자 (2011-05-23 03:01:46)- 검색엔진: 새삼 (2009-02-18 02:28:33)

- SEO: meta tag를 통해 검색엔진 접근을 제한하는 방법 (2011-05-31 23:38:13)- SEO: RSS 피드, 블로그를 검색엔진, 메타블로그에 등록하자 (2011-05-23 09:37:36)



 10   1   1
No
Category1
Category2
Subject
Date
Hit
10IT웹개발   jQuery를 활용한 XML data island 변경2013/11/162802
9IT모바일   주파수 경매2013/09/042914
8디지털마케팅Platform   Facebook은 영원할 것인가?2011/06/0615332
7디지털마케팅Seach   Google +1 Button2011/06/0311115
6IT웹개발   CKFinder 한글파일명 문제 해결 방법2011/06/0210222
5디지털마케팅Seach   meta tag를 통해 검색엔진 접근을 제한하는 방법2011/05/3113783
4디지털마케팅Seach   robots.txt를 통해 검색엔진 접근을 제한하는 방법2011/05/3111591
3IT웹개발   CKFinder를 활용한 웹앨범 제작 방법2011/05/2411276
2디지털마케팅Seach   RSS 피드, 블로그를 검색엔진, 메타블로그에 등록하자2011/05/2311223
1디지털마케팅Seach   중복되는 링크를 위해 canonical link를 사용하자2011/05/2311000
1 

  당신의 추억

ID  

  그날의 추억

Date  

  Poll
Only one, 주식 or 코인?

주식
코인

| Vote | Result |
First Written: 05/19/2011 14:55:00
Last Modified: 08/23/2021 11:46:44