현인

Robots.txt 알아보기 본문

CS 학습/WEB

Robots.txt 알아보기

현인(Hyeon In) 2024. 11. 27. 16:55

 robots.txt 파일은 검색엔진 크롤러가 사이트에서 접근할 수 있는 URL을 지정하는 파일이다. 주로 크롤러 요청으로 인해 사이트에 과부하가 발생하는 것을 방지하기 위해 사용한다. 다만, 이 파일은 웹페이지가 Google 검색결과에 표시되지 않도록 차단하는 수단으로 사용해서는 안 된다. 검색결과에서 페이지를 숨기려면 noindex 태그를 사용하거나 비밀번호로 보호해야 한다.

robots.txt 파일의 주요 용도

  1. 크롤러 트래픽 관리
  2. 크롤러가 특정 URL이나 리소스에 접근하지 못하도록 제한한다.
  3. 리소스 크롤링 차단단, 이러한 리소스가 페이지 이해에 중요한 역할을 한다면 차단해서는 안 된다.
  4. 중요하지 않은 이미지, 스크립트, 스타일 파일 등을 차단하여 크롤러가 불필요한 리소스를 크롤링하지 않도록 한다.
  5. 미디어 파일 검색결과 제외하지만 다른 페이지에서 연결된 파일에 대한 접근 자체를 막을 수는 없다.
  6. 이미지, 동영상, 오디오 파일 등이 Google 검색결과에 표시되지 않도록 설정할 수 있다.

robots.txt 파일의 한계

  • 크롤러의 행동을 강제할 수 없음
  • 잘 제작된 크롤러는 robots.txt 파일을 준수하지만, 이를 무시하는 크롤러도 존재한다. 민감한 데이터를 보호하려면 비밀번호로 보호하거나 서버 보안을 강화해야 한다.
  • 검색엔진마다 구문 해석 방식이 다를 수 있음
  • 일부 크롤러는 특정 규칙을 이해하지 못하거나 잘못 해석할 수 있다. 이를 방지하기 위해 모든 크롤러가 이해할 수 있는 적절한 구문을 사용해야 한다.
  • 차단된 URL이 검색결과에 표시될 수 있음
  • robots.txt로 차단하더라도 다른 페이지에서 해당 URL이 연결된 경우 검색결과에 URL이 표시될 수 있다. URL만 표시되며 페이지 내용은 표시되지 않지만, 이를 완전히 방지하려면 noindex 태그를 사용하거나 페이지 자체를 삭제해야 한다.

웹페이지를 검색결과에서 완전히 숨기는 방법

  1. noindex 태그 사용
  2. 검색엔진이 페이지를 색인하지 못하도록 한다.
  3. 비밀번호로 보호
  4. 서버에서 민감한 파일이나 페이지를 비공개로 설정한다.
  5. 페이지 삭제
  6. 검색결과에 노출되지 않도록 불필요한 페이지는 삭제한다.

robots.txt 파일은 크롤러 트래픽 관리와 리소스 차단에 적합하지만, 검색결과에서 페이지를 완전히 제외하려면 위와 같은 대안을 사용해야 한다.

robots.txt 파일 작성 및 제출 방법

robots.txt 파일은 검색엔진 크롤러가 웹사이트에서 특정 경로에 접근하는 것을 제어하는 파일이다. 이 파일은 사이트의 루트 경로에 위치해야 하며, 기본적으로 모든 파일은 크롤링이 허용된다는 점을 기억해야 한다. 작성 시 아래 지침을 따른다.

robots.txt 파일의 기본 구조

robots.txt는 한 줄에 하나의 규칙으로 구성되며, 크롤러의 접근 허용 여부를 설정한다. 아래는 간단한 예시이다:

User-agent: Googlebot
Disallow: /nogooglebot/

User-agent: *
Allow: /

Sitemap: <https://www.example.com/sitemap.xml>
  • User-agent: Googlebot: Googlebot은 /nogooglebot/으로 시작하는 URL에 접근할 수 없다.
  • User-agent: *: 나머지 모든 크롤러는 사이트 전체를 크롤링할 수 있다.
  • Sitemap:: 사이트맵의 경로를 명시한다.

robots.txt 파일 작성 가이드라인

1. 파일 생성

  • 텍스트 편집기(예: 메모장, TextEdit, vi, emacs)를 사용해 작성한다.*워드 프로세서는 사용하지 말 것!*워드 프로세서는 예상치 못한 문자를 추가해 크롤러에 문제를 일으킬 수 있다.
  • 파일 이름은 반드시 robots.txt로 설정한다.
  • 파일은 UTF-8로 저장하며, ASCII 문자를 포함해야 한다.

