검색엔진최적화 – robots.txt 활용하기

검색엔진상위등록을 위한 검색엔진최적화 작업은 어떻게하면 검색엔진에게 잘보일까하는 것이 관건일 것이다. 검색엔진의 로봇은 링크를 타고 다니면서 정보를 수집, 정리 하여 검색결과를 보여주므로 링크에 대해 상당히 민감하다.

따라서 웹사이트 내부 링크 중 깨진 링크는 없는지 잘 살펴보고 깨진 링크를 제거 하는 것이 검색엔진최적화 중 한 부분이다.

그런데 노출을 하면 안되는 파일이나 폴더, 또는 게시판을 크롤링하여 이미 삭제된 게시물 까지 깨진링크로 나오는 경우가 있다. 이런 경우 게시판 전체를 검색로봇의 크롤링에서 제외시키는 것이 오히려 검색엔진상위등록에 유리할 수 있다. 검색로봇이 웹사이트를 방문했을 때 없는 파일 계속 찾는 수고(?)를 덜어 주는 것이다.

사람도 길을 잘가고 있는데 갑자기 막다른 길이 나오면 짜증이 난다. 그것도 지도에는 그렇게 나오지 않았는데 실제로 가보니 막혀있다면 더 화가 날것이다. 검색엔진의 로봇의 경우 감정은 없겠지만 검색엔진 상위등록을 위한 웹사이트로 좋게 보지는 않을 것이다.

아예, 그런 파일이나 폴더가 많다면 robot.txt를 활용 제외를 시켜 검색엔진의 움직임을 편하게 해주자. 이와 동시에 sitemap도 수정하여 robot.txt로 제외된 파일이나 폴더를 삭제하도록 하자.

예)

User-Agent: * (모든 종류의 로봇의 접근을 허락함)

Allow: /    (전체 웹사이트의 크롤링를 허락함)

Disallow: /lab/ (lab 폴더만 접근을 차단함)

