User-agent: 로 검색엔진을 지정하고, Disallow: 와 Allow: 로 한계를 설정합니다.
* 는 길이 제한 없는 와이드카드이며,
$는 URL의 종결을 의미합니다.
예를 들자면,
1
2
3
User-agent: *
Disallow: /
위와 같이 표현된 robots.txt는 모든 검색엔진에 대하여 / 이하를 Disallow 하라란 의미입니다.
즉 해당 도메인에 대하여 모든 검색이 차단되겠지요.
반대의 경우는
1
2
3
User-agent: *
Allow: /
라고 표현할 수 있겠네요.
조금 더 옵션을 넣어보자면,
1
2
3
4
5
User-agent: Googlebot
Disallow: /*.jpg$
User-agent: *
Allow: /
위의 예는 Googlebot에 대하여 jpg 파일들은 검색하지 말고, 그 외 다른 검색엔진들은 모든 검색을 허용한다는 의미가 되겠습니다.
1
2
3
4
5
6
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 뿐만 아니라 상당히 다양하게 있는데,
주요한 검색엔진 로봇의 이름은 다음과 같습니다.
예상하시다시피 robots.txt는 Disallow를 통해 때론 악의적인 사람들에 의해 악용될 수도 있습니다.
이를테면
1
2
3
4
User-agent: *
Disallow: /admin/
Allow: /
라고 했을 때 도메인 하부에 admin 페이지가 있다는 것은 쉽게 예측 가능하겠습니다.
이를 방지하기 위한 방법으로는,
(1) admin 페이지 자체에서 접속 가능한 IP를 지정한다거나
(2) /aaa/admin/ 같은 하부 디렉토리를 이용하고, Disallow는 /aaa/에 대하여 설정하는 방법,
(3) 그리고 meta tag를 통해 개별 페이지에서 검색을 제한하는 방법 등이 있습니다.
내용이 이미 충분히 길어졌기에
(3) meta tag를 통해 개별 페이지에서의 검색을 제한하는 방법은 다음에 살펴보겠습니다.
meta tag를 활용한 검색엔진 접근을 제한하는 방법 지난 robots.txt를 통해 검색엔진 접근을 제한하는 방법 http://empire.achor.net/blog/4 에 이은 2번째.
robots.txt의 Disallow 설정을 통해
접근하지 말았으면 하는 디렉토리를 오히려 명시해야 해서 이를 악의적인 사람들이 악용할 수 있는 딜레마가 있었는데
그 대안 중 한 가지가 바로 이번에 설명하려는 meta tag를 통한 검색엔진 제한 설정법입니다.
용법은 간단합니다.
head tag 내에 name...