2. 파일 위치

3. 적용 범위

4. 사이트맵 포함

작성 시 유의사항

  • 규칙 기본값: robots.txt에서 명시적으로 차단하지 않는 한 모든 URL은 크롤링이 허용된다.
  • 문자 제한: UTF-8 범위 밖의 문자는 Google이 무시할 수 있다.따라서 규칙이 무효화되지 않도록 표준 문자만 사용한다.

robots.txt 규칙 작성 방법

robots.txt 파일은 검색엔진 크롤러가 웹사이트의 특정 영역을 크롤링할 수 있는지에 대한 지침을 제공한다. 각 규칙은 크롤러의 행동을 제어하며, 아래 가이드라인에 따라 작성한다.

기본 규칙 작성 원칙

규칙 구성

  • 하나 이상의 그룹으로 구성된다.
  • 그룹은 User-agent 지시어로 시작하며, 하나 이상의 Disallow 또는 Allow 규칙이 포함된다.
  • 각 그룹은 특정 크롤러를 대상으로 하거나, 모든 크롤러를 대상으로 설정할 수 있다.
  • 크롤러는 규칙을 위에서 아래로 처리하며, 가장 구체적인 첫 번째 그룹의 규칙만 적용한다.

대소문자 구분

  • 모든 규칙은 대소문자를 구분한다.
  • 예: Disallow: /file.asp는 /file.asp에만 적용되며, /FILE.asp에는 적용되지 않는다.

주석 사용

  • # 문자는 주석으로 처리된다.
# 이 규칙은 Googlebot만 차단합니다.
User-agent: Googlebot
Disallow: /

기본 동작

  • 명시적으로 차단하지 않는 한, 모든 페이지는 크롤링이 허용된다.

Google 크롤러가 지원하는 주요 지시어

User-agent:

  • 이 규칙이 적용될 크롤러를 지정한다.
  • Google 크롤러의 이름은 Google 사용자 에이전트 목록을 참조한다.
  • 별표(``)를 사용하면 특정 AdsBot 크롤러를 제외한 모든 크롤러에 규칙을 적용할 수 있다.
# Googlebot만 차단
User-agent: Googlebot
Disallow: /

# Googlebot과 AdsBot-Google 차단
User-agent: Googlebot
User-agent: AdsBot-Google
Disallow: /

# 모든 크롤러 차단 (AdsBot은 명시적으로 제외해야 함)
User-agent: *
Disallow: /

Disallow:

  • 크롤링을 금지할 경로를 지정한다.
    • 경로는 /로 시작해야 하며, 디렉터리의 경우 /로 끝나야 한다.
Disallow: /private/
Disallow: /confidential.html

Allow:

  • 크롤링을 허용할 경로를 지정한다.
    • Disallow 규칙을 재정의해 특정 하위 경로나 페이지에 접근을 허용한다.
Disallow: /private/
Allow: /private/public-page.html

Sitemap:

  • 사이트맵 파일의 URL을 명시한다.
  • 사이트맵 URL은 정규화된 URL이어야 하며, 사이트맵은 크롤링해야 할 콘텐츠를 표시하는 용도로 사용된다.
Sitemap: <https://example.com/sitemap.xml>
Sitemap: <https://www.example.com/sitemap.xml>