Disallow: /*.asp$  (url의 마지막부분이 asp로 된 파일의 접근 차단)

Disallow: /*?

( 물음표 ?가 포함된 웹사이트 주소의 접근을 차단함 – 게시판이나 간혹 PHPSESSID로 생성된 파일의 접근을 차단함)

아래는 구글 웹마스터의 robot.txt 작성 방법에 관한 글을 퍼온 것이다.

robots.txt 파일 만들기>

robots.txt 파일을 만드는 가장 간편한 방법은 웹마스터 도구에서 robots.txt 생성 도구를 사용하는 것입니다. 파일을 만든 후 robots.txt 분석 도구를 사용하여 파일이 올바르게 작성되었는지 확인할 수 있습니다.

robots.txt 파일을 생성한 후 도메인의 루트 디렉토리에 robots.txt 라는 이름으로 저장합니다. 로봇은 이 파일을 루트 디렉토리에서 찾기 때문에 파일을 다른 곳에 저장하면 로봇이 찾을 수 없습니다.

robots.txt 파일은 수동으로 작성하거나 텍스트 편집기를 사용하여 만들 수 있습니다. HTML 파일이 아닌 영숫자로 인코딩된 텍스트 파일이어야 하며, 파일 이름에는 소문자를 사용해야 합니다.

구문

가장 간단한 형식의 robots.txt 파일은 다음 두 가지 규칙을 사용합니다.

  • User-agent: 아래에 나오는 규칙이 적용되는 로봇
  • Disallow: 차단할 URL

이 두 행은 파일 내에서 단일 항목으로 간주됩니다. 원하는 만큼 항목을 추가할 수 있으며 하나의 항목에 여러 Disallow 행 및 여러 User-agent를 포함할 수도 있습니다.

User-agent 행에는 무엇을 포함해야 하나요?

User-agent는 특정 검색 엔진 로봇입니다. 웹 로봇 데이터베이스에는 다양한 일반적인 봇이 나와 있습니다. 이름을 표시하여 특정 검색 로봇에 대한 항목을 설정할 수도 있고, 별표(*)를 사용하여 모든 검색 로봇에 대한 항목을 설정할 수도 있습니다. 모든 검색 로봇이 해당되는 항목의 경우 다음과 같이 지정합니다.

User-agent: *

Google은 다양한 검색 로봇(user-agent)을 사용합니다. Google 웹 검색에 사용하는 로봇은 Googlebot입니다. Googlebot-Mobile 및 Googlebot-Image 같은 봇은 Googlebot 설정된 규칙을 따르지만 해당 봇에만 적용되는 특정 규칙을 설정할 수도 있습니다.

Disallow 행에는 무엇을 포함해야 하나요?

Disallow 행에는 차단할 페이지를 표시합니다. 특정 URL이나 패턴을 포함할 수 있으며, 각 항목은 슬래시(/)로 시작해야 합니다.

  • 사이트 전체를 차단하려면 슬래시를 사용합니다.
    Disallow: /
  • 디렉토리 및 디렉토리에 포함된 모든 항목을 차단하려면 디렉토리 이름 다음에 슬래시를 사용합니다.
    Disallow: /junk-directory/
  • 특정 페이지를 차단하려면 해당 페이지를 표시합니다.
    Disallow: /private_file.html
  • Google 이미지 검색에서 특정 이미지를 삭제하려면 다음과 같이 설정합니다.
    User-agent: Googlebot-Image
    Disallow: /images/dogs.jpg
  • Google 이미지 검색에서 사이트 내 모든 이미지를 삭제하려면 다음과 같이 설정합니다.
    User-agent: Googlebot-Image
    Disallow: /
  • 특정 파일 형식(예: .gif)을 차단하려면 다음과 같이 설정합니다.
    User-agent: Googlebot
    Disallow: /*.gif$
  • 사이트 페이지에 애드센스 광고를 게재하면서도 크롤링되지 않도록 하려면 Mediapartners-Google을 제외한 모든 로봇을 차단합니다. 이렇게 하면 해당 페이지가 검색 결과에는 표시되지 않지만 Mediapartners-Googlebot 페이지를 분석하여 광고를 게재하도록 합니다. Mediapartners-Google 로봇은 다른 Google user-agent와 페이지를 공유하지 않습니다. 예를 들면 다음과 같이 설정합니다.
    User-agent: *
    Disallow: /folder1/
    
    User-agent: Mediapartners-Google
    Allow: /folder1/

명령문은 대소문자를 구분합니다. 예를 들어, Disallow: /junk_file.asp는 http://www.example.com/junk_file.asp를 차단하지만 http://www.example.com/Junk_file.asp.

패턴 일치

패턴 일치를 인식하지 못하는 검색 엔진도 있지만, Googlebot 일부 패턴 일치를 인식합니다.

  • 별표(*)를 사용하여 일치하는 문자열을 찾을 수 있습니다. 예를 들어 private으로 시작하는 모든 하위 디렉토리에 대한 액세스를 차단하려면 다음과 같이 설정합니다.
    User-agent: Googlebot
    Disallow: /private*/
  • 물음표(?)를 포함하는 모든 URL에 대한 액세스를 차단할 수 있습니다. 즉, 도메인 이름으로 시작되는 임의의 문자열 다음에 물음표가 있는 모든 URL을 크롤링하지 않도록 차단하려면 다음과 같이 설정합니다.
    User-agent: Googlebot
    Disallow: /*?
  • URL의 마지막 부분이 일치하도록 지정하려면 $ 문자를 사용합니다. 예를 들어 .xls로 끝나는 모든 URL를 차단하려면 다음과 같이 설정합니다.
    User-agent: Googlebot 
    Disallow: /*.xls$

    이 패턴 일치를 Allow 명령어와 함께 사용할 수 있습니다. 예를 들어 ?가 세션 ID를 나타내는 경우, 이를 포함하는 모든 URL을 제외시켜 Googlebot 중복된 페이지를 크롤링하지 않도록 해야 합니다. 그러나 ?로 끝나는 URL은 크롤링하려는 페이지의 버전이 될 수 있습니다. 이런 경우 robots.txt 파일을 다음과 같이 설정합니다.

    User-agent: *
    Allow: /*?$
    Disallow: /*?

    Disallow: / *? 명령어는 ?가 포함된 모든 URL을 차단합니다. 즉, 도메인 이름으로 시작되고 임의의 문자열, 물음표, 임의의 문자열로 구성된 모든 URL을 차단합니다.

    Allow: /*?$ 명령어는 ?로 끝나는 모든 URL을 허용합니다. 즉, 도메인 이름으로 시작되고 임의의 문자열과 ?로 구성되며 ? 뒤에 문자가 없는 모든 URL을 허용합니다.

 

7 thoughts on “검색엔진최적화 – robots.txt 활용하기

  1. 흠흠 어렵네요.. 위 명령어중
    User-Agent: * (모든 종류의 로봇의 접근을 허락함)
    Allow: / (전체 웹사이트의 크롤링를 허락함)
    이거 두개 쓰면 제일 좋은건가요??
    이렇게 써주면 되나요??

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.