robots.txt로 URL 차단

robots.txt 파일 만들기

Wix나 Blogger 등의 사이트 호스팅 서비스를 사용하는 경우 robots.txt 파일을 작성하거나 편집할 필요가 없습니다.

시작하기

robots.txt 파일은 사이트의 루트에 위치합니다. 예를 들어, www.example.com 사이트의 경우 robots.txt 파일은 www.example.com/robots.txt에 위치합니다. robots.txt는 로봇 배제 표준을 따르는 일반 텍스트 파일입니다. robots.txt 파일은 하나 이상의 규칙으로 구성됩니다. 각 규칙은 특정 크롤러가 웹사이트에서 지정된 파일 경로에 액세스할 권한을 차단하거나 허용합니다.

다음은 규칙이 2개인 간단한 robots.txt 파일입니다. 설명은 아래에서 확인할 수 있습니다.

# 규칙 1
User-agent: Googlebot
Disallow: /nogooglebot/

# 규칙 2
User-agent: *
Allow: /

Sitemap: http://www.example.com/sitemap.xml

 

설명

  1. 이름이 'Googlebot'인 사용자 에이전트(크롤러)는 http://example.com/nogooglebot/ 폴더 또는 이 폴더의 하위 디렉토리를 크롤링해서는 안 됩니다.
  2. 다른 모든 사용자 에이전트는 전체 사이트에 액세스할 수 있습니다. 기본적으로 전체 액세스가 허용된다고 가정되기 때문에 이 부분을 생략해도 결과는 같습니다.
  3. 사이트의 사이트맵 파일은 http://www.example.com/sitemap.xml에 있습니다.

향후 더 자세한 예시가 제공될 예정입니다.

기본적인 robots.txt 가이드라인

robots.txt 파일에 관한 몇 가지 기본적인 가이드라인은 다음과 같습니다. robots.txt 구문에는 이해해야 하는 미묘한 동작이 있기 때문에 robots.txt 파일의 전체 구문을 읽는 것이 좋습니다.

형식 및 위치

거의 모든 텍스트 편집기를 사용하여 robots.txt 파일을 만들 수 있습니다. 표준 ASCII 또는 UTF-8 텍스트 파일을 작성할 수 있는 텍스트 편집기를 사용해야 합니다. 워드 프로세서는 파일을 독자적인 형식으로 저장하는 경우가 많고, 둥근 따옴표같이 예상치 못한 문자를 추가하여 크롤러에 문제를 일으킬 수 있으므로 사용해서는 안 됩니다.

robots.txt 테스터 도구를 사용하여 사이트에 적용할 robots.txt 파일을 작성하거나 수정하세요. 이 도구를 사용하면 사이트를 대상으로 구문 및 동작을 테스트할 수 있습니다.

형식 및 위치 규칙

  • 파일 이름은 robots.txt로 지정해야 합니다.
  • 사이트에는 robots.txt 파일이 하나만 있어야 합니다.
  • robots.txt 파일은 파일이 적용되는 웹사이트 호스트의 루트에 있어야 합니다. 예를 들어 http://www.example.com/ 아래 모든 URL의 크롤링을 제어하려면 robots.txt 파일이 http://www.example.com/robots.txt에 있어야 합니다. http://example.com/pages/robots.txt와 같이 하위 디렉토리에 있어서는 안 됩니다. 웹사이트 루트에 액세스하는 방법을 모르거나 액세스 권한이 필요한 경우 웹 호스팅 서비스 제공업체에 문의하세요. 웹사이트 루트에 액세스할 수 없다면 메타태그와 같은 다른 차단 방법을 사용하세요.
  • robots.txt 파일은 http://website.example.com/robots.txt와 같은 하위 도메인이나 http://example.com:8181/robots.txt와 같은 비표준 포트에 적용할 수 있습니다.
  • 주석은 어떤 행에나 지정할 수 있습니다. 

구문

  • robots.txt는 ASCII 또는 UTF-8 텍스트 파일이어야 합니다. 다른 문자는 허용되지 않습니다.
  • robots.txt 파일은 하나 이상의 규칙으로 구성됩니다.
  • 각 규칙은 여러 명령(지침)으로 구성되며, 한 행이 하나의 명령입니다.
  • 규칙은 다음과 같은 정보를 제공합니다.
    • 규칙이 적용되는 대상 (사용자 에이전트)
    • 에이전트가 액세스할 수 있는 디렉토리나 파일 또는
    • 에이전트가 액세스할 수 없는 디렉토리나 파일
  • 규칙은 위에서 아래 순서로 처리되며, 사용자 에이전트는 주어진 사용자 에이전트와 일치하는 가장 구체적인 첫 번째 규칙 집합 한 개에만 연결할 수 있습니다.
  • 기본적으로 사용자 에이전트는 Disallow: 규칙으로 차단되지 않은 페이지 또는 디렉토리를 크롤링할 수 있다고 가정됩니다.
  • 규칙은 대소문자를 구분합니다. 예를 들어 Disallow: /file.asphttp://www.example.com/file.asp에 적용되지만 http://www.example.com/FILE.asp에는 적용되지 않습니다.