와일드카드 지원

  • Google은 `` 와일드카드를 규칙에 사용할 수 있다.
    • 예: Disallow: /private/* → /private/로 시작하는 모든 경로를 차단.
  • $를 사용해 특정 확장자를 지정할 수 있다.
    • 예: Disallow: /*.pdf$ → PDF 파일만 차단.

규칙 작성 예시

아래는 다양한 규칙을 포함한 예제이다.

# 모든 크롤러에서 사이트 전체를 크롤링 허용
User-agent: *
Allow: /

# Googlebot은 특정 디렉터리 차단
User-agent: Googlebot
Disallow: /private/

# 모든 크롤러에서 PDF 파일 차단
User-agent: *
Disallow: /*.pdf$

# 사이트맵 위치 지정
Sitemap: <https://www.example.com/sitemap.xml>

robots.txt는 크롤러의 행동을 제어하지만, 완전한 보호 수단은 아니므로 민감한 정보는 서버 측 보호 기능을 사용해 안전하게 관리해야 한다.

robots.txt 파일 업로드

robots.txt 파일을 작성한 후, 사이트의 루트 디렉터리에 업로드하면 검색엔진 크롤러에서 활용할 수 있다. 업로드 방식은 사용하는 호스팅 환경에 따라 다르므로 다음을 참고한다.

  1. 호스팅 서비스 문서 확인FTP 클라이언트나 호스팅 서비스의 파일 관리자 도구를 이용해 파일을 서버 루트 디렉터리에 업로드할 수 있다.
  2. 호스팅 서비스마다 파일 업로드 방식이 다르므로 사용 중인 서비스의 가이드를 확인하거나 "FTP 파일 업로드 [호스팅 서비스 이름]"과 같은 검색어를 활용한다. 예: "파일 업로드 Infomaniak".
  3. robots.txt 파일 위치 확인
  4. 업로드 후 https://example.com/robots.txt 형태로 파일에 접근 가능해야 하며, 하위 디렉터리나 비표준 위치에 배치해서는 안 된다. 예를 들어, **https://example.com/pages/robots.txt**는 잘못된 위치이다.

robots.txt 파일 테스트

업로드한 robots.txt 파일이 제대로 작동하는지 확인하는 과정은 다음과 같다.

  1. 파일 공개 여부 확인 예: https://example.com/robots.txt.
  2. 파일 내용이 정상적으로 표시되면, 크롤러가 접근 가능한 상태임을 확인할 수 있다.
  3. 브라우저에서 시크릿 창을 열고 사이트의 robots.txt URL로 접근한다.
  4. Google 도구 활용로컬 환경에서 테스트하려면 Google의 오픈소스 robots.txt 라이브러리를 활용할 수 있다.
  5. Google Search Console의 robots.txt 테스터를 사용하면 업로드된 파일을 테스트할 수 있다. 이 도구는 사이트 소유권 확인이 필요하며, 이미 업로드된 파일만 테스트 가능하다.

robots.txt 파일 Google에 제출

Google 크롤러는 robots.txt 파일을 자동으로 감지하고 활용한다. 다만, 변경 사항을 신속히 반영하려면 다음 절차를 참고한다.

  1. Search Console에서 확인
    • Search Console의 robots.txt 테스터에서 업로드된 버전 보기를 클릭해 현재 서비스 중인 파일을 확인한다.
    • 문제가 없으면 제출 버튼을 클릭하여 Google에 변경된 내용을 알릴 수 있다.
  2. Google의 캐시 새로고침
    • Google은 기본적으로 24시간마다 robots.txt 파일을 다시 크롤링해 반영한다.
    • 변경 사항을 빠르게 적용하려면 테스터의 제출 기능을 활용해 캐시를 새로고침한다.

알아 두면 좋은 robots.txt 규칙

다음은 알아 두면 좋은 몇 가지 일반적인 robots.txt 규칙이다. 링크를 참고하자.

Google의 robots.txt 캐시 새로고침 절차

  1. 서비스 중인 버전 확인
  2. Search Console에서 현재 서비스 중인 robots.txt 파일이 변경 사항을 반영했는지 확인한다.
  3. 제출 요청 활용
  4. 제출 버튼을 사용해 변경된 내용을 Google에 알리고, 새로운 버전을 즉시 반영하도록 요청한다.
  5. 최신 상태 점검Google은 기본적으로 24시간 내에 자동으로 업데이트하지만, 제출 기능을 통해 더 빠르게 반영할 수 있다.
  6. 페이지를 새로고침한 뒤, Google이 최신 버전을 반영했는지 확인한다.

robots.txt 파일은 검색엔진 크롤러의 접근을 제어하는 중요한 도구로, 이를 잘 활용하면 검색엔진 최적화(SEO)에 효과적으로 기여할 수 있다.

참고 자료

 

robots.txt 소개 및 가이드 | Google 검색 센터  |  문서  |  Google for Developers

robots.txt는 크롤러 트래픽을 관리하는 데 사용됩니다. robots.txt 소개 가이드에서 robots.txt 파일의 정의와 사용 방법을 알아보세요.

developers.google.com

 

반응형

'CS 학습 > WEB' 카테고리의 다른 글

웹 브라우저는 무엇이며, 어떻게 동작하는가?  (1) 2024.10.29
인터넷의 동작 원리, 웹과 인터넷의 차이  (7) 2024.10.28
REST  (2) 2024.02.07
CSR과 SSR  (1) 2023.06.23