robotx.txt 파일에서 사용되는 명령은 다음과 같습니다.

  • User-agent: [필수, 규칙당 하나 이상] 규칙이 적용되는 검색엔진 로봇(웹 크롤러 소프트웨어)의 이름입니다. 이 명령은 모든 규칙의 첫 행입니다. 대부분의 사용자 에이전트 이름은 웹 로봇 데이터베이스 또는 Google 사용자 에이전트 목록에 명시되어 있습니다. 경로 접두어, 접미어, 전체 문자열에 * 와일드 카드를 사용할 수 있습니다. 아래 예와 같이 별표(*)를 사용하면 이름을 명시적으로 지정해야 하는 여러 AdsBot 크롤러를 제외한 모든 크롤러에 규칙을 적용할 수 있습니다. Google 크롤러 이름 목록 확인하기 예:
    # 예 1: Googlebot만 크롤링 차단
    User-agent: Googlebot
    Disallow: /
    
    # 예 2: Googlebot 및 Adsbot 크롤링 차단
    User-agent: Googlebot
    User-agent: AdsBot-Google
    Disallow: /
     
    # 예 3: AdsBot 크롤러를 제외한 모든 크롤러 차단
    User-agent: * 
    Disallow: /
  • Disallow: [규칙당 하나 이상의 Disallow 또는 Allow 항목 필수] 사용자 에이전트가 크롤링해서는 안 되는 루트 도메인 관련 디렉토리 또는 페이지입니다. 페이지인 경우 브라우저에 표시되는 전체 페이지 이름이어야 하며, 디렉토리인 경우 / 기호로 끝나야 합니다.  경로 접두어, 접미어, 전체 문자열에 * 와일드 카드를 사용할 수 있습니다.
  • Allow: [규칙당 하나 이상의 Disallow 또는 Allow 항목 필수] 방금 언급한 사용자 에이전트가 크롤링해야 하는 루트 도메인 관련 디렉토리 또는 페이지입니다. 허용되지 않은 디렉토리 안에 있는 하위 디렉토리나 페이지를 크롤링할 수 있도록 Disallow를 재정의할 때 사용합니다. 페이지인 경우 브라우저에 표시되는 전체 페이지 이름이어야 하며, 디렉토리인 경우 / 기호로 끝나야 합니다. 경로 접두어, 접미어, 전체 문자열에 * 와일드 카드를 사용할 수 있습니다.
  • Sitemap: [선택사항, 파일당 0개 이상] 웹사이트의 사이트맵 위치입니다. 정규화된 URL이어야 합니다. Google은 http, https, www를 포함하는 URL과 포함하지 않는 대체 URL을 가정하거나 확인하지 않습니다. 사이트맵은 Google에서 크롤링할 수 있거나 할 수 없는 콘텐츠를 표시하는 것이 아니라 크롤링을 해야 하는 콘텐츠를 표시할 때 좋은 방법입니다. 사이트맵에 관해 자세히 알아보기 예:
    Sitemap: https://example.com/sitemap.xml
    Sitemap: http://www.example.com/sitemap.xml

알 수 없는 키워드는 무시됩니다.

다른 예시 파일

robots.txt 파일은 하나 이상의 규칙 블록으로 구성되며, 각 규칙 블록은 규칙 대상을 지정하는 User-agent 행으로 시작합니다. 다음은 규칙이 2개인 파일입니다. 인라인 주석에 각 규칙이 설명되어 있습니다.

# example.com/directory1/... 및 example.com/directory2/...에서 Googlebot을 차단합니다.
# 하지만 directory2/subdirectory1/...에는 액세스를 허용합니다.
# 사이트의 다른 모든 디렉토리는 기본적으로 허용됩니다.
User-agent: googlebot
Disallow: /directory1/
Disallow: /directory2/
Allow: /directory2/subdirectory1/

# 전체 사이트에서 anothercrawler를 차단합니다.
User-agent: anothercrawler
Disallow: /

전체 robots.txt 구문

여기에서 전체 robots.txt 구문을 확인할 수 있습니다. robots.txt 구문에는 몇 가지 까다로운 부분이 있으며 이 부분을 잘 알아 둬야 하므로 전체 문서를 읽어 보시기 바랍니다.

알아 두면 좋은 robots.txt 규칙

다음은 알아 두면 좋은 몇 가지 일반적인 robots.txt 규칙입니다.

규칙 예시
전체 웹사이트 크롤링 금지. 웹사이트의 URL이 크롤링된 적이 없어도 색인이 생성되는 경우가 있습니다. 참고: 이 규칙은 이름을 명시적으로 지정해야 하는 여러 AdsBot 크롤러에 적용되지 않습니다.
User-agent: *
Disallow: /
디렉토리 및 디렉토리에 포함된 내용의 크롤링 금지(디렉토리 이름 뒤에 슬래시 입력). 비공개 콘텐츠에 대한 액세스를 차단하는 데 robots.txt를 사용하면 안 됩니다. 대신 올바른 인증 방법을 사용하세요. robots.txt 파일을 통해 금지된 URL은 크롤링되지 않아도 색인이 생성될 수 있으며 robots.txt 파일은 누구나 볼 수 있으므로 비공개 콘텐츠의 위치가 공개될 수도 있습니다.
User-agent: *
Disallow: /calendar/
Disallow: /junk/
크롤러 하나에만 액세스 허용
User-agent: Googlebot-news
Allow: /

User-agent: *
Disallow: /
하나를 제외한 모든 크롤러에 액세스 허용
User-agent: Unnecessarybot
Disallow: /

User-agent: *
Allow: /

웹페이지 하나의 크롤링 금지(슬래시 뒤에 페이지 입력)

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-Google 웹 크롤러가 숨겨진 페이지를 분석하여 내 사이트를 방문하는 사용자에게 어떤 광고를 표시할지 결정할 수 있습니다.

User-agent: *
Disallow: /

User-agent: Mediapartners-Google
Allow: /
특정 문자열로 끝나는 URL에 적용($ 사용) 예를 들어 예시 코드는 .xls로 끝나는 URL을 모두 차단합니다.
User-agent: Googlebot
Disallow: /*.xls$
이 도움말이 도움이 되었나요?
어떻게 하면 개선할 수 있을까